Hello Hoody!



 Hoodythree:

Is it possible to recognize images with very large intra-class variation(such as one species within different life cycles)?


Yes, certainly (given good training data, of course).
As an example, consider caterpillars / butterflies.  Let’s say you have
monarch caterpillars and  butterflies and swallowtail caterpillars and
butterflies.
It would be easy to train a four-class classifier – monarch caterpillar,
monarch butterfly, swallowtail caterpillar, swallowtail butterfly.  So all
the network has to do is “learn” to collapse each pair of caterpillar /
butterfly classes together to form a two-class monarch / swallowtail
classifier.
When you train your two-class monarch / swallowtail classifier, I don’t
think that the butterfly training data is really going to help with the
caterpillar classification (and vice versa) (Well, actually in this example,
there are some coloration clues, but ignore that …), so, under the hood,
the network is, more or less, learning four classes.
That is, after training, the four classes are largely represented as “latent
features” inside of the network.  To give some concrete meaning to this
verbiage, I bet that, starting with your well-trained monarch / swallowtail
classifier, you could, with only a little bit of “fine-tuning” training, produce
the four-class classifier mentioned above or a two-class caterpillar /
butterfly classifier.
Or to say this a slightly different way, let’s say you train your monarch /
swallowtail classifier with lots butterfly data, but hardly any caterpillar
data.  Your classifier will work well on butterfly images, but will hardly
work at all on caterpillar images.  Again, under the hood, you’re training
a four-class classifier, and you didn’t give it enough caterpillar data to
learn the caterpillar classes.
Best.
K. Frank