I trained a CNN w/o pooling on MNIST and produced a colored visualization of the feature maps you get when you translate a digit on an input canvas. This illustrates the equivariance property of convolutions. More info (why convolutions?) in a blog post: medium.com/@chriswolfvision/…

Oct 5, 2020 · 10:12 AM UTC

Replying to @chriswolfvision
That's awesome! What did you use to create the animation?
Thanks :) All done by hand, ~500 lines of PyTorch, but only ~250 lines are the visualization code, the rest is standard boiler plate code for model training and validation. I considered using libraries like pyrender, but found this quicker (4h of coding Sunday afternoon).
Replying to @chriswolfvision
Even fully convolutional layers without pooling aren't translation equivariant, they can and will encode position information: "On Translation Invariance in CNNs: Convolutional Layers can Exploit Absolute Spatial Location" arxiv.org/abs/2003.07064
Yes, through boundary effects, forgot to mention that. Thanks.
Beautiful animation, and I am looking forward to reading your blog post. Looks like gold!
Replying to @chriswolfvision
Problem comes when using strides :/
Replying to @chriswolfvision
We do very similar visualisations to analyse the equivariance of our segmentation algorithms.
Replying to @chriswolfvision
equivariance to translation, right? does it equivariance to rotation as well?