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 ...
随机推荐
- CoreData 执行executefetchrequest卡死解决办法
在大量使用GCD和block以后发现程序会卡死在executefetchrequest执行. 反复测试无果.添加锁也无效.想来想去没发现问题. 容忍了就当人品问题.2天以后实在忍无可忍. 替换perf ...
- [PHP] swoole在daemonize模式下,chdir失效问题
swoole version: 1.9.6 其实跟swoole的版本无关,因为原代码体系,fpm模式下,在启动的时候,是使用 chdir 函数改变了当前目录的,而其它代码在做类的自动加载的时候,都是写 ...
- mac系统maven spring mvc小试牛刀
转: https://blog.csdn.net/Hitourlee/article/details/77930309和https://www.cnblogs.com/xiaowenbo/p/6980 ...
- Python 函数中,参数是传值,还是传引用?
在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...
- 浅探网络1---tcp协议详解(三次握手和四次挥手)
TCP协议是网络多层协议中运输层的最重要的协议之一,运输层是两台主机的进程之间的通信.除了TCP还有一个是UDP协议(用户数据包协议) TCP全称是Transmission Control Proto ...
- The Code analysis of the FFDNet model
1. 读取图像并判断是否为灰度图,如为RGB图转化为灰度图,并读取图像的w.h 2.数据格式转换:将uint8表示的读取图像矩阵变为double表示. 3.加入噪声,如果噪声水平$\sigma = 5 ...
- JavaScript eval
JavaScript eval JavaScript中的eval是Python中eval和exec的合集,既可以编译代码也可以获取返回值. // EvalError 执行字符串中的JavaScrip ...
- kubeflow 创建tensorflow过程
online deployable ,install k8s 代码 Kubeflow有三个核心组件 TFJob Operator 和 Controller: 作为Kubernetes的扩展,来简化分布 ...
- element-ui checkbox传默认值的问题
新入职一家公司了,准备把项目中遇到的问题随时记录下来.以前遇到的问题解决了没有记录,导致面试的时候问项目中遇到那些问题时,好多都忘了. 今天记录一下element-ui 的 checkbox 传递默认 ...
- VC++ 异常处理 __try __except的用法
转载:https://blog.csdn.net/jiaxiaokai/article/details/50983867 __try __except的用法: __try __except是windo ...