论文笔记: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)。


论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN的更多相关文章
- 论文笔记:Tracking by Natural Language Specification
Tracking by Natural Language Specification 2018-04-27 15:16:13 Paper: http://openaccess.thecvf.com/ ...
- #论文笔记# [pix2pixHD] High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
Ting-Chun Wang, Ming-Yu Liu, Jun-Yan Zhu, Andrew Tao, Jan Kautz, and Bryan Catanzaro. "High-Res ...
- 论文笔记之:Natural Language Object Retrieval
论文笔记之:Natural Language Object Retrieval 2017-07-10 16:50:43 本文旨在通过给定的文本描述,在图像中去实现物体的定位和识别.大致流程图如下 ...
- Deep Learning论文笔记之(八)Deep Learning最新综述
Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型
看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...
- 论文笔记:Mastering the game of Go with deep neural networks and tree search
Mastering the game of Go with deep neural networks and tree search Nature 2015 这是本人论文笔记系列第二篇 Nature ...
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...
随机推荐
- idea右键没有svn选项
然后apply,当然也可以只是某些指定的文件夹.project就是当前项目,包括所有的module.
- 2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...
- 洛谷P4778 Counting swaps 数论
正解:数论 解题报告: 传送门! 首先考虑最终的状态是固定的,所以可以知道初始状态的每个数要去哪个地方,就可以考虑给每个数$a$连一条边,指向一个数$b$,表示$a$最后要移至$b$所在的位置 显然每 ...
- Linux环境下虚拟环境virtualenv安装和使用
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够: 1. 在没有权限的情况下安装新套件 2. 不同应用可以使用不同的套件版本 3. 套件升级不影响其他应用 ...
- reactive stream: 响应式编程
既然 Reactive Stream 和 Java 8 引入的 Stream 都叫做流,它们之间有什么关系呢?有一点关系,Java 8 的 Stream 主要关注在流的过滤,映射,合并,而 Reac ...
- 【托业】【怪兽】TEST01
101. respectable 值得尊敬的(形容人或事物) respectful 态度恭敬的(形容人) respecting 关于…… respective 各自的 102. hardly 几乎没有 ...
- [py]python操作zookeeper
参考: https://blog.csdn.net/heizistudio/article/details/79568188 1.安装zookeeper zookeeper-3.4.6.tar.gz ...
- windows环境在本地配nginx
本地搭建了前端项目,但奈何有时候需要https访问的需求,所以做了一个尝试在本地(windows环境)下配置nginx,最终的效果就是 搭建的时候,遇到两个问题: 第一个是如果要在本地搭建https, ...
- Javascript循环删除数组中元素的几种方法示例
发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利运 ...
- LigerUI之Grid使用详解(一)——显示数据 --分页
http://www.cnblogs.com/jerehedu/p/4218560.html 首先给大家介绍最常用的数据展示组件Grid,使用步骤如下: 1.页面中正确引入样式文件及相应组件 < ...