GANs用于文本生成
上学期期末老师给了我本杂志让我好好看看里面的Gans网络是如何应用在文本生成上的,文章里面也没有介绍原理性的东西,只是说了加入这个Gans模型后效果有多好,给出了模型架构图和训练时所用的语料例子,也没有给出模型的细节以及训练时的优化目标。看的我一脸懵。这篇文章也不涉及任何原理性东西,只是用我自己的理解说明一下Gans网络存在的问题以及如何改进。
之后看了大量资料才对这个模型有一个很好的认识,Gans模型16年被提出来的,之后就在图像生成方面取得了很不错的成果,Gans刚提出来的时候只适用于连续型的数据生成,对于离散型的数据效果不佳,但是总有大佬喜欢搞事,想将Gans用在文本生成这样的离散数据任务上,将Gans网络应用于文本生成像在逐步实现图灵测试,要是真实现了就是一个激动人心的大事,怪不得那些大佬喜欢搞事。
好了,来看看Gans网络如何应用于文本生成。
GANs在面对离散型数据的时候,判别网络无法直接将梯度反向传播给生成网络,因为判别器得到的是sampling之后的结果,即使softmax的输出优化了一点点,但是sampling之后生成器的结果和上一次一模一样,判别器会意识不到上一次自己的判别是正确的,从而乱指导生成器的更新。比如第一次生成器输出[0.1, 0.1, 0.1, 0.1, 0.6], 经过sampling之后结果是[0, 0, 0, 0, 1]输入给判别器,假如正确结果是[0, 1, 0, 0, 0],判别器收到结果进行判定然后判定结果经过反向传播后给生成器,生成器又再次给出自己的答案是[0.1, 0.2, 0.1, 0.1, 0.5],sampling之后结果依旧是[0, 0, 0, 0, 1],当判别器看到又是这个结果,恐怕会怀疑自己的人生,然后重新选一条路教生成器如何更好地欺骗自己。
WGAN是对于GAN直接改进用于文本生成的大名鼎鼎的模型。在原始Gan用于文本生成时,训练过程看不到生成器从好到不好的过程,而WGAN利用Wasserstein散度,使得这个过程可视化。Wasserstein距离度量两个概率分布之间的距离,它相比于KL散度和JS散度的优势在于:即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而JS散度在此情况下是常量,KL散度可能无意义。这就使得Gan模型在离散型数据上有了明显的进化过程。然而即使是这样,Gan模型在文本生成上只能产生一些看起来有那么一点正常的语句,与现在的starte-of-art相去甚远。
GANs用于文本生成的更多相关文章
- Texygen文本生成,交大计算机系14级的朱耀明
文本生成哪家强?上交大提出基准测试新平台 Texygen 2018-02-12 13:11测评 新智元报道 来源:arxiv 编译:Marvin [新智元导读]上海交通大学.伦敦大学学院朱耀明, 卢思 ...
- 斯坦福NLP课程 | 第15讲 - NLP文本生成任务
作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...
- Python将文本生成二维码
#coding:utf-8 ''' Python生成二维码 v1.0 主要将文本生成二维码图片 测试一:将文本生成白底黑字的二维码图片 测试二:将文本生成带logo的二维码图片 ''' __autho ...
- 使用 paddle来进行文本生成
paddle 简单介绍 paddle 是百度在2016年9月份开源的深度学习框架. 就我最近体验的感受来说的它具有几大优点: 1. 本身内嵌了许多和实际业务非常贴近的模型比如个性化推荐,情感分析,词向 ...
- Vulcan 基于Meteor的APollO框架 , grapesjs 用于可视化生成Html 页面
Vulcan 基于Meteor的APollO框架 :http://vulcanjs.org/ grapesjs 用于可视化生成Html http://grapesjs.com/
- Mybatis-generator插件,用于自动生成Mapper和POJO
后台环境为springboot+mybatis. 步骤一:添加mybatis环境 <dependency> <groupId>mysql</groupId> < ...
- 用于文本分类的RNN-Attention网络
用于文本分类的RNN-Attention网络 https://blog.csdn.net/thriving_fcl/article/details/73381217 Attention机制在NLP上最 ...
- 实现nlp文本生成中的beam search解码器
自然语言处理任务,比如caption generation(图片描述文本生成).机器翻译中,都需要进行词或者字符序列的生成.常见于seq2seq模型或者RNNLM模型中. 这篇博文主要介绍文本生成解码 ...
- 将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》
将迁移学习用于文本分类 < Universal Language Model Fine-tuning for Text Classification> 2018-07-27 20:07:4 ...
随机推荐
- java框架之Hibernate(3)-一对多和多对多关系操作
一对多 例:一个班级可以有多个学生,而一个学生只能属于一个班级. 模型 package com.zze.bean; import java.util.HashSet; import java.util ...
- data日期转化
eg: var time="2018-05-19T08:04:52.000+0000"; var d = new Date(time); var times=d.getF ...
- osx brew mysql
MariaDB Server is available for installation on macOS (formerly Mac OS X) via the Homebrew package m ...
- 用python写多线程
import threading #首先导入threading 模块,这是使用多线程的前提 from time import ctime,sleep def music(func): ): print ...
- ts中的类的定义,继承和修饰符
自己搞一个ts文件 里面写代码如下,试一下就行了 /* 1.vscode配置自动编译 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": &q ...
- Spring框架的第三天
## Spring框架的第三天 ## ---------- **课程回顾:Spring框架第二天** 1. IOC的注解方式 * @Value * @Resource(name="" ...
- php 根据日期获取星座
根据日期获取星座 /* * * 获取星座 * 星座是按阳历来计算的 * $month 阳历月份 * $day 阳历日期 * */ public static function get_xingzuo( ...
- phpstorm2018激活方法
直接用浏览器打开 http://idea.lanyus.com/点击页面中的“获得注册码”,然后在注册时切换至Activation Code选项,输入获得的注册码一长串字符串如果提示红字体信息,那么先 ...
- java限制map大小,并FIFO淘汰
有时候需要往一个MAP中写入一些记录,但又怕无限制地写入会导致内存爆掉,所以得限制这个MAP的大小. 实现:LinkedHashMap提供了简单的方法. 首先,定义一个最大数,比如1000,然后new ...
- oracle查询buffer cache中undo大小
1.Does undo buffer exists or changes will directly write to undo datafiles? Undo blocks are database ...