2
$\begingroup$

I have an image data set of around 180 images in 60 classes (3 images per class). I am able to build a classifier using feature matching. However, I want to try Convolution Neural Networks and see if I can improve.

I don't think I can train a CNN on just 120 images.

If that's true, what is the best way to approach this problem?

$\endgroup$

1 Answer 1

2
$\begingroup$

The way I solved the problem was that I took a neural network trained on imagenet and then extracted the features from one of the last layers and applied SVM on the feature vectors from these layers.

These gave me 75% accuracy on the dataset.

$\endgroup$
2
  • $\begingroup$ One of the tricks of the trade these days is to use the filters from the first convolutional layer to obtain features and stick them into an SVM: arxiv.org/abs/1403.6382 I am a bit worried about the 75% accuracy. I assume you have 60 output neurons and just do 0/1 loss? The generalization is quite good then. How do you regularize the network? Dropout can help a lot here or did you use features from another network? How was the SVM trained? One-vs-all? I am particularly interested because I might run into a similar problem soon. $\endgroup$
    – pAt84
    Commented Feb 16, 2016 at 7:32
  • $\begingroup$ In addition, it is always good to look beyond the accuracy or your measurement of choice. In your example it might be possible that 75% of all classes work and 25% don't work at all (a bit of an extreme example). But may your work be of scientific or industrial nature, this is usually a situation you would want to avoid. $\endgroup$
    – pAt84
    Commented Feb 16, 2016 at 7:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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