0
$\begingroup$

I wanted to know if anyone has any sort of guidance on what is better for image classification on a lot of classes (about 400) with a small amount of samples per class (around 20), for relatively big RGB images (around 600x600).

I know that Autoencoders can be used for feature extraction, such that I can just let an autoencoder run on the images unsupervised, and thus reduce the dimensionality of the images to train on those downsampled images.

Similarly, I also know that you can just use a pretrained network, strip the final layer and change it into a linear layer to your own dataset's number of classes, and then just train that final layer or a few layers before it to fit your dataset.

I haven't been able to find any resources online that determine which of these two techniques for feature extraction is better and under which conditions; does anyone have any advice?

$\endgroup$

2 Answers 2

0
$\begingroup$

You should go for a pretrained network for feature extraction. The pretrained network will generate features that are useful for classification, and in your case, it will most likely help your classification, as you have very small amount of data. You should make sure that the data that the model is pretrained on (e.g. ImageNet) does not differ too much from your own dataset. For example, a model pretrained on digits will not help you in MRI scan classification.

On the other hand, Autoencoders are not suitable for this type of task. The extracted features from the Autoencoders bottleneck is a compressed representation of the original image (think something like a zip archive). This is useful for dimensionality reduction and anomaly detection tasks, but not for feature extraction.

$\endgroup$
0
$\begingroup$

Both are reasonable approaches. You can start with a simple pre-trained network as a feature extractor as it doesn't involve any training. It should serve as the baseline if you take other approaches such as training an auto encoder or using other pre-trained networks.

$\endgroup$

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.