How do CNNs handle scale invariance? Even after googling and reading fitting articles and answers to fitting questions here on StackExchange, I don't understand how CNNs handle scale invariance.
I found logical sounding answers saying that it is solely done by pooling, others, equally sounding answers said it is a combination of convolution and pooling; no one gave an explanation based on a simple example.
Is scale invariance handling "located" in one layer or "spread" over multiple layers? If so, can the mechanism be easily described? 
Are images with patterns of different scales needed in the training phase in order to train scale invariance? If so, that would mean every possible size is needed and that cannot be the case, right? In consequence, that would mean, no real learning / "abstraction" would take place?
A simple example: A very simple CNN should learn to identify one particular symbol in images, e.g. the digit '4'. 
Let's say I only have images of a fixed size, e.g. 12x12 pixel.
What is needed as training data in order order to detect different-sized  '4's?
After training, how does the CNN detect that a 5x5 pixel '4' as compared to a 10x10 pixel '4'? What does it do in the different layers?
 A: By themselves, convolutional filters do not handle scale invariance. Each learned filter will be sensitive to a given set of features only within a narrow range of scale. There are generally three techniques that can help approximate scale invariance and make the network resilient to scale changes:
1) Training with random zoom in/out on the input image. This synthetically provides examples at different scales. This technique works well in particular for zooming out, but zooming in is limited since one might end up zooming in too much on the wrong portion of the image.
2) Multiscale input: the input image is fed in at multiple scales, say 0.5, 1x and 2x; predictions are then averaged across the outputs. Another technique is to use feature pyramids.
3) Multisize or dilated convolutions: instead of using a fixed filter size (say, 3x3), you use multiple filter sizes (3x3, 4x4, 5x5) at each stage.  One can also use dilated filters, for example a 3x3 convolution that covers a 5x5 receptive field by skipping super pixels in-between. 
A: I would argue that CNNs are not inherently able to handle non-scale-invariant features. 
Imagine if we have image A of size n x n that only contains a ``corner" feature which looks like a curve. If we scale up the image by 100 times, the new image B will be 100n x 100n and each n x n sub-regions of it will appear to be straight edges instead of corner-like curves. 
Let's say we have a CNN-based image classifier C for corner features that trains with only kernels smaller than n x n. Now if we feed B into the classifier, it will look at n x n(or smaller) sub-regions in B and will have no chance of outputting positive results. 
