1
$\begingroup$

So we know that the major disadvantage of pushing images through an ANN is due to the loss of information, particularly spatial information.

But in regards to CNNs, in the last layer of the convolutions just before the fully connected layer, is there some form of flattening of the convolved layer just before we feed it into the Multi layer net?

If so then, just like ANNs, wouldn’t we be losing some representation of features or the order in which its represented?

P.S My take on the answer would be that since we go through a process of continuously convolving and pooling, by the time we get to the fully connected layer we would have extracted the features that are invariant of location so now all we have to do is understand the connection between the pixels via ANNs?

$\endgroup$
1
  • $\begingroup$ I disagree with your first sentence. Draw out the convolution layer as a neural network, not just squares on top of bigger squares. You’ll see that the convolution layer has less freedom to capture information than an FC layer. However, with certain data (like images), it appears not to cause such a hit to the out-of-sample performance, so the decreased parameter count makes the decreased freedom well worth it. $\endgroup$
    – Dave
    Nov 24 '20 at 12:31
2
$\begingroup$

There is nothing special about using convolutional layers. In fact, for simple problems like MNIST, you could use simple neural network. Why we use convolutional layers, is because they use sliding windows that detect features of images no matter where are they located in the picture. If the image is centred, that's not the case. Notice that each of the windows produces the centered representation of some feature, hence you could pass their outputs to standard fully connected layer, same as you pass MNIST images. Moreover, in the end you need to use something like fully connected layer, since you need to "compress" the image into a scalar for binary classification, or a vector of probabilities for multi-class classification, there's no way how you could use convolutional layer for that. Also keep in mind, that the network is trained as a whole, so the convolutional layers need to produce such output, that could be easily translated by the fully connected layers into labels, so you assume in here that the network would figure out how to do this during the training.

$\endgroup$
1
  • $\begingroup$ I agree with everything you said. This assumption you speak of is exactly what i am trying to decode. "Assuming" that the convolutional layers can extract something robust enough to be flattened and analyzed by the FC, without losing some info, is not something is fitting in my head for some reason $\endgroup$ Oct 28 '20 at 12:29

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.