深度学习-RNN注意力模型

简介 *注意力模型来源于人脑对事物的观察,由于人脑在观察事物时,人眼睛聚焦的位置只是很小的一块,这时人脑会聚焦在这一小块图案上,此时,人脑对图的关注并不是均衡的,是有权重区别的。
*注意力模型多用于对图片的文字说明,对于图片的描述,我们接下来会介绍两种类型的图片描述方式:
[1]传统图像描述
[2]注意力模型
深度学习-RNN注意力模型
文章图片

传统图像描述 *传统方式是类似下图的方式,从形式上是将输入图片传入一个CNN中来获取对图片特征的提取(输出层信息),并将获取的特征作为输入到RNN网络中,通过RNN输出对应的文字描述,但这种组合形式能描述的文字数不多,准确率不高,而且图片特征只引入了一次,信息灵活性不强
深度学习-RNN注意力模型
文章图片

注意力模型 *Attention Model相对于传统模式的改进有:
[1]将原始图特征多次喂入RNN模型,使得模型的多个位置都能看到图片特征。
[2]让网络学会查找关注点,让网络根据关注点来聚焦图像生成文字内容描述。
*经过以上两点的改进,我们可以构建下图的模型,我们会将输入图片传到CNN网络,抽取CNN中间卷积层的信息,通过RNN对卷积层位置的定位来获取局部位置信息,也成为注意力所在意的位置信息。
深度学习-RNN注意力模型
文章图片

*接下来对网络从左到右分析(CNN假定为VGG):
[1].我们把输入图像放到预训练好的VGG网络中去,适应VGG网络进行正向计算,但是我们不会像往常那样时候最后的输出层数据,而是使用中间位置的卷积层feature map数据,因为卷积层是通过滑窗得到的,仍具有一点的位置块信息,比如这里使用的卷积层是512个14*14大小的feature map信息,将其作为集中注意力的依据。
[2].使用RNN时,我们首先会走③步骤,这里会将整个卷积层信息作为输入来获取第一次要集中的点,这里a1处会得到一个1*196的向量,这个向量上不同的数值会代表要给卷积feature map中不同点多大的注意力,从而表示对不同位置的注意。
[3].获取注意力向量之后,我们接下来如②会将上一部分的注意力向量1*196与卷积层大小为196*512的向量做乘积,乘积得到的1*512向量z1(每个map上的一个点)表示要注意的点的位置信息,也就是我们当前输出文字时要看到的位置,a1的传入计算会得到注意力点的位置信息z1(如图①),将z1结合第一个输入y1传入RNN网络。
[4].将z1和h1结合传入网络后,当前时序下,我们会通过RNN计算得到两个softmax输出值a2和d1,其中a2是新的位置向量,向量大小为1*196,d1是词输出的预测概率信息,大小应为1*词向量数。
[5].重复2和4中的过程,不断将输出a与卷积层相结合来生成新的位置点信息,从而获取新的注意力,使用新注意力结合输入获取新的输出信息d。
【深度学习-RNN注意力模型】深度学习-RNN注意力模型
文章图片

    推荐阅读