4
$\begingroup$

I am currently trying to classify clothes for my final project in school. My problem is that after I gathered more data, to counteract overfitting, the validation accuracy dropped from 60% to 45%. Below I explain in detail what I did. I use the following network layout:

Network Layout

I have five different clothing classes: T-Shirt, Pullover, Hoodie, Jeans and Shorts.

I first gathered data from Image-net.org. I had about 700 images per class. I then started training the network, resulting in the following graph:

First Training

Clearly there was overfitting happening so I gathered more data for the jeans and shorts:

Second Training

While the overfitting was still there, it started much later. However, the validation accuracy also got worse.

I then gathered more training data from google images. I now have around 1150 images per class: Images per class It resulted in the following training graph:

Third Training

Now the overfitting started to look much better. However, the validation accuracy got much worse! What am I doing wrong here? Is there just not enough training data or is it something else?

$\endgroup$
2
  • $\begingroup$ Are you changing just the training set, or both the training set and validation set? Also, if you want us to analyze a metric under different conditions, you should present us with graphs that have the same axes, if not put them on the same graph. $\endgroup$ Mar 9 '18 at 17:30
  • $\begingroup$ Why don't you shrink your images to 64x64 and grayscale and see how that impacts the classification? A dropout of 50% is horrible. Try 10%. Why two in series like that? Of the same size? Why do you think you need 2048 units in your dense layers? How are you initializing your weights? Why do you need so many filters? $\endgroup$ Jul 16 '20 at 15:12
3
$\begingroup$

Answer may be in your last graph. After you added new data, you stopped at 30 epoches, while your previous runs went out to 70 epoches. Notice the validation loss has not curved back up, and that tells you your training has not converged. Just run more epoches and see what happen.

$\endgroup$
0
0
$\begingroup$

More data does not mean less over-fitting in this general manner (it can, but is doesn't have to). The best way to avoid over-fitting is to tune your network topology or the number of training epochs.

Regarding the validation accuracy it seems that the new records you added are more difficult to classify than the old ones.

$\endgroup$
1
  • $\begingroup$ What would you suggest to tune for my network topology? And should I then just remove the newly added images, since they are more difficult to train? $\endgroup$
    – gallileo
    Oct 23 '16 at 17:22
0
$\begingroup$

Go for more epochs + add a batch-normalization layer as you added Drop Out layers. Both batch-normalization and Drop Out will regularize you net in order to generalize learned hyperplanes

$\endgroup$
1
  • $\begingroup$ This is being automatically flagged as low quality, probably because it is so short. At present it is more of a comment than an answer by our standards. Can you expand on it? We can also turn it into a comment. $\endgroup$ May 18 '19 at 12:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.