超大卷积核架构Scaling Up Your Kernels to 31x31
视频讲解
code PyTorch
code MegEngine
Tensorflow
堆叠多个小kernal,认为3层3×3 > 1层 7×7?
Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 可视化卷积核:
对于传统CNN,首先一个大kernal 模型的参数量会大大增加;并且一些实验中发现从7×7增加kernal到9×9会掉点;
准则一:depth-wise卷积+恰当的底层优化
class DepthWiseConv2d(nn.Module):
def __init__(self, c_in, c_out, kernels_per_layer, kernel_size, stride):
super(DepthWiseConv2d, self).__init__()
self.conv_dw = nn.Conv2d(c_in, c_in * kernels_per_layer, kernel_size=kernel_size, padding=1, groups=c_in,
bias=False)
self.conv_pw = nn.Conv2d(c_in * kernels_per_layer, c_out, kernel_size=1, stride=stride, bias=False)
def forward(self, x):
return self.conv_pw(self.conv_dw(x))
准则二:加shortcut!
本文Andreas Veit, Michael J Wilber, and Serge Belongie. Residual networks behave like ensembles of relatively shallow networks. NeurIPS 2016解释了为何Residual 有效,同样对于此卷积网络加入shortcut产生了组合式感受野。
准则三:用小kernel做重参数化
Xiaohan Ding, Xiangyu Zhang, Ningning Ma, Jungong Han, Guiguang Ding, and Jian Sun. RepVGG: Making VGG-style ConvNets Great Again.训练时并行使用大和小的卷积核,测试时将小的等价放入中间维度,因为同样大小的卷积具有可加性,不同大小的也可能有类似的性质。也类似形成了组合式感受野。
准则四:看下游任务!
如Robert Geirhos, Patricia Rubisch, Claudio Michaelis, Matthias Bethge, Felix A Wichmann, and Wieland Brendel. Imagenet-trained cnns are biased towards texture; increasing shape bias improves accuracy and robustness.在预训练上点高,不一定在任务上结果好。
准则五:小feature map上也能用大kernel !
Osman Semih Kayhan and Jan C van Gemert. On translation invariance in cnns: Convolutional layers can exploit absolute spatial location. CVPR 2020.在分辨率低的featrue map上使用大kernel 。padding引入绝对位置信息。抛弃严格的平移不变性。或如下图,可以看成一种不同位置卷积核参数不同的特殊卷积:
论文中的整体架构:
[Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs](https://github.com/NNDEV1/RepLKNet)
Make kernel sizes more dynamic(Only accepts large kernels sizes {31, 29, 15, 11, 9, 7, 5} that were shown in paper)
Add re-parameterization as mentioned in the paper
Maybe try to train on data
Add .py files
[No description, website, or topics provided.](https://github.com/ZhaoF-i/RepLKNet)
自监督预测卷积注意块
本文(Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection)提出了一种由掩码卷积层和通道注意模块组成的新型模块 SSPCAB,它可以预测卷积感受野中的掩码区域。SSPCAB以自监督的方式通过自身的重建损失进行训练。这一自监督块是通用的,并且可以很容易地融入到各种最先进的异常检测方法中。SSPCAB 从一个带有扩张滤波器的卷积层开始,其中感受野的中心区域被掩码,生成的激活图通过通道注意模块传递,同时配置了一个损失,可以最大限度地减少感受野中被掩码区域的重建误差。SSPCAB 在图像和视频异常检测任务上都验证了其对性能的提升。
在成功的异常检测方法中,有一类方法依赖于预测掩蔽信息(例如,patch、未来帧等),并利用与掩蔽信息相关的重建误差作为异常评分。与相关方法不同,我们提出将基于重建的功能集成到一种新的自监督预测体系结构构建块中。所提出的自监督块是通用的,可以很容易地融入到各种最先进的异常检测方法中。
我们的区块从一个空洞卷积层开始,感受野的中心区域被遮掩。产生的激活图通过通道注意模块传递。我们的区块配备了一个loss,可以最大限度地减少与感受野掩蔽区相关的重建误差。
我们通过将其集成到多个最先进的图像和视频异常检测框架中,展示了我们模块的通用性,并提供了经验证据,表明MVTec AD、Avenue和ShanghaiTech的性能有了显著提高。
SSPCAB
在本文中,我们介绍了一种新的自监督预测卷积注意块(SSPCAB),旨在学习使用上下文信息预测(或重建)隐藏信息。为了获得高精度的重建结果,我们的区块被迫学习发现的局部模式的全局结构。因此,它解决了[60]中指出的问题,即CNN不能把握局部特征的全局排列,因为它们不能推广到新的视点或仿射变换。为了实现这种行为,我们将块设计为一个卷积层,带有扩展的屏蔽滤波器,然后是通道注意模块。该块具有自己的损失函数,其目的是最小化被屏蔽输入之间的重建误差以及预测的产量。