CNN-Attention

Attention Mechanism可以帮助模型对输入的X每个部分赋予不同的权重,抽取出更加关键及重要的信息,使模型做出更加准确的判断,同时不会对模型的计算和存储带来更大的开销,这也是Attention Mechanism应用如此广泛的原因。 
之前在做知识库问答和阅读理解问答的研究中都用到了attention机制,效果确实比较显著(虽然减慢训练速度的效果也比较显著…)。在是谷歌发布论文Attention Is All You Need后,attention更是成为了一种普遍做法。后来发现在图像领域attention也有应用,在CNN上加attention感觉比较神奇,因此做一个小的总结。等读完这篇论文后,再来补充论文里的思想。

RNN with Attention

在nlp领域,attention主要应用在Encoder + Decoder框架的基础上。 
attention最早应该出现在2014年bengio的neural machine translation论文上面,在seq2seq问题上引入attention

CNN with Attention

主要分为两种,一种是spatial attention, 另外一种是channel attention。 
CNN每一层都会输出一个C x H x W的特征图,C就是通道,代表卷积核的数量,亦为特征的数量,H 和W就是原始图片经过压缩后的图,spatial attention就是对于所有的通道,在二维平面上,对H x W尺寸的图学习到一个权重,对每个像素都会学习到一个权重。你可以想象成一个像素是C维的一个向量,深度是C,在C个维度上,权重都是一样的,但是在平面上,权重不一样。这方面的论文已经很多了,重点关注一下image/video caption。相反的,channel attention就是对每个C,在channel维度上,学习到不同的权重,平面维度上权重相同。spatial 和 channel attention可以理解为关注图片的不同区域和关注图片的不同特征。channel attention写的最好的一篇论文个人感觉是SCA-CNN

网络架构上,Squeeze and Excitation Network就是channel attention的典型代表,主要思想是卷积网络的卷积核所代表的特征之间存在冗余,他们起了个名字叫feature recalibration,可以看作是在不影响性能的前提下减少卷积核数量是等效的。 
patial transformer networks (STN) 是之后将attention用于物体识别比较有名的一篇文章,在一些现实应用中仍被使用。再如residual attention network.

attention机制听起来高达上,其实就是学出一个权重分布,再拿这个权重分布施加在原来的特征之上,就可以叫做attention。简单来说: 
(1)这个加权可以是保留所有分量均做加权(即soft attention);也可以是在分布中以某种采样策略选取部分分量(即hard attention)。

(3)这个加权可以作用在空间尺度上,给不同空间区域加权;也可以作用在channel尺度上,给不同通道特征加权;甚至特征图上每个元素加权。 
(4)这个加权还可以作用在不同时刻历史特征上,如Machine Translation,以及我前段时间做的视频相关的工作。

 

参考文献https://blog.csdn.net/baidu_36161077/article/details/81066001

你可能感兴趣的:(语音识别-深度学习)