1
$\begingroup$

Why is it possible to train a semantic segmentation neural network like U-net/Tiramisu from scratch using small dataset like few hundreds.

While for the image classification task, it is not advised to train your own network from scratch even if you have thousands of images per class. I have seen, people using transfer learning (models trained on imagenet dataset )even when they have (ex. 5000 images per class for say 10 class classification) and not train the network from scratch.

One reason, I can think is, The no of parameters that need to be trained in semantic segmentation network is significantly lesser than typical image classification task. So lesser parameters helps training with lesser images.

Any other reasons?

https://www.microsoft.com/developerblog/2018/07/18/semantic-segmentation-small-data-using-keras-azure-deep-learning-virtual-machine/ : talks about semantic segmentation using small dataset.

$\endgroup$
0

2 Answers 2

2
$\begingroup$

A classification task has a single label, whereas a segmentation task basically has a label for every pixel in the image, so a single segmentation map has as many "labels" as thousands of classification tasks.

A more information theoretic way to think about it is that a single classification label -- putting an image into one of 1000 classes -- has less than 10 bits of information. On the other hand, I think you'd be hard-pressed to compress a 1024 by 1024 segmentation map down any less than a few kilobits. Your small semantic segmentation dataset may contain as much information in it as a much larger image classification dataset.

$\endgroup$
1
  • $\begingroup$ Thanks for answer!! I understood where you are going with this answer though I did not understand what you want to say in paragraph-2. Can you be little more clear. $\endgroup$
    – v09
    Oct 9, 2018 at 7:26
0
$\begingroup$

Because the classification is local rather than global and as there are many local positions in one image the network is able to learn them more easily. Eg) If I have a background class and car then there are many positions/angles where background and car boundaries form in a single image giving me more information than single classification.

I think in single object classification the problem is correlation of features. Remember you are just showing an image to the NN and asking it to decide what the correlated features are so it takes time to distinguish between the actual object and random correlation that occur in the background. This is a big problem in natural datasets where some classes are pictured in similar background/colours.

Additionally a network MAY NOT pick up on subtle features in small datasets or datasets with too many classes for best results. See https://arxiv.org/pdf/1411.1792.pdf to see how transfer learning improves generalisation on the SAME task. This insight is quite interesting and shows a minor failing of our optimisation approaches.

$\endgroup$
2
  • 1
    $\begingroup$ This doesnt answer my question $\endgroup$
    – v09
    Oct 9, 2018 at 8:23
  • $\begingroup$ I answered your question in the first two paras by saying one image has a lot of information about classes due to the local nature of segmentation. The second and third say the difficulties in training CNNs on small datasets or too many classes( and why transfer learning is good). What more do you want answered? $\endgroup$ Oct 9, 2018 at 11:36

Your Answer

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

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