rjbruin / flexconv

Code repository for the ICLR 2022 paper "FlexConv: Continuous Kernel Convolutions With Differentiable Kernel Sizes" https://openreview.net/forum?id=3jooF27-0Wy
Other
115 stars 8 forks source link

What does 'high bandwidth' mean in the paper? #8

Open Linwei-Chen opened 1 year ago

Linwei-Chen commented 1 year ago

Thanks for your great work! I am confused about the definition of 'bandwidth' in the paper; it seems not to be the same as the traditional bandwidth described in here. Can you provide me with a clear definition? Additionally, what factors can impact the 'bandwidth' of a convolutional kernel? How can we quantitatively measure the 'bandwidth'?

dwromero commented 1 year ago

Hi Linwei,

Thank you for your interest in our work :)

The concept of bandwidth is actually analogous to the concept of bandwidth in signal processing. In particular, we refer to the bandwidth of a certain kernel parameterization as the region of the spectrum the resulting kernel is able to cover in practice.

For example, dilated kernels are in fact low-frequent right? This means that their bandwidth is lower than the resolution on which they are acting. Conversely, for FlexConv, the kernels that are generated live in the same resolution --in fact can have even larger frequencies that this resolution, which is why we use anti-aliasing regularization--. As a result, we say that this parameterization has a larger bandwidth than dilated convolutions. This behavior is shown in Fig. 2. In other words, the way in which the kernels are parameterized have a direct influence on the bandwidth of the resulting kernels.

Measuring the bandwidth of a convolutional kernel is simple. It is sufficient to compute the FFT and verify the frequency for which the kernel has the highest value. At a given resolution, e.g., that of the examples in Fig 2, we have that for Dilated Convs, the bandwidth of the kernel at 3x is given by the bandwidth of the kernel at 1x. For FlexConvs, on the other hand, the bandwidth of the kernel at 3x will be higher (because it has high-frequencies).

Please let us know if this clarified this issue. If not, we are happy to add more details :)

Best,

David.

Linwei-Chen commented 12 months ago

Thanks for your reply! So, does it mean that I can quantitatively measure the bandwidth by the high frequency in the convolution kernel? For instance, is the bandwidth 0 to the highest frequency? By the way, which frequency unit should we use for bandwidth—cycles/image or normalized -∏ to +∏?