上学期期末老师给了我本杂志让我好好看看里面的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用于文本生成的更多相关文章

  1. Texygen文本生成,交大计算机系14级的朱耀明

    文本生成哪家强?上交大提出基准测试新平台 Texygen 2018-02-12 13:11测评 新智元报道 来源:arxiv 编译:Marvin [新智元导读]上海交通大学.伦敦大学学院朱耀明, 卢思 ...

  2. 斯坦福NLP课程 | 第15讲 - NLP文本生成任务

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  3. Python将文本生成二维码

    #coding:utf-8 ''' Python生成二维码 v1.0 主要将文本生成二维码图片 测试一:将文本生成白底黑字的二维码图片 测试二:将文本生成带logo的二维码图片 ''' __autho ...

  4. 使用 paddle来进行文本生成

    paddle 简单介绍 paddle 是百度在2016年9月份开源的深度学习框架. 就我最近体验的感受来说的它具有几大优点: 1. 本身内嵌了许多和实际业务非常贴近的模型比如个性化推荐,情感分析,词向 ...

  5. Vulcan 基于Meteor的APollO框架 , grapesjs 用于可视化生成Html 页面

    Vulcan 基于Meteor的APollO框架 :http://vulcanjs.org/ grapesjs 用于可视化生成Html    http://grapesjs.com/

  6. Mybatis-generator插件,用于自动生成Mapper和POJO

    后台环境为springboot+mybatis. 步骤一:添加mybatis环境 <dependency> <groupId>mysql</groupId> < ...

  7. 用于文本分类的RNN-Attention网络

    用于文本分类的RNN-Attention网络 https://blog.csdn.net/thriving_fcl/article/details/73381217 Attention机制在NLP上最 ...

  8. 实现nlp文本生成中的beam search解码器

    自然语言处理任务,比如caption generation(图片描述文本生成).机器翻译中,都需要进行词或者字符序列的生成.常见于seq2seq模型或者RNNLM模型中. 这篇博文主要介绍文本生成解码 ...

  9. 将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》

    将迁移学习用于文本分类 < Universal Language Model Fine-tuning for Text Classification> 2018-07-27 20:07:4 ...

随机推荐

  1. .net 程序加密

    .net 程序加密,一般是对生成的exe文件或者dll直接进行加壳,配合加密锁或者许可进行授权控制,既能保证安全性,又控制软件的使用. 加壳工具的选择 一般要考虑几点,第一是加壳的安全性,不能被轻易脱 ...

  2. SybaseIQ上SQL基本使用

    锁定: sp_iqlocks 踢人: 存储过程查找: sybase central里面查询的命令(查找过滤器例如:%table%),Sybase Central/Sybase IQ 15/服务器/xx ...

  3. CMake和Linux编程:find_package的使用

    1.第一个CMake例子 在 t1 目录建立 main.c 和 CMakeLists.txt(注意文件名大小写): main.c 文件内容: //main.c #include <stdio.h ...

  4. 自动化安装-【kickstart】

    批量自动安装软件介绍 kickstart 是一种无人值守的安装方式,工作原理是在安装过程中记录人工干预填写的各种参数,并生成以个名为ks.cfg(自动应答文件)的文件,如果在自动安装过程中出现要填写参 ...

  5. 6种原型设计工具大比对! Axure,Invision, 墨刀……哪款适合你?

    每一年的毕业季都是找工作高峰时期,产品经理.UI设计师这些岗位都会接触到原型设计工具.选择原型设计工具最重要的一点:适合自己的才是最好的! 下文将对目前超火的原型工具进行大对比,快来看看那一款于你而言 ...

  6. jsp一些使用技巧

    1.web.xml中配置error页面 一.<error-page> <error-code>500</error-code> <location>50 ...

  7. spring boot + vue + element-ui全栈开发入门——集成element-ui

     一.IDE开发工具 常用的开发工具有webstorm和sublime. 我个人喜好用Atom+插件的形式 打开Atom,在file --> settings --> packages中收 ...

  8. PyQt5学习笔记

    setMouseTracking bool mouseTracking这个属性保存的是窗口部件跟踪鼠标是否生效.如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标按键被按下时,这个窗口部件 ...

  9. 7.mongo python 库 pymongo的安装

    1.Python 中如果想要和 MongoDB 进行交互就需要借助于 PyMongo 库,在CMD中使用命令即可[注意此处是pip3,pip无法安装]: pip3 install pymongo 2. ...

  10. Eclipse安装svn插件的几种方式(转)

    1.在线安装: (1).点击 Help --> Install New Software... (2).在弹出的窗口中点击add按钮,输入Name(任意)和Location(插件的URL),点击 ...