Suppose I do 2x2 pooling with stride 2x2, and I can do as much zero-padding as I want. Ordinary pooling is local and not fully translation invariant, because it is dependent on image boundaries. If I do 1 unit padding of my array from the left, pooling windows (which start from the image boundary) are shifted with respect to the inner objects and local maxima found by them are different.

I can apply some blurring before the pooling stage to reduce this effect, or average 4 different pooling windows, but this just somoothens the result and does not solve my problem in general. I can find the mass center of the points and somehow use this as anchor point of my pooling scheme, but this global invariance is tied entirely to the specific object and is not interesting.

My question is whether I can tie pooling to the actual local maxima in the data, so that the result for local features is the same when the object has shift less than the size of pooling window ((0,0), (0,1), (1,0) and (1,1) in case of 2x2 pooing)?

If it is not possible for max pooling, perhaps there exists some another locally-insensitive way to downsample the data (for shifts equal to 1,2,etc units) provided I can do any amount of zero-padding? In other words, I have an object located in zero-filled volume, and I want to downsample this volume in the way, which preserves similar object features for any object position within the volume. Later, the object might be different, but this pooling will have the same output for the same local input features for these objects.

EDIT. Local maxima approach might not work indeed, because the data may be just growing series (1,2,3,4,...,n). But maybe some more complicated theme involving voting on the local neighboring windows can be invented, where we apply same convention on such cases. For example, I'm thinking about taking some auxiliary (learnable?) convolution layer and then perform some global voting on its results (SIFT-like?)

EDIT2. There are some variants of set pooling operations like assigning the closest value for each pooled point, but it does not guarantee that I can reduce dimensions afterwards

EDIT3. So this is likely related to finding some core set of points, which has fixed size 1/4 of the initial set, which produces the same core points for the point cloud which moves within the zero-filled volume.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.