应用层面:空间注意力 Spatial Attention
时间注意力 Temporal Attetion
作用方法:Soft Attention
Hard Attention (one-hot 独热分布)
图像处理的Attention:
在 feature map 生成 空间分布 的权重,再对 feature map 加权求和,试图让网络学出来对不同物体区域加以不同关注度。Attention有种自动寻找与结果相关的ROI(Region of Interest)的意思。
Attention本质:学出一个权重分布,再拿这个权重分布施加在原来的特征之上。
还有一种说法是任务聚焦:通过将任务分解,设计不同的网络结构(或分支)专注于不同的子任务,重新分配网络的学习能力,从而降低原始任务的难度,使网络更加容易训练。
(1)这个加权可以是保留所有分量均做加权(即soft attention);
也可以是在分布中以某种采样策略选取部分分量(即hard attention)。通常利用RL(强化学习),但是它的方差较大。
这就是说,如果要建一个大网络,简直就是个灾难。所以找一个可微attention模型(soft attention)比较好,即attention项和作为结果的loss function都是输入的可微函数,这样梯度信息保留下来,就可以用BP愉快地训练。
(2)这个加权可以作用在原图上,也就是RAM和DRAM;(《Recurrent Model of Visual Attention》(RAM)和《Multiple Object Recognition with Visual Attention》(DRAM))
也可以作用在特征图上,如后续的好多文章(例如image caption)。(《 Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》)
(3)这个加权可以作用在空间尺度上,给不同空间区域加权;
也可以作用在channel尺度上,给不同通道特征加权;
甚至特征图上每个元素加权。
注意力机制可以分为四类:
基于输入项的柔性注意力(Item-wise Soft Attention)
基于输入项的硬性注意力(Item-wise Hard Attention)
基于位置的柔性注意力(Location-wise Soft Attention)
基于位置的硬性注意力(Location-wise Hard Attention)。
注意力机制的四种类型Attention实质上是一种content-based addressing的机制,即从网络中某些状态集合中选取与给定状态较为相似的状态,进而做后续的信息抽取。
假设给定一个向量,我们希望从另一个向量集合中抽取代表向量,来计算向量与该集合的相似度。假设已经给定向量与向量的相似度计算函数(可以是一个小型神经网络)。
做法1:对每个计算相似度,然后取最大所对应的作为代表向量,最后计算相似度。最后这一步可以使用同一,也可以单独再训另一个神经网络。这样做的缺点是,如果向量集合中有很多向量的相似度是近似的,那么取这种只能留一个向量的操作事实上会丢掉大量重要信息。
做法2:取向量集合的平均向量作为代表向量,然后计算最终的相似度。这样做的缺点是,如果只有一个向量与给定向量显著相关,其他几乎不相关,那么由于取平均操作,会导致真正具有代表性的向量被其他“噪声”向量所淹没。这点在向量集合很大的时候尤为明显。
可见,我们既想在有多个相似向量的情形下尽量在最终的代表向量中保留这些向量的信息,又想在只有一个显著相关向量的情形下直接提取该向量做代表向量,避免其被噪声淹没。那么解决方案只有:加权平均。
我们可以利用相似度作为权值对向量做加权平均,这样向量越相似,在最终的代表向量中其权重越高,保留的信息越多,反之亦然。由于相似度本身可能scale千差万别,直接加权平均会导致代表向量的scale的暴增或者暴减,我们利用softmax函数将这些相似度归一化,作为最终的权值。这样得到的代表向量就是原向量集合的“软性”max,因为所有向量信息都有保留,但是最相关的向量又恰好保留的最多,与硬性的max这种留一弃它有显著区别。另外,这样的结构可以加入到神经网络模型中,通过训练改变相似度函数,从而动态改变权值,让相似度以及权值更为贴合具体问题和数据。
网友评论