(转)Attention
Index
参考列表
Survey on Advanced Attention-based Models
Recurrent Models of Visual Attention (2014.06.24)
Recurrent Model of Visual Attention (blog)
https://github.com/Element-Research/rnn/blob/master/scripts/evaluate-rva.lua
Show, Attend and Tell: Neural Image Caption Generation with Visual Attention(2015.02.10)
Soft Attention Mechanism for Neural Machine Translation
DRAW: A Recurrent Neural Network For Image Generation(2015.05.20)
Teaching Machines to Read and Comprehend(2015.06.04)
Learning Wake-Sleep Recurrent Attention Models(2015.09.22)
Action Recognition using Visual Attention (2015.10.12)
Recurrent Convolutional Neural Network for Object Recognition (2015)
Understanding Deep Architectures using a Recursive Convolutional Network (2014.2.19)
MULTIPLE OBJECT RECOGNITION WITH VISUAL ATTENTION (2015.04.23)
Recursive Recurrent Nets with Attention Modeling for OCR in the Wild(2016.03.09)
https://github.com/Element-Research/rnn/blob/master/examples/recurrent-visual-attention.lua (code)
Attention
在引入Attention(注意力)之前,图像识别或语言翻译都是直接把完整的图像或语句直接塞到一个输入,然后给出输出。
而且图像还经常缩放成固定大小,引起信息丢失。
而人在看东西的时候,目光沿感兴趣的地方移动,甚至仔细盯着部分细节看,然后再得到结论。
Attention就是在网络中加入关注区域的移动、缩放、旋转机制,连续部分信息的序列化输入。
关注区域的移动、缩放、旋转采用强化学习来实现。
Attention在视觉上的递归模型
参考 Recurrent Models of Visual Attention (2014.06.24)
模型
该模型称为The Recurrent Attention Model,简称RAM。
A、Glimpse Sensor: 在tt步,图片xtxt的lt−1lt−1位置处取不同大小的区域,组合成数据ρ(xt,lt−1)ρ(xt,lt−1)
B、Glimpse Network: 将图片局部信息与位置信息整合成gtgt
C、Model Architecture: ht−1ht−1为隐藏记忆单元,每轮加入新的gtgt,生成新的htht,并以此生成感兴趣的atat与新的位置ltlt
该模型每次迭代的时候,还可以输出缩放信息和结束标志。
训练
网络的参数可表示为θ={θg,θh,θa,θl}θ={θg,θh,θa,θl},强化学习的策略可表示成π((lt,at)∣s1:t;θ)π((lt,at)∣s1:t;θ),其中s1:t=x1,l1,a1,⋯,xt−1,lt−1,at−1,xts1:t=x1,l1,a1,⋯,xt−1,lt−1,at−1,xt,另可用utut表示(lt,at)(lt,at)。
强化学习得到奖赏为R=∑Tt=1rtR=∑t=1Trt。例如,在物体识别中,aTaT输出类型是正确时,奖赏为1,否则为0。其它时刻的奖赏为0。
奖赏期望为
强化学习的目标是提高 JJ ,等同于提高 logJlogJ 。对其求导
其中i=1…Mi=1…M表示第 ii 次采样。
在学习训练过程中,∇θlogπ(uit∣si1:t;θ)∇θlogπ(uti∣s1:ti;θ)不需要显示求出,可直接使用RNN模型的标准反馈梯度。
以上等式是梯度的无偏估计,但可引起高方差,所以引入以下估计
其中bt=Eπ[Rt]bt=Eπ[Rt]
效果
以上是论文中在识别扩大和污染了的minst数据库上,识别数字时,glimpse的移动方向。
实心绿点是开始,空心绿点是结束。
可以看到,RAM模型顺着感兴趣的方向移动。
识别效果比全链接的网络,和基于CNN的网络都要好。
Torch代码结构
在博客Recurrent Model of Visual Attention的训练代码中,结构如下
(TODO)基于Attention的图片生成
Auto-Encoding Variational Bayes (2014.05.01)
DRAW: A Recurrent Neural Network For Image Generation(2015.05.20)
基于Attention的图片主题生成
参考 Show, Attend and Tell: Neural Image Caption Generation with Visual Attention(2015.02.10)
⟹⟹ A bird flying over a body of water
如上,根据图片,生成主题描述。
模型
如上图,模型把图片经过CNN网络,变成特征图。
LSTM的RNN结构在此上运行Attention模型,最后得到主题输出。
编码
特征图均匀地切割成多个区域,表示为
L表示切割的区域个数。
如区域大小为14×1414×14,D=196D=196。
输出的主题yy可以编码为
K是字典的单词个数,C是句子长度。
yiyi的形式为(0,0,…,0,1,0,…,0,0)(0,0,…,0,1,0,…,0,0),即只有第ii处位置为1,其它位置为0。
解码
该模型使用的LSTM如下图所示
运算为
其中 σσ 是 sigmoid 函数,⊙⊙ 表示同位置的元素相乘。
it,ft,otit,ft,ot 分别为输入门、遗忘门、输出门,gtgt是对输入的转化,ctct是cell状态,htht是隐藏状态。
E∈Rm×KE∈Rm×K,通过随机初始化学习到的矩阵。
z^tz^t是对整张图片部分信息的动态表示,一个Attention模型,如下计算
其中 ii 表示第 ii 个特征区域,共 L 个。
函数 fattfatt 采用多层网络实现,利用前一时刻的隐藏状态 ht−1ht−1 与 L 个特征区域,分别得到每个区域的权重 αtiαti 。
权重 αtiαti 可以理解为(1)下一步选择哪一个特征区域的概率,也可以理解为(2)每一个特征区域在下一次输入中所占的比例。
不同的理解与应用,体现在函数 ϕϕ 的不同实现上。
按(1)实现称为 Stochastic “Hard” Attention ,按(2)实现称为 Deterministic “Soft” Attention。
下图上一排为 soft 模型,下一排为 hard 模型。
LSTM中的记忆单元与隐藏单元的初始值,是两个不同的多层感知机,采用所有特征区域的平均值来进行预测的:
而最终的单词概率输出,采用深度输出层实现
其中 Lo∈RK×mLo∈RK×m,Lh∈Rm×nLh∈Rm×n,Lz∈Rm×DLz∈Rm×D。
Stochastic “Hard” Attention
st,ist,i 指示是否选择 L 个特征图中的第 ii 个,如果设置成1,表示选中,0表示不选中。
在随机’Hard’模型中,只有唯一的选中。
z^tz^t 变量如下计算
我们设置 logp(y∣a)logp(y∣a) 函数的下限为目标函数 LsLs:
对其进行参数求导有
以上参数求导可用Monte Carlo方法采样实现
为减少估计方差,可采用冲量方式,第k个 mini-batch 的时候
为进一步减少估计方差,引入 multinoulli 分布的熵 H(s)H(s)
λrλr 与 λeλe 是两个超参。
以上参数求导优化的过程就是强化学习,每次选择下一个特征图的过程都朝目标更好的方向变化。
Deterministic “Soft” Attention
上面的随机模型需要采样位置 stst,我们还可以通过直接计算 z^tz^t
这就是Deterministic “Soft” Attention模型,通过 αα 来选择感兴趣的特征区域。
该模型可以通过端到端的的反馈方法进行学习。
在计算 αα 的时候,有 ∑iαt,i=1∑iαt,i=1 来保证感兴趣的所有区域的权重和为1。
另外,可以加入一个新的正则化,每一个区域在 TT 步中,被观察的权重拉近:
这个正则的加入,可以使得生成的主题更加丰富。就是结果更好嘛!
另外,在 z^tz^t 的计算中添加一个标量进行缩放,通过前一个隐藏单元 ht−1ht−1 来计算
最终,端到端的目标函数可写为
基于Attention的字符识别
参考 Recursive Recurrent Nets with Attention Modeling for OCR in the Wild(2016.03.09)
模型
Recursive / Recurrent CNN
CNN是卷积层权重共享。
Recursive CNN是在卷积层中添加多层,每层的卷积核共享:
Recurrent CNN也是在卷积层中添加多层,但每层都在最初信息的参与,卷积核可以共享,也可能不共享:
Recursive与Recurrent CNN有都提高感受野,减少参数的作用。
在参考这篇论文中,有提到Recursive CNN效果比Recurrent CNN好。
(转)Attention的更多相关文章
- Attention:本博客暂停更新
Attention:本博客暂停更新 2016年11月17日08:33:09 博主遗产 http://www.cnblogs.com/radiumlrb/p/6033107.html Dans cett ...
- attention 机制
参考:modeling visual attention via selective tuning attention问题定义: 具体地, 1) the need for region of inte ...
- (转)注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 本文转自:http://www.cnblogs.com/robert-dlut/p/5952032.html 近年来,深度 ...
- 论文笔记之:Deep Attention Recurrent Q-Network
Deep Attention Recurrent Q-Network 5vision groups 摘要:本文将 DQN 引入了 Attention 机制,使得学习更具有方向性和指导性.(前段时间做 ...
- 注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了 ...
- PowerVault TL4000 Tape Library 告警:“Media Attention”
Dell PowerVault TL4000 磁带库机的指示灯告警,从Web管理平台登录后,在菜单"Library Status"下发现如下告警信息: Library Sta ...
- paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)
1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual ...
- Attention and Augmented Recurrent Neural Networks
Attention and Augmented Recurrent Neural Networks CHRIS OLAHGoogle Brain SHAN CARTERGoogle Brain Sep ...
- 论文笔记之:Multiple Object Recognition With Visual Attention
Multiple Object Recognition With Visual Attention Google DeepMind ICRL 2015 本文提出了一种基于 attention 的用 ...
随机推荐
- Javascript 基础--数组
一.一维数组 1.一维数组 var weights = [3,5,1,3.4,2,50]; var all_weight=0; var avg_weight=0; for(var i=0;i<w ...
- Java中方法与数组
1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参 ...
- 按Right-BICEP要求的任务二的测试
测试方法:Right-BICEP 测试计划: 1.Right-结果是否正确? 2.B-是否所有的边界条件都是正确的? 3.P-是否满足性能要求? 4.是否有乘除法? 5.是否有括号? 6.是否有输出方 ...
- 一维条形码攻击技术(Badbarcode)
0x00 前言 在日常生活中,条形码随处可见,特别在超市,便利店,物流业,但你们扫的条形码真的安全吗?之前TK教主 在PacSec介绍的条形码攻击和twitter上的demo视频太炫酷,所以就自己买了 ...
- 迪士尼黑科技:爬墙机器人 VertiGo
12 月 30 日,迪士尼研发出的一款爬墙机器人曝光了一段有趣的视频.从视频里可看出这个机器人碰到墙壁时迅速地作出反应爬了上去. 据了解,这个爬墙机器人名叫 VertiGo,由迪士尼研究中心和苏黎世联 ...
- IOS开发在线文档 记录下
View Programming Guide for iOS https://developer.apple.com/library/prerelease/ios/documentation/UIKi ...
- Linux---- vim 插件
http://hi.baidu.com/omnice/blog/item/4ba97317cc67cc10962b4378.html fuzzyfinder.vim 可以替代四个插件, 不过这个插件也 ...
- 【Tsinghua OJ】范围查询(Range)问题
[问题描述]数轴上有n个点,对于任一闭区间 [a, b],试计算落在其内的点数. [输入]第一行包括两个整数:点的总数n,查询的次数m.第二行包含n个数,为各个点的坐标.以下m行,各包含两个整数:查询 ...
- Mac 将mysql路径加入环境变量
1.打开终端,输入: cd ~ 会进入~文件夹 2.然后输入:touch .bash_profile 回车执行后, 2.再输入:open -e .bash_profile 会在TextEdit中打开这 ...
- Quirks模式是什么?
什么是DOCTYPE: DOCTYPE,或者称为 Document Type Declaration(文档类型声明,缩写 DTD).通常情况下,DOCTYPE 位于一个 HTML 文档的最前面的 位置 ...