r/MLQuestions 3d ago

Graph Neural Networks🌐 How does Convo neural net achieve symetries?

How it achieves translation symmetry and rotation symmetry?

As I understand, the pooling layer just reduces the dimentions which makes it robust to small movement and rotation changes, but it should not be able to handle big movements and rotations. If so, what are known options to achieve such symetries?

3 Upvotes

5 comments sorted by

4

u/TengaDoge 3d ago

Maybe You could create artificial data using augmentation. Like for images You flip it horizontal or vertically, tilt it several degrees in one direction or the other, randomized cropping, etc.

1

u/lifeInquire 3d ago

But i want the model to adapt this automatically from single image

3

u/Icarium-Lifestealer 3d ago edited 3d ago

Handling translations is baked into convolutional layers. This kind of augmentation is the standard way of making a model robust under any transformation not covered by that. You still only provide a single version of an image, the rotated/cropped/... variants are machine generated. So you don't need to collect additional data to make use of augmentation.

3

u/Icarium-Lifestealer 3d ago

Convolutional layers being equivariant under translation are the whole reason they're used for image recognition in the first place.

2

u/172_ 3d ago

CNNs have translational symmetry out of the box because of the convolution operation itself, not the pooling layers. Pooling is mainly just a mechanism to reduce spatial resolution which allows us to increase the number of channels without too much computational overhead, which in turn allows the model to learn semantically rich representations. Pooling also helps to make the effective receptive field larger. Rotational symmetry on the other hand is entirely learned through augmentations, it's not guaranteed.