Traditionally, a convolutional filter is one where you take a matrix of numbers, multiply it with a subset of the data, and then sum it up. Then you move the filter left to right and top to bottom in a sweeping fashion to generate a smaller (or equal) grid.

But I wonder if there are filters that work in rotations meaning, consider a 2x2 filter containing these parameters.

a, b
d, c

And consider a 4x4 input data. Normally, in the CNN world, after applying the filter to the input, I would get a 3x3 output, which is the result of the sweeping I described earlier.

Now say, instead of sweeping across, I would like to rotate the weight before I apply, and I do not do sweeping, I rotate the matrix for each of the 4 corners in the 4x4 input.

Meaning, I would apply to the top-left these values

a, b
d, c

then to bottom-left these values which is the above rotated

b, c
a, d

then to the bottom-right

c, d
b, a

then to the top-right

d, a
c, b

so I end with another 2x2 matrix after applying the above filter to the 4x4 input.

Does such filter have a name already?

  • 1
    $\begingroup$ You might need to do your own coding of the software implementation, but nothing keeps this from being a viable neural network that shares CNN’s idea of weight sharing and dropping parameters. Perhaps start by drawing out your filter layer like I show here. $\endgroup$
    – Dave
    Jul 23 at 17:00
  • $\begingroup$ I figured out a pretty clever way to use existing CNN filters. I just have to wrangle my data. $\endgroup$
    – xiaodai
    Jul 24 at 14:20

I think group CNN is close. It has rotation and symmetry


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.