I have been reading about Convolutional neural networks and its use in image recognition. Most of the examples I have seen so far train one single network to classify an image into one label or class. What I have understood so far is that the power of CNN resides in their ability to understand important shapes for each class through the convolution filter. However, my intuition is that if we feed to the network images from different classes the filters will have to adapt its weights to fit them all. (e.g. a filter that is able to recognise dog, cars and humans characteristic shapes)

Wouldn't it be more efficient to have a NN for each label or class as the convolutional filters learned will be more specific and accurate? In this way I can make sure that convolutional filters of the dog model will have their weights optimised to recognise the different parts of the dog.

  • 2
    $\begingroup$ Unfortunately this argument is flawed. A model having seen only dog images will be worse at recognising dogs, because it has never seen any examples that are not dogs. If the model simply says: "dog" for any image fed to it, it will score perfectly on the dog data and learn nothing about dogs. $\endgroup$ – Frans Rodenburg Jul 11 '19 at 11:57
  • $\begingroup$ I understand. What if you feed the model dogs and not dogs images? $\endgroup$ – Brandon Jul 16 '19 at 7:42

Yes, you could fit a binary classification network for each class, and the resulting models would have much higher combined capacity. However neural networks aren't really limited by model capacity, but rather by the amount of data and need for regularization.

Wouldn't it be more efficient to have a NN for each label or class as the convolutional filters learned will be more specific and accurate?

The popular Imagenet classification test consisted of 1000 classes. Surely, a 1000 models with a combined 1000 times more filters wouldn't be more efficient by any sense of the word (it would also be prohibitively difficult to train). Since dogs, humans, and many other classes of objects all share at least some common patterns, lines, and shapes within them, it makes more sense to fit just one model.

In other words, CNNs are already too good at learning specific features. The challenge we now face is to prevent them from overfitting.

| cite | improve this answer | |
  • $\begingroup$ Yes. I understand that in terms of computation this is probably unrealistic. But assuming that we have infinite resources I was wondering if it would make more sense having 1000 binary models where you feed all the image dataset to each one. I imagine you will end up with 1000 models with their weights fine tuned to recognise the different features of each image type instead of a single model where weights could be less accurate since they have to fit several types of images. $\endgroup$ – Brandon Jul 19 '19 at 9:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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