上学期期末老师给了我本杂志让我好好看看里面的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. python 关于 input

    name = input("请输入你的姓名:") print(name) 解释:input表示输入,当你输入一个名字的时候, 它打印出来的东西,也就是你输入的东西, 结果: 请输入 ...

  2. 经验分享 | 如何拿到自己满意的offer?

    本文阅读时间约16分钟 最近两年,人工智能(AI)就像一个点石成金的神器,所有的行业,创业公司,或是求职,只要沾着这个词,多少有点脚踩五彩祥云的感觉,故事来了,融资来了,高薪来了. 于是,越来越多的人 ...

  3. 53.CSS---CSS水平垂直居中常见方法总结

    CSS水平垂直居中常见方法总结 1.元素水平居中 当然最好使的是: margin: 0 auto; 居中不好使的原因: 1.元素没有设置宽度,没有宽度怎么居中嘛! 2.设置了宽度依然不好使,你设置的是 ...

  4. 面向对象编程之OC

    面向对象概述 面向对象是一种符合人类思想习惯的编程思想.现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系,在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种 ...

  5. mybatis源码解析12---ResultSetHandler解析

    说完了StatementHandler和ParameterHandler,接下来就需要对查询的结果进行处理了,而对于sql结果的处理是由ResultSetHandler处理的,ResultHandle ...

  6. web api使用JObject接收时,报“无法创建抽象类”错误

    https://bbs.csdn.net/topics/391952288 在下列函数中增加  ModelBinders.Binders.Add(typeof(JObject), new JObjec ...

  7. Python自然语言处理笔记【二】文本分类之监督式分类的细节问题

    一.选择正确的特征 1.建立分类器的工作中如何选择相关特征,并且为其编码来表示这些特征是首要问题. 2.特征提取,要避免过拟合或者欠拟合 过拟合,是提供的特征太多,使得算法高度依赖训练数据的特性,而对 ...

  8. 虚拟机下Linux安装jdk

    1.利用共享文件夹复制本地硬盘下(H:/share)的压缩包到指定目录 cp jdk-8u161-linux-x64.tar.gz /soft/jdk 2.进入/soft/jdk目录下,解压jdk到当 ...

  9. iperf使用指南

    注意:iperf板上版本和PC上版本要一致,至少都要是2或者3,不能一个是2,一个是3. You also get a "connection refused" error whe ...

  10. 剑指offer(14)链表中倒数第K个节点

    题目描述 输入一个链表,输出该链表中倒数第k个节点. 题目分析 用两个指针来跑,两个指针中间相距k-1个节点,第一个指针先跑,跑到了第k个节点时,第二个指针则是第一个节点. 这时候两个一起跑.当第一个 ...