我是靠谱客的博主 调皮小懒猪,最近开发中收集的这篇文章主要介绍《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》阅读笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这篇论文提出了Attention机制对于Encoder-Decoder进行改进。在Encoder-Decoder结构中,Encoder将输入序列编码为 hn h n 。这样做的一个潜在问题是,如果原始序列中包含的许多信息,而 hn h n 的长度又是一定的,那么 hn h n 就存不下我们所需的所有信息。
利用Attention机制,Decoder可以在输入序列中选取需要的特征,提高了Encoder-Decoder模型的性能。

首先,让我们先来回顾下LSTM的机制。LSTM的结构图如下图所示:
LSTM
* 红色表示输入
* 蓝色表示输出
* 绿色表示记忆单元
* 虚线表示前一时刻的变量

每个组件的具体表达式如下:

意义表达式
数据输入 z=g([xt,yt1]) z = g ( [ x t , y t − 1 ] )
输入门 i=σ[xt,yt1,ct1] i = σ [ x t , y t − 1 , c t − 1 ]
遗忘门 g=σ[xt,yt1,ct1] g = σ [ x t , y t − 1 , c t − 1 ]
输出门 o=σ[xt,yt1,ct1] o = σ [ x t , y t − 1 , c t − 1 ]

包含两种非线性激活函数:
σ(u)=11+eu σ ( u ) = 1 1 + e − u
g(u)=h(u)=tanh(u)=ezezez+ez g ( u ) = h ( u ) = t a n h ( u ) = e z − e − z e z + e − z

方括号[ ]表示线性变化,具有一般形式:
这里写图片描述
每个函数具有不同参数W,R,p, b,通过训练获得。

LSTM的一种变体 attention LSTM

LSTM新增了一个和输入同尺度的注意力权重 αt α t ,由输入和输出/隐状态计算得到:
αt=softmax(k(xt,yt1)) α t = s o f t m a x ( k ( x t , y t − 1 ) ) , 其中k是计算相关性的网络

用这个权重给原始输入加权
xtˆ=ϕ(at,xt) x t ^ = ϕ ( a t , x t )
使用加权的输入代替原来的 xt x t ,那么LSTM的结构如下图所示:
LSTM2

让我们再回到论文的内容

结构

从输入到输出依旧经过decoder及encoder两个部分。
这里写图片描述
* 特征(annotation): { a1...ai...aL a 1 . . . a i . . . a L }, 每个 ai a i 都是一个D维特征,共有L个,描述图像的不同区域。
* 上下文(context): { z1...zt...zC z 1 . . . z t . . . z C },每个 zi z i 也是一个D维特征,共有C个,表示每个单词对应的上下文。
* 输出(caption): { y1...yt...yC y 1 . . . y t . . . y C }。 yt y t 组成一句“说明”(caption)。句子长度C不定。每个单词 yt y t 是一个K维概率,K是词典的大小。

从输入图像 I 到 a

特征a直接使用现成的VGG网络中conv5_3层的14 * 14 * 512特征。所以,区域数量 L = 14 * 14 = 196,维度 D = 512

从 a 到 z

每个特征向量 ai a i 对应的权重 αi α i 是根据聚焦模型 fatt f a t t 计算得到的。
eti=fatt(ai,ht1) e t i = f a t t ( a i , h t − 1 )
αti=exp(eti)Lk=1exp(etk) α t i = e x p ( e t i ) ∑ k = 1 L e x p ( e t k )
计算得到权重之后,我们就可以计算 ztˆ=ϕ({ai},{αi}) z t ^ = ϕ ( { a i } , { α i } )
ϕ ϕ 函数将在下面部分讨论,总共有两种形式 hard 以及 soft.
权重 αi α i 记录了对每个特征向量 ai a i 的关注

从 z 到 y

z作为LSTM的输入,y作为LSTM的输出

参考博客:
【图像理解】之Show, attend and tell算法详解

最后

以上就是调皮小懒猪为你收集整理的《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》阅读笔记的全部内容,希望文章能够帮你解决《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》阅读笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部