理解卷积神经网络中的自注意力机制

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达ace0be7a4d68fed6ca188f94a4f79dee.png

作者丨Shuchen Du、ronghuaiyang(译)

来源丨AI公园   编辑丨极市平台

8c4a48e4484dfc0515c7c0bae4af6a88.png

卷积神经网络(CNN)广泛应用于深度学习和计算机视觉算法中。虽然很多基于CNN的算法符合行业标准,可以嵌入到商业产品中,但是标准的CNN算法仍然有局限性,在很多方面还可以改进。这篇文章讨论了语义分割和编码器-解码器架构作为例子,阐明了其局限性,以及为什么自注意机制可以帮助缓解问题。

标准编解码结构的局限性

2fb1c0638faa5791d927d3356175e2c2.png

图1:标准编解码结构

解码器架构(图1)是许多计算机视觉任务中的标准方法,特别是像素级预测任务,如语义分割、深度预测和一些与GAN相关的图像生成器。在编码器-解码器网络中,输入图像进行卷积、激活以及池化得到一个潜向量,然后恢复到与输入图像大小相同的输出图像。该架构是对称的,由精心设计的卷积块组成。由于其简单和准确,该体系结构被广泛使用。

3270660733fd0be0576fa8944ea2695c.png

图2:卷积的计算

但是,如果我们深入研究卷积的计算(图2),编码器-解码器架构的局限性就会浮出表面。例如,在3x3卷积中,卷积滤波器有9个像素,目标像素的值仅参照自身和周围的8个像素计算。这意味着卷积只能利用局部信息来计算目标像素,这可能会带来一些偏差,因为看不到全局信息。也有一些朴素的方法来缓解这个问题:使用更大的卷积滤波器或有更多卷积层的更深的网络。然而,计算开销越来越大,结果并没有得到显著的改善。

理解方差和协方差

方差和协方差都是统计学和机器学习中的重要概念。它们是为随机变量定义的。顾名思义,方差描述的是单个随机变量与其均值之间的偏差,而协方差描述的是两个随机变量之间的相似性。如果两个随机变量的分布相似,它们的协方差很大。否则,它们的协方差很小。如果我们将feature map中的每个像素作为一个随机变量,计算所有像素之间的配对协方差,我们可以根据每个预测像素在图像中与其他像素之间的相似性来增强或减弱每个预测像素的值。在训练和预测时使用相似的像素,忽略不相似的像素。这种机制叫做自注意力。

985f730164720362623ed79ef9ed9a2e.png

方程 1: 两个随机变量X和Y的协方差

CNN中的自注意力机制

9a4478e6375682fea5ddba2da53124c3.png

图3: CNN中的自注意力机制

为了实现对每个像素级预测的全局参考,Wang等人在CNN中提出了自我注意机制(图3)。他们的方法是基于预测像素与其他像素之间的协方差,将每个像素视为随机变量。参与的目标像素只是所有像素值的加权和,其中的权值是每个像素与目标像素的相关。

752a420bc36c88fbbf4b577058893960.png

图4: 自注意机制的简明版本

如果我们将原来的图3简化为图4,我们就可以很容易地理解协方差在机制中的作用。首先输入高度为H、宽度为w的特征图X,然后将X reshape为三个一维向量A、B和C,将A和B相乘得到大小为HWxHW的协方差矩阵。最后,我们用协方差矩阵和C相乘,得到D并对它reshape,得到输出特性图Y,并从输入X进行残差连接。这里D中的每一项都是输入X的加权和,权重是像素和彼此之间的协方差。

利用自注意力机制,可以在模型训练和预测过程中实现全局参考。该模型具有良好的bias-variance权衡,因而更加合理。

深度学习的一个可解释性方法

17b1a9fd0eb16a2083f601871dbca6d7.png

图5: SAGAN中的可解释性图像生成

SAGAN将自注意力机制嵌入GAN框架中。它可以通过全局参考而不是局部区域来生成图像。在图5中,每一行的左侧图像用颜色表示采样的查询点,其余五幅图像为每个查询点对应的关注区域。我们可以看到,对于天空和芦苇灌木这样的背景查询点,关注区域范围广泛,而对于熊眼和鸟腿这样的前景点,关注区域局部集中。


参考资料

Non-local Neural Networks, Wang et al., CVPR 2018

Self-Attention Generative Adversarial Networks, Zhang et al. ICML 2019

Dual Attention Network for Scene Segmentation, Fu et al., CVPR 2019

Wikipedia, https://en.wikipedia.org/wiki/Covariance_matrix

Zhihu, https://zhuanlan.zhihu.com/p/37609917

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

6182f96fe6872507838a89fc814706ff.png

4250d43ba79faf83e04c2535f6061c38.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值