Generative Adversarial Networks overview(4)
Libo1575899134@outlook.com
Libo
(原创文章,转发请注明作者)
本文章主要介绍Gan的应用篇,3,主要介绍图像应用,4, 主要介绍文本以及医药化学其他领域应用
原理篇请看上两篇
https://www.cnblogs.com/Libo-Master/p/11167804.html
https://www.cnblogs.com/Libo-Master/p/11169198.html
图像应用
https://www.cnblogs.com/Libo-Master/p/11187799.html
-----------------------------------------------------------------------------------
本文主要介绍在文本和医药化学上的应用,其实唯一的化学式分子式是可以通过一系列字符串表示的,SEQ-GAN是第一个在文本中work的GAN,由上交的组做的,比较暴力的对离散不能求导的问题,用RL的Policy Gradient来解决,先介绍框架,把文本生成变成了增强学习的过程,奖励在每次生成完完整的文本序列后,得到一个Reward,这个Reward作为此次增强学习的Reward,通过Reward不断迭代策略,之所以要这么做是因为直接把文本用在Gan中会出现刚才说的问题,每次生成出来的文本是一个离散的序列,不管是汉字还是英文是无法直接求导的,比如无法给梯度加减0.1得到另外一个字符,无法在离散空间做字符的变换,不得不转化到增强学习的框架来做,当时做的任务是唐诗宋词五言的生成,基于奥巴马演讲生成的东西,还做了音符也可以认为是个离散序列。
后来有人也做了相关的改进,把Reward不是用到了增强学习中,而是用到了判别器得到的score融合到了基于最大似然的训练的目标函数中,变到了一个稳定的去求解过程。
现在微信也有很多接口,效果也比较好,是因为他们的工作加了很多特征,手动feature,比如要求生成符合韵律的(平仄),都会编码的生成过程中的,还有些意向的映射比如山水都会编码进去。
然后在PTB(一个经典的小数据集文本)的生成的一些句子,基于词建模,一次生成了一些词而不是句子,所以并不会有拼写错误的情况。大意都是在一个topic下的什么事情。
下面是在一个大数据集上生成的结果,是基于improve-WGAN的基础上做的,并没有转化到一个增强学习的框架下,是直接在特征空间或者隐空间来处理这些文本,一般都是把原始的文本映射到一个连续的隐空间中,然后再通过一个连续的隐空间解码成一个离散文本,这是一般的文本生成的过程。然后在解码出来的离散空间来判别是真是假,需要用一些增强学习做(没有办法反向传播的问题),但是如果在连续空间直接判别是真是假,直接可以解决不能求导的问题,但是在连续空间做判别太简单了,很容易判别出假样本是假的,真样本是真的,这会导致整个gan没办法训练起来,因为是一个对抗过程,如果生成不了能够欺骗判别器的假样本,生成器就永远不能提高,训练不起来,判别器也无法提高自己,最终就失败了,所以用了W-GAN 就可以使得离散空间也可以训练判别器 ,不需要借助增强学习,每次只生成一个字母 字符级别的,可以建模语言信息了。
有了普通的文本生成,又做了一些条件的生成,生成一些跟给定文本相关的文本,相关就是在不同任务上体现,对话生成,既符合自然语言的话,又符合上下文逻辑的话,回应用户的对话,下面是一个问路的例子
下面是一个租房的例子。
下面是斯坦福博士的,把Adversarial traning 应用在了对话中,下面是解码的结果,他们同样把Gan的生成用到了增强学习中,增强学习具体有多种解法,不同的解法生成的文本长短和内容都会有较大的区别,有些时候生成反问句,有些时候会生成陈述句
后面有些人把对抗训练,用在了机器翻译的任务上,是今年微软亚洲研究院的工作,下面加粗的文本是翻译的结果,第二行是加了对抗训练的结果,可以看到加了对抗学习可以减少拼写错误,减少细微的语法错误,在细微流畅度上得到提升。
下图显示了网络结构,黄色为生成器,红色为判别器,每次先生成假样本,传给判别器。得出80%为真还是20%为真,这个reward,对于更新算法的强度有不同的影响。
可以看到现在在NLP领域,对抗训练主要做细微事情的调整,传统的RNN或者LSTM在生成过程中已经只能达到一定程度了,但加了对抗训练的话可以精益求精。
下面是生成符合某一类特性的文本,比如餐馆的评价或者商品的评价,生成满意的评价或者不满意的。下面是CMU的工作。
他们是怎么实现的呢?
加入了C,一个额外的变量去控制特征,利用判别器去判别,有没有符合判别器希望生成的特征,最终生成出既满足语言又满足特征。
现在controllable-gan 扩展到对话生成上,因为对话中会有很多隐含的情绪,沟通状态,情绪如何,比如下命令和问问题的意图不同的。
未完
-------------------------------------------
Generative Adversarial Networks overview(4)的更多相关文章
- Generative Adversarial Networks overview(2)
Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...
- Generative Adversarial Networks overview(1)
Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...
- Generative Adversarial Networks overview(3)
Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章主要介绍Gan的应用篇,3,主要介绍图像应用,4, 主要介绍文本以及医药化学其他领域应用 原理篇请看 ...
- 生成对抗网络(Generative Adversarial Networks,GAN)初探
1. 从纳什均衡(Nash equilibrium)说起 我们先来看看纳什均衡的经济学定义: 所谓纳什均衡,指的是参与人的这样一种策略组合,在该策略组合上,任何参与人单独改变策略都不会得到好处.换句话 ...
- 生成对抗网络(Generative Adversarial Networks, GAN)
生成对抗网络(Generative Adversarial Networks, GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的学习方法之一. GAN 主要包括了两个部分,即 ...
- 论文解读(GAN)《Generative Adversarial Networks》
Paper Information Title:<Generative Adversarial Networks>Authors:Ian J. Goodfellow, Jean Pouge ...
- (转)Introductory guide to Generative Adversarial Networks (GANs) and their promise!
Introductory guide to Generative Adversarial Networks (GANs) and their promise! Introduction Neural ...
- 论文笔记之:Semi-Supervised Learning with Generative Adversarial Networks
Semi-Supervised Learning with Generative Adversarial Networks 引言:本文将产生式对抗网络(GAN)拓展到半监督学习,通过强制判别器来输出类 ...
- 《Self-Attention Generative Adversarial Networks》里的注意力计算
前天看了 criss-cross 里的注意力模型 仔细理解了 在: https://www.cnblogs.com/yjphhw/p/10750797.html 今天又看了一个注意力模型 < ...
随机推荐
- [转帖]Helm 3 使用 harbor 作为仓库存储 charts
Helm 3 使用 harbor 作为仓库存储 charts https://www.cnblogs.com/innerpeacez/p/11252198.html 之前需要 使用tiller 现在貌 ...
- Delphi阿里云邮件推送【支持单一发信、邮件批量发送和获取指定条件下的发送数据】
作者QQ:(648437169) 点击下载➨Delphi阿里云邮件推送 阿里云api文档 [Delphi阿里云邮件推送]支持SingleSendMail(单一发信接口). ...
- vue的package.json文件理解
参考文档: https://www.cnblogs.com/tzyy/p/5193811.html#_h1_0 https://www.cnblogs.com/hongdiandian/p/83210 ...
- 【转载】Linux(CentOS)下安装Redis
转载地址:https://blog.csdn.net/diweikang/article/details/78784631 1.下载Redis下载最新Linux版本的Redis,我用的是redis-4 ...
- webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部署
本文为大家讲解的是webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部属,感兴趣的同学参考下 ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端a ...
- mycat在windows环境下安装和启动
1.下载从如下地址下载mycat的安装包: http://www.mycat.io/ eg:Mycat-server-1.6.6.1-release-20181031195535-win.tar.gz ...
- [转] js async await 终极异步解决方案
阅读目录 回顾 Promise async await 字面理解 async.await 如何执行 await 操作符 总结 既然有了promise 为什么还要有async await ? 当然是pr ...
- Syste.IO命名空间下的流操作类之间的关系
- c#调用python脚本实现排序(适用于python脚本中不包含第三方模块的情况)
引用:https://www.cnblogs.com/zoe-yan/p/10374757.html 利用vs2017c#调用python脚本需要安装IronPython.我是通过vs2017的工具- ...
- vue日历/日程提醒/html5本地缓存
先上图 功能: 1.上拉日历折叠,展示周 2.左右滑动切换月 2.“今天”回到今天:“+”添加日程 3.localStorage存储日程 index,html <body> <div ...