0
$\begingroup$

I'm starting to learn about CNNs, and I have this question that I haven't been able to answer. Sorry if it is too basic.

I know that in a CNN, the network learns to extract relevant features of images in order to classify them. My question is: if I just update the weights of the fully-connected layer and leave the kernels constant, will the network learn how to classify as well?

(The kernels might be a Gaussian blur or a sharpenning, or whatever comes to mind).

$\endgroup$
  • 2
    $\begingroup$ Why don't you try it out and see? $\endgroup$ – Yuval Filmus Jul 7 '17 at 17:36
2
$\begingroup$

No, probably not -- unless you happen to get lucky and the kernel weights you started with just happen to be good ones. But if you choose the kernel weights randomly, your procedure will probably work very poorly.

You can always try it out yourself and see what happens.

That said, you might be thinking of "fine-tuning". In fine-tuning, we first train a model for some image recognition task, on some training set. This stage involves learning both the kernel weighted and fully-connected layer weights. Now, suppose we have a new task (hopefully similar to the original task, but a bit different) and a new training set. Then you can take the prior model, hold the kernel weights fixed, and try doing the learning procedure (backpropagation etc.) on the new training set, adjusting only the last few fully-connected layers. Sometimes this is highly effective: the kernels in the first few layers that are useful for one image classification task are often still useful for other image classification tasks. For instance, people sometimes take a good model trained on ImageNet for general objection recognition and then use it with fine-tuning to do some other similar but not identical image classification task. This potentially saves training time and requires less training data, and can sometimes work well.

$\endgroup$
3
$\begingroup$

A fully connected layer is able to classify images better than random. If you make the kernels constant and there is still information in the result, the network is essentially only a FCN operating on a preprocessed image. Of course it will learn how to classify the image. But it will certainly be worse than a similar network where the convolutional weights are learned.

$\endgroup$

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.