yu4u / age-gender-estimation

Keras implementation of a CNN network for age and gender estimation
MIT License
1.47k stars 503 forks source link

Adam opt is not better and low age accuracy #84

Closed DoDDnice6 closed 5 years ago

DoDDnice6 commented 5 years ago

Thanks for your great project! Sorry if my english is not good First, I have read your comments and learned that you have better experiment with adam opt so I have followed you. First, I created the database with min_score = 3. Then I experimented with the model: adam opt lr = 0.001, img_size = 64, nb_ep = 60 is val_loss = 3.69; accuracy loss model with opt is sgd with lr = 0.1, momentum = 0.9, img_input = 64x64 nb_ep = 60, then val_loss = 3.62. accuracy loss Next, I changed the strides of the second layer from (1,1) to (2,2) and training with sgd opt was val_loss = 3.64. accuracy loss Can you explain to me why adam opt has lower results than sgd opt and when reducing the size of the second layer, the result does not change much. Secondly, I found that my age accuracy in testing was often very low and did not increase more than 0.2 in later epochs like yours and val_loss ~ loss in all tests. Can you tell me the parameters in your test and in this case, whose test is better. p/s: I experimented with k=8, depth=16.

yu4u commented 5 years ago

Sorry for late reply and thank you for your report!

Can you explain to me why adam opt has lower results than sgd opt and when reducing the size of the second layer, the result does not change much.

It depends. I cannot give a good explanation; the results can be differ depending on the combination of all parameters...

Secondly, I found that my age accuracy in testing was often very low and did not increase more than 0.2 in later epochs like yours and val_loss ~ loss in all tests. Can you tell me the parameters in your test and in this case, whose test is better.

There is no problem even if the accuracy is low (it is very difficult or even impossible even for we humans to correctly say an age). In my experiments, the val accuracy seems to be similar as you. Basically, the default parameters were used except the parameters explicitly shown in command lines in README.