I’m playing with Convolutional NNs (C++) in order to apply them to some structural biology problems. I started with “classical” MNIST digit recognition based on lenet_with_mxdataiter.cpp example from the mxnet package.
My understanding is that CNN should be invariant to the translation of the feature inside the image. (in MNIST for example it should recognize not only digits which are centered by also shifted ones)
So, I’ve created a small additional test set where I took one image from the original test set and populated it by shifting digit into corners on the image. (I kept the same image size 28x28 for now)
When I run the example I consistently have very bad recognition performance on this modified set while centered (original) digit is always recognized correctly.
Any ideas or thoughts what am I missing? (I can provide a complete example if needed, but as I mentioned this is slight modification of the standard lenet_with_mxdataiter.cpp file from the package)