1
$\begingroup$

I am using a transfer learning approach. For this I followed the tensorflow for poets tutorial. I use a pre-trained InceptionV3 architecture trained on the Imagenet dataset. The last layer and the softmax classification is replaced and retrained, using a new set of 7 classes.

Data

Per class I have around 4.000 - 5.000 images. I tried multiple training parameters with an AdamOptimizer. The labels are noisy, about 15-20% of the labels are incorrect. The images show products of a certain category (e.g. cars) and the labels classify different type of a feature (e.g. 7 different types of tires, wheels).

Parameters

  • learning rate: 0.001
  • iterations: 7.000
  • batch size: 100

Performance

The test accuracy is 50%, train accuracy 68%. Visualising the learning rate, the network already reached 50% after 2000 iterations. What surprises me is the overall low performance as well as the lack of further improvement during the training time. Its also noteworthy that the network seems to make very hard to understand errors (not only mixing up similar classes but clearly distinguishable ones as well).

Now I wonder: Is this potentially because retraining only a single layer is too limited to pick up the subtle differences in certain parts of the images? How would you go about it to improve?

$\endgroup$
  • 1
    $\begingroup$ datascience.stackexchange.com/a/28387/35644 $\endgroup$ – Aditya Mar 8 '18 at 8:49
  • $\begingroup$ Thanks@Aditya for the link. The answer is very detailed but also rather general. I am specifically interested in: How much is the transfer learning approach limited if only the last layer is retrained? In other words: In the give scenario is it reasonable to believe that this is the primary reason for lack of performance? $\endgroup$ – Gegenwind Mar 8 '18 at 8:57
  • $\begingroup$ It solely depends on what the model has already been trained on and what the task is at your hand...if they are similar, then you are good to go.. In your case it won't work that's who I shared the post. Try unfreezing some last layers and retrain $\endgroup$ – Aditya Mar 8 '18 at 10:20
  • $\begingroup$ Can you give some more guidance on how to assess similarity? There are a lot of things I could to to improve my network (e.g. improving noise handling, gather more data, unfreeze layers etc.). The imagenet dataset for example also contains cars so one could say it is similar while I do not actually care for recognizing cars but parts of cars. $\endgroup$ – Gegenwind Mar 8 '18 at 11:02
  • $\begingroup$ Just head over to see the classes Imagenet has,if they are alike as yours, then Transfer Learning is feasible; Exactly the point is that it isn't trained to recognize car's `PARTS and we are making it recognize them... $\endgroup$ – Aditya Mar 8 '18 at 11:22

Your Answer

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

Browse other questions tagged or ask your own question.