Xu, Kelvin, et al. “Show, attend and tell: Neural image caption generation with visual attention.” arXiv preprint arXiv:1502.03044 (2015).
聚焦机制(Attention Mechanism)是当下深度学习前沿热点之一,能够逐个关注输入的不同部分,给出一系列理解。这篇论文是聚焦机制代表作,完成了图像理解中颇具难度的“看图说话”任务。
作者提供了基于Theano的源码(戳这里),另外有热心群众在Tensorflow上给出了实现(戳这里)。
本文对照Tensorflow版本源码,详解论文算法。
数据结构
从输入到输出经历编码和解码两个部分。
类比:在机器翻译中,编码部分把源语言变成基本语义特征,解码部分把基本语义特征变成目标语言。
输入:图像 I I I
特征(annotation): { a 1 . . . a i . . . a L } \{ a_1...a_i...a_L \} {
a1...ai...aL}
上下文(context): { z 1 . . . z t . . . z C } \{z_1...z_t...z_C\} {
z1...zt...zC}
输出(caption): { y 1 . . . y t . . . y C } \{y_1...y_t...y_C\} {
y1...yt...yC}
I I I是输入的彩色图像。
有顺序的 y t y_t yt组成一句“说明”(caption)。句子长度 C C C不定。每个单词 y t y_t yt是一个 K K K维概率, K K K是词典的大小。
a i a_i ai