Regularizing RNNs for Caption Generation by Reconstructing The Past with The Present
1、提出问题
-
传统的解码器依赖于输入的转换算子来生成描述,单词 yt+1 的生成是以第 t 时间步的 ht 为条件,但它没有充分利用以前的隐藏状态 ht-1 。
-
RNN 中训练和推理之间的差异(exposure bias)仍然存在。
2、创新点
提出了一种 ARNet 与编码器-解码器的框架相耦合,它通过重建过去的隐藏状态和现在的隐藏状态,来连接两个相邻的隐藏状态,因此他可以使当前的隐藏状态嵌入来自前一个隐藏状态的更多信息。

3、方法
3.1、Background
本文提出 ARNet 与编码器-解码器的框架相结合,以提高描述生成任务的性能。 这里我们简要回顾 Encoder-Decoder 框架。
3.1.1、Encoder
编码器用于生成输入数据的语义表示。他不仅生成全局信息 g ,而且生成局部信息 s={s1,s2,…,sn},这些信息将作为解码器的输入。
本文利用 Inception-V4 对给定图像 I 进行编码,最后一个全连接层为全局信息 g,最后一个卷积层的输出构成局部信息向量 s 。
这里还介绍了当输入为源代码时的任务,不详细介绍了。
3.1.2、Decoder
解码器的目的是根据编码器生成的全局信息向量 g 和局部信息向量 s 生成一个由 N 个单词 (y1,y2,···,yN) 组成的自然语句 C 。 为了进一步利用局部信息向量,提出了注意力机制。 因此,注意力机制的 LSTM 可以进一步重新表述为:

其中 zt 表示注意力机制产生的上下文向量。
给定从编码器生成的局部信息向量 s ,zt 通过以下方法计算:

α \alpha α(si,ht-1) 衡量 si 和 ht-1 之间的相似性,通常由多层感知器实现。
3.2、The Proposed ARNet
3.2.1、Architecture

我们提出的 ARNet 是由另一个 LSTM 实现的,它以解码器中产生的隐藏状态序列作为输入。 图中介绍了 ARNet 的结构,从中我们可以看出 ARNet 的目的是利用相邻的隐藏状态之间的关系。
使用 LSTM 单元用当前的隐藏状态 ht 去重建上一时间步的隐藏状态 ht-1 ,可表述为:

其中 it’、ft’、ot’、ct’ 和 ht’ 分别为 LSTM 单元的输入门、遗忘门、输出门、存储单元和隐藏状态。
为了进一步匹配先前的隐藏状态 ht-1 ,使用一个全连接层将生成的 ht’ 映射到具有 ht-1 的公共空间:

其中,wfc 和 bfc 分别为权重矩阵和偏置向量。h^t-1 是当前的隐藏状态经过重构后的状态。
然后,我们用 h^t-1 和 ht-1 之间的欧几里得距离定义了一个重建误差:

其中 LtAR 测量 ARNet 在时间步长 t 处的重建误差。 通过最小化定义的重构误差,我们使当前隐藏状态 ht 嵌入更多来自前一个隐藏状态 ht-1 的信息。
3.2.2、Training Procedure
模型的训练过程包括两个阶段。 首先,我们冻结 ARNet 的参数,并对编码器-解码器结构进行预训练,该阶段损失函数为:

其中,I 是输入的图像,C 是生成的描述。


w 是线性变换矩阵,y1 是句首的标志,yt 是独热向量,E 是嵌入矩阵,Eyt 代表一个词向量。
在编码器-解码器结构收敛之后,使用以下目标函数对整个网络进行微调:

这里, λ \lambda λ 是一个权衡参数,用于平衡 ARNet 和编码器-解码器架构的贡献。
831

被折叠的 条评论
为什么被折叠?



