论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN
论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN
ICCV 2017
Paper: http://openaccess.thecvf.com/content_ICCV_2017/papers/Dai_Towards_Diverse_and_ICCV_2017_paper.pdf
Implementation(Torch): https://github.com/doubledaibo/gancaption_iccv2017
本文的目标是想产生高质量的图像描述语句:more Natural and Diverse !
所以本文采用了 Conditional GAN 来实现这一想法,通过控制 random noise vector Z 来生成具有多样性的语句。
其实模型的整体思路和 seqGAN 是一致的,就是利用 Generator 来产生一个句子,然后交给 Discriminator 来进行判断。
不同之处在于,与 NLP 中的文本生成不同,Image Caption 需要根据图像的内容进行句子的产生,然后就变成了 Conditional GAN 了。文章的写作也是重点体现 CGAN 的作用。
如上图所示,作者也将 random noise Z 添加进去,以控制产生文本的多样性,基于这两个条件,提取特征,输入给 LSTM,每一个时刻输出一个单词,直到遇到表示句子停止的单词符号为止(例如,[End])。这样就生成了一个句子。
然后作者用 LSTM 提取生成的句子和 Ground Truth 句子的向量,然后塞给 Discriminator,进行判断。
重点来了,因为文本的生成是离散的符号生成问题,原本用于图像生成的 CGAN 并不能直接用于此任务。因为梯度的些许改变,也许并不能改变其输出。
所以,这里需要强化学习技术 Policy Gradient 来进行转换,将判别器的得分输出,转变为 智能体的奖赏 r,优化产生器的参数,使其输出的句子能够获得最大的奖励,从而使得最终获得较好的文本生成效果。这样就把文本的生成问题,看做是强化学习中的动作选择问题(Action Selection)。
如上图所示,当给你某一段生成的部分句子,由于交给判别器进行打分,需要完成的一句话。所以,文章采用蒙特卡洛 Rollout 的方法,将句子进行补充完整。然后才交给判别器进行打分,获得奖励信号。根据得到的奖励信号,再进行梯度的调整,进而完成产生器 G 的优化。
所以,期望累积奖赏为:
其梯度为:
其中,$\pi$ 那一项是强化学习中的策略(Policy),将条件 f(I), Z 以及接下来的单词 $S_{1:t-1}$ 作为输入,并且产生一个在拓展词汇表中的条件分布(a conditional distribution over the extended vocabulary),即:产生的所有单词加一个表示语句结束的符号,记为 e。奖励是 ,该得分是由判别器 E 给出的。
此外,作者也将该模型拓展到产生段落文字的应用场景(利用 Hierarchical LSTM design)。