Improving sequence generation by GAN

1、Conditional sequence generation

产生sequence task。

  • input 声音讯号,生成语句
  • input是中文,翻译
  • input是一个句子,output另一个句子

the generator is a typical seq2seq model

chat-bot as example

maximize likelihood= minimize cross-entropy

1)使用reinforcement learning improve conditional generation (human feedback)


chat-bot不断学习去最大化期待的得分

Policy gradient

sequence to sequence model:encoder+decoder

p(c):每一个input出现的几率吧,即每个sentence出现的几率
后半部分:在给定c,output为x这个sentence得几率是多少。

R(c,x): 在给定c和x时候都分数

RθR_{\theta}Rθ:reward期望值

调整θ\thetaθ使reward期望值越大越好


θ\thetaθ没有出现在公式中,改变θ\thetaθ会改变sample的值

实作:分开做gradient计算


使用gradient ascent:

如果评价是正向的:
让它在c情况下,x出现的几率变大
如果评价是负向得:
让它在c情况下,x出现的几率变小

implementation

每次update完参数,要重新sample,因为每次更新完它得expected reward得参数就会改变。

comparison between 极大似然估计和reinforcement learning


在RL中,每一笔training data都是有weight的。

Conditional GAN


判别器会判别是人类的语言还是fake的——给与reward的过程

算法过程:

generator is to fool discriminator
chat-bot是sequence2sequence的model是RNN过程
discriminator 要同时吃input 和output

在中间有一个sampling process,chat-bot输出一个sentence的上一个过程是一个sampling process,这个过程无法微分。微分对sampling的结果是不确定的。

三种解法:

  • Gumbel-softmax
  • Continuous input for discriminator
  • RL

Continuous input for discriminator

直接给word distribution。


problem:
real data 和generated data本质的vector是不一样的,并不是pne-hot编码的形式

套用RL



把R换成了D
problem:
将输出的句子,分解成每个字的概率做相乘
讲一个句子出现的概率下降,会降低那些应该有高概率出现的成员词的概率也下降
但由于training是不断sampling process,所以还会有其他的正向语句去增加成员词的概率

Reward for every generation step

每一个词出现都做reward。


为什么在image 生成时 要用GAN:在生成过程中,会对所有可能的结果做平均,很模糊。对于语句,maximize所有likelihood的结果会产生奇怪的句子。使用GAN后,他比较喜欢输出长的句子,有内容的句子。

2、Unsupervised conditional sequence generation

text style transfer



如果没有办法一起train可以使用continuous 或者RL训练generator和discriminator

使用continuous的方法:使用word embedding


Projection to common space


discriminator无法吃discrete的input,将输入discrete变成输入decoder的hidden layer

Unsupervised abstractive summarization

做摘要,自己写摘要,而不是摘抄


100 万以上的sample

使用unsupervised conditional generation

将文本和摘要看作两个domain,让机器自动在两个domain上互转。

用document做seq2seq生成摘要输入判别器,判断是否是人类写的摘要,real or not。不断更新这两个使输出的更像人类写的摘要。
但这还远远不够,可能summary很好,但与input的文本无关。所以要加入一个decoder,使这个summary转为document,且这个document和原来的很像

另外一个方法:

将文章变成简短的句子,将简短的句子变为文章。seq2seq2seq auto-encoder。

使用一个word sentences作为latent representation。希望这个latent layer是人可以读的,但这个中间得信息有时候可能很难读,所以加入discriminator去训练这个latent representation让它变得可读。

Unsupervised translation

将不同的语言看作不同的domain

supervised vs unsupervised

Evaluation

如何评估GAN生成的image的好坏


使用GAN做的话,无法计算分布,只可以采样。无法指定产生image的几率

希望generator model是一个复杂的模型

Kernel Density Estimation


将生成的结果做采样,做高斯混合模型,去逼近实际的混合分布

likelihood vs quality


likelihood无法反映quality的情况

Objective Evaluation

拿一个已经训练好的分类器去评估
对生成的图片做分类,如果分类很集中,说明图片质量很高
还要去从diverse衡量
将三个input输入,对三个结果做平均,如果结果为uniform distribution,说明每一个类别都要产生到。如果分布比较突出,只能说明生成过程只擅长生成一类的图片

Inception score

we don’t want memory GAN

使用k近邻去检查生成器是不是产生新的objects

Mode dropping:生成的图片多样性不够

DCGAN:检查生成的images有多少个不同的images

issue:产生的distribution不够大,使用unroll GAN

多时看很多图

  • Mini-batch discriminator

深度学习(16) GAN(4)相关推荐

  1. 附pdf下载 | 入门深度学习和GAN的几本书

    今天分享几本深度学习.GAN等好的电子书资源!收藏! 如今,GAN技术已经延伸至AI各个方向之中,例如图像处理.自然语言处理和语音等. 深度学习三巨头之一的 Yann LeCun 对 2014 年的生 ...

  2. 最新版动手学习深度学习和GAN电子书免费下载!

    今天给大家推荐一个GAN方面的优质公众号---机器学习与生成对抗网络.该公众号里分享了几本深度学习.GAN等好的电子书资源! 强烈推荐李沐等人的<动手学习深度学习>最新版!完整中文版 PD ...

  3. 附pdf下载 | 动手学习深度学习和GAN电子书

    今天分享几本深度学习.GAN等好的电子书资源!推荐收藏! 如今,生成对抗网络GAN技术已经延伸至AI各个方向之中,例如图像处理.自然语言处理和语音等. 深度学习三巨头之一的 Yann LeCun 对 ...

  4. [深度学习-实践]GAN入门例子-利用Tensorflow Keras与数据集CIFAR10生成新图片

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之基于CIFAR10数据集的例子; 深度学习GAN(三)之基于手写体Mnist数据集的例子; 深度学习GAN(四)之PIX2PIX G ...

  5. 深度学习之GAN生成对抗网络

    前言 近年来,基于数据而习得"特征"的深度学习技术受到狂热追捧,而其中GAN模型训练方法更加具有激进意味:它生成数据本身. GAN是"生成对抗网络"(Gener ...

  6. [深度学习-实践]GAN基于手写体Mnist数据集生成新图片

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之基于CIFAR10数据集的例子 深度学习GAN(三)之基于手写体Mnist数据集的例子 深度学习GAN(四)之PIX2PIX GAN ...

  7. [深度学习-原理]GAN(生成对抗网络)的简单介绍

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之DCGAN基于CIFAR10数据集的例子 深度学习GAN(三)之DCGAN基于手写体Mnist数据集的例子 深度学习GAN(四)之c ...

  8. CVPR2019| 最新CVPR2019论文:含目标检测、分割、深度学习、GAN等领域

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 推荐几篇CPRR2019最新论文,含目标检测.分割.深度表示.GAN等领域 [1]Strong-Weak Distr ...

  9. 基于深度学习的GAN应用风格迁移

    GAN 是什么?:Generative Adversarial Network 我们可以这样定义:"对抗生成网络(GAN)是一种深度学习模型,模型通过框架中至少两个框架:生成模型和判别模型的 ...

  10. 深度学习《GAN模型学习》

    前言:今天我们来一起学习下GAN神经网络,上一篇博文我先用pytorch运行了几个网上的代码例子,用于生成MNIST图片,现在我才反过来写GAN的学习,这次反了过来,效果也是很显而易见的,起码有个直观 ...

最新文章

  1. Azure 中国四年扩容 12 倍还不够,微软放话:全球每年新建 50-100 数据中心!
  2. 是固执成见还是步步为营,工程建筑行业如何追赶人工智能化潮流?
  3. (0092)iOS开发AVAudioRecorder录制音频
  4. jQuery 在Table中选择input之类的东西注意事项
  5. Outlook 2003中各个数据存储和配置文件的存放位置
  6. WSDL文件生成WEB service server端C#程序
  7. Blog.Core高级进阶:共赴五年之约
  8. 演练:调试 Windows 窗体
  9. 数值计算方法(五)——迭代法求方程根
  10. centos设置时间时区
  11. 球球大作战代点链接源码c语言,最新球球大作战代点源码无加密开源-球球大作战一天刷100个棒棒糖和刷龙蛋200个源码下载免费版-西西软件下载...
  12. Idea使用SVN下载运行项目
  13. mousetrap.js使用详解
  14. DES加密解密-CryptoJS与Java
  15. photoshop实用技巧
  16. Node.js 静态web服务
  17. python利用公式计算_Python利用openpyxl处理Excel文件(公式实例)
  18. 技术分享:国民远控向日葵如何通过BBR算法提升远控体验?
  19. 在Linux系统上运行.jnlp文件
  20. 为应用程序添加图标 ios_38个美丽的iOS应用程序图标设计,激发您的灵感

热门文章

  1. input正则邮箱_JS正则表达式验证email邮箱是否正确
  2. 广电网络计算机上网,广电wifi连接上不能上网怎么办
  3. PHP报错child 30396 said into stderr: zend_mm_heap corrupted
  4. ZeroClipBoard的诡异事件
  5. linux能远程开机么,Linux下如何实现远程开机
  6. Alpaca 凭什么成为 BSC 第三大协议?
  7. Java Foreach拉姆达表达式
  8. 34、BDS B1I星历处理实现
  9. html和js制作个人所得税表格,用JS编写个人所得税计算器
  10. Maix Bit(K210) 裸机开发教程(六)摄像头使用