到目前为止,我只遇到过方形的卷积核(即,具有与列相同的行)。
是否存在非方形内核有意义的情况?如果不是,为什么?
到目前为止,我只遇到过方形的卷积核(即,具有与列相同的行)。
是否存在非方形内核有意义的情况?如果不是,为什么?
实际上,理想的形状可能是圆形,但这在计算上很不方便。关键是你通常没有先验卷积网络应该学习的特征形状的假设。例如,在图像上训练的卷积网络的最低层通常会学习检测边缘。这些边缘可以具有任何方向,例如垂直、对角线、水平或介于两者之间的方向。如果您检查了垂直边缘检测器的权重,您可能会发现实际上可以将它们放在一个高矩形内,并从内核的侧面裁剪出一些不相关(接近零)的权重。类似地,水平边缘检测器可能适合宽矩形,不需要正方形的顶部和底部位。但是您事先不知道哪个地图将学习哪个特征,因此您无法提前指定这些形状,这样做也不会带来很大的优势。
如果您事先知道所有特征都会(例如)比高度更宽,那么也许值得使用(非方形)矩形内核。
如果输入设备具有非矩形几何形状,则使用非矩形内核是有意义的:
https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8853238
非矩形核也可以减少计算量:
https://arxiv.org/pdf/1904.08755.pdf
另一个例子是点云上的卷积。在接下来的论文中,内核形状不再是刚性的,而是定义在球体内。
非方形内核的一个示例应用程序是对不同维度上具有不同大小的数据进行操作。
具体例子见这个网络。它适用内核到声音的短时傅里叶变换(它运行在输入)。
原则上,内核可以具有任意形状。然而,在实践中发现内核大小对网络性能影响不大;我想这就是为什么你看不到太多不规则形状的内核的原因之一。
卷积聚合来自与内核形状相对应的形状区域的信息。在计算机视觉中,水平和垂直维度通常没有区别,因此您使用方形内核。如果特定任务在每个维度上聚合不同大小邻域的信息是有意义的,那么就去做吧。例如,我们在本文中使用形状为 [3x3x2] 的内核来处理 3D 数据。