论文笔记: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的更多相关文章

  1. 论文笔记:Tracking by Natural Language Specification

    Tracking by Natural Language Specification 2018-04-27 15:16:13  Paper: http://openaccess.thecvf.com/ ...

  2. #论文笔记# [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 ...

  3. 论文笔记之:Natural Language Object Retrieval

    论文笔记之:Natural Language Object Retrieval 2017-07-10  16:50:43   本文旨在通过给定的文本描述,在图像中去实现物体的定位和识别.大致流程图如下 ...

  4. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  5. Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型

    看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...

  6. 论文笔记: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 ...

  7. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  8. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  9. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

随机推荐

  1. Python Flask Restful

    Flask  Restful 1.flask restful 在flask基础上进行一些封装,主要用于实现restful接口 2.restful的理解 1)URI(统一资源标识符):每一个URI代表一 ...

  2. python写算法中的栈

    ########### 栈的使用 ############### class StackFullError(Exception): pass class StackEmptyError(Excepti ...

  3. js写一个chrome 插件

    访问网站的时候,最烦的就是一些弹窗和广告.于是,就想着能不能在访问特定网站的时候,执行一段js脚本,去除页面的广告.于是乎,好像 chrome 插件可以实现. 这里,以 百度 的网站为例 新建 sim ...

  4. face++静态库转为动态库

    前言 苹果商店上架应用,有规定支持iOS8.0以上的iPA可执行文件的大小不能超过60M. face++提供过来的是静态库,会导致苹果上架的ipa的包增加1.5M左右.而刚好我们的APP包Mach-O ...

  5. Sqlite3入门简记

    一,安装Sqlite3 1.入门时看http://www.runoob.com/sqlite/sqlite-intro.html,说的简单,但是适合入门 2.在终端输入sqlite3,没有返回信息,表 ...

  6. SV-assertion

    断言(assert)是一种描述性语言,通过描述的期望结果来进行仿真验证. 断言有一个更加基础的信息,我们称为属性(property),属性可以作为断言结果,功能覆盖点,形式检查和约束随机激励生成. 断 ...

  7. Django框架详细介绍---Form表单

    一.概述 在HTML页面中,利用form表单向后端提交数据时,需要编写input等输入标签并用form标签包裹起来,与此同时,在很多应用场景之下需要对用户输入的数据校验,例如注册登录页面中,校验用户注 ...

  8. maven 控制台 打包

    maven打包方法1.打开cmd,进入到项目的根目录2.执行命令:mvn clean package等待结束.结束后到目录的target子目录中找jar文件即可

  9. Angular4中使用后台去数据,Swiper不能滑动的解决方法(一)

      Swiper是目前较为流行的移动端触摸滑动插件,因为其简单好用易上手,很受很多设计师的欢迎. 今天在使用Swiper的时候遇到这个问题: 使用angularjs动态循环生成swiper-slide ...

  10. python垃圾回收机制与小整数池

    python垃圾回收机制 当引用计数为0时,python会删除这个值. 引用计数 x = 10 y = x del x print(y) 10 引用计数+1,引用计数+1,引用计数-1,此时引用计数为 ...