# Does Pooling remove spatial information of image in CNN?

Pr. Geoffrey Hinton has pointed out that pooling-layers remove spatial feature information. But, essentially, does the process that last convolutional layer's features are flattened for FC layer makes the spatial information removed?

• Your title asks whether pooling layers remove spatial information (i.e. to confirm the information from Hinton's lecture). Your question in the body asks whether the flattening for fully connected layers removes spatial information. Could you make it clearer which question you want answered? – Neil Slater Jul 21 '18 at 17:13
• I just wonder if input image's spatial information disappeared at Fully connected layer (specifically, the process; last convolution layer's feature maps -> flatten -> Fully connected layer) – hyunsu jeong Jul 22 '18 at 3:11
• OK, that makes sense as a question. But why are you also asking about pooling layers, which are different? – Neil Slater Jul 22 '18 at 8:30
• I also know the spatial features disappear at pooling layer. I just want to know the spatial features can disappear at FC layer (through the above procedure). – hyunsu jeong Jul 22 '18 at 11:34
• OK, cool. But that is not what your question title says. Could you maybe edit it? – Neil Slater Jul 22 '18 at 11:36

Your question text is not very clear but I try to give you what you need. Max-pooling layers give the CNNs spatial invariance ability through the layers due to the fact that they check the existence of something or not. If you stack them through multiple layers, your network will have a rough ability to be spatial invariance but this is not that much. Moreover, professor Hinton has stated somewhere that using pooling layers is a mistake and it's a disaster that they work; I didn't quote the exact words. If you want a network to be spatial invariance you should use spatial transformers which are differentiable modules and can be used in CNNs without any supervision. Take a look at here.
About the fully connected layers, There are two main points. First the inputs, second, the outputs. In convolutional layers, the inputs of each layer is limited to the region which its is employed and for that input there is a single output. Consequently for a specific region, there is a single output which is responsible for that point. In MLPs, all the inputs go to a single neuron and for all the inputs there is just a single value. I guess this is why they don't keep the spatial information and are just used for classification tasks. Actually, they just try to classify the extracted features by the CNNs.