I am using 50 images for classification using transfer learning based on deep learning approach. Will it be enough for training and validating the model using the above images?
For example 70% images for training and remaining 30% for validation.
Traduire cette pageThis example shows how to use a pretrained Convolutional Neural Network (CNN) as a feature extractor for training an image category classifier. ... can be loaded using alexnet , googlenet , vgg16 , and vgg19 from the Deep Learning Toolbox™. ... Thus the classification layer has 1000 classes from the ImageNet dataset.
What is the minimum sample size required to train a Deep Learning ...
Traduire cette page(Sander Dieleman's blog post on 'Classifying plankton with deep neural networks' ... literature on ways to squeeze maximum advantage from a small training dataset. ... There is some good articles that described ways of using deep learning models ... Generally the more sample for training can ensure better performance of ...
I paste the same answer I gave to another question:
Rule is simple: choose the one which gives your model best generalization ability (if you are interested in prediction). You can spare some of your data as train data (validation set technique) with different size choices and check classification performances on test data, which are remaining data from your whole set. Compare the performances and choose the best size. It is also possible to use bootstrapping (using replicated observations) to increase number of train data in case it is not adequate.
If you sole objective is interpretation, use the whole set.
You can check my article to see an example of train set size comparison in a classification problem: Article Improving the performance of statistical learning methods wi...
Usually the deep learning models are data hungry and one more important aspect is the features which are learnt in the training process, sometimes it happens with deep architectures that due to lack of data the network learns dead filter activations, in that case going deeper is not recommended. Another important aspect is the training stability, a short amount of data sometimes also causes instability in the training process such as Inception networks or ResNets but there are different techniques to overcome the instability such as two-hierarchies of learning rate or scaling down of residuals among the connections.
So the main point is, when using a dataset with deep architecture, first visualize the activations as to what the network is learning and make sure it does not produces dead filter activations as the architecture goes deeper and another is to check the training process as if it causes instability or not. There are other factors as well but mainly if these two aspects are Ok, you can set the desired volume for training and the remaining for testing.
The main difference of deep learning from other Machine learning approaches is due to the amount of training data involved and the computational power.
If you are using transfer learning, the model has already been trained/validated using a set of images that extracted features for those images. The new images you introduce need to meet several criteria to be considered usable. Size, image quality and noise as compared to the original pictures will directly impact your results. Also, if your images are similar to another class in the model you get better results. With 50 images, you could compare the classifiction of your images in the original model to the new class you use in the transfer learning model. You may see moderate results using just the 50. You will see better results using 100 to 200 images. To get additional images beyond the 50, you could try creating additoinal images by flipping, rotating & mirroring.
You can fine-tune pretrained models but the number of images to do so depends on the problem and the characterstics of images. Can you please briefly explain the problem?