Language Modeling with Gated Convolutional Networks(句子建模之门控CNN)--模型简介篇
最近忙着实验室的项目,一直没有时间做仿真,所以就先写一下之前看的一篇文章,总结一下吧。这次要说的是Gated CNN,这也是第一次将门限控制引入到CNN中的文章,感觉十分有新意,效果也很棒。下面我们来看一下,文章的主要贡献包括:
- 提出一种新的门控机制
- 缓解梯度传播,降低梯度弥散等现象
- 相比LSTM,模型更加简单,收敛速度更快
模型的结构图如下所示:
首先我们可以通过堆叠CNN来标识长文本,提取更高层、更抽象的特征,而且相比LSTM而言,我们需要的op更少(CNN需要O(N/k)个op,而LSTM将文本视为序列需要O(N)个op,其中N为文本长度,k为卷积核宽度),这样一来,我们需要的非线性操作也更少,有效地降低了梯度弥散的现象,使模型收敛和训练变得更加简单。此外,LSTM中模型下一时刻的输出依赖于前一个时刻的隐藏层状态,无法实现模型并行化。但是,CNN无需这种依赖,可以方便的实现并行化,从而实现计算速度的提升。最后,本文中提出的线性门控单元不仅有效地降低了梯度弥散,而且还保留了非线性的能力。接下来我们看一下模型的具体实现方法:
从上图可以看出,其主要结构跟原始的CNN并无很大差异,只不过在卷积层引入了门控机制,将卷积层的输出变成了下面的公式,即一个没有非线性函数的卷积层输出*经过sigmod非线性激活函数的卷积层输出:
其中W和V是不同的卷积核,卷积核宽度为k,输出通道数为n,b和c是偏置参数。而且这里使用的是宽卷积,但是论文中对于使用宽卷积的原因的描述我没有看太懂=-=。上面公式中的后半部分,即有激活函数的卷积就是所谓的门控机制,其控制了X*W+b中哪些信息可以传入下一层。这里将其定义为Gated Linear Units (GLU).然后就可以将该模型进行堆叠,以捕获Long_Term memory。
文中还论述了关于不同门控单元的效果,首先其提出CNN中不需要像LSTM那样复杂的门限机制,不需要忘记门,一个输入门就足够了。此外,还提出了另外一种门控单元GTU,如下所示:
作者从梯度的角度对两种门控单元进行了分析,发现GTU会衰减的比较快,因为其梯度公式中包含两个衰减项。而GLU只有一个衰减项,可以较好地减轻梯度弥散。
实验结果
实验用了WikiText-103和GBW两个数据集,结果这里仅展示几个图表:
一个细节就是,对于文本长度更大的数据集而言,论文使用了更深的网络结构以获取其Long-Term记忆。
Language Modeling with Gated Convolutional Networks(句子建模之门控CNN)--模型简介篇的更多相关文章
- Language Modeling with Gated Convolutional Networks
语言模型 所谓的语言模型,即是指在得知前面的若干个单词的时候,下一个位置上出现的某个单词的概率. 最朴素的方法是N-gram语言模型,即当前位置只和前面N个位置的单词相关.如此,问题便是,N小了,语言 ...
- 【论文笔记】Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition 2018-01-28 15:4 ...
- FlowNet: Learning Optical Flow with Convolutional Networks
作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/7122701.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...
- 卷积神经网络(CNN)在句子建模上的应用
之前的博文已经介绍了CNN的基本原理,本文将大概总结一下最近CNN在NLP中的句子建模(或者句子表示)方面的应用情况,主要阅读了以下的文献: Kim Y. Convolutional neural n ...
- RNN and Language modeling in TensorFlow
RNNs and Language modeling in TensorFlow From feed-forward to Recurrent Neural Networks (RNNs) In th ...
- 【注意力机制】Attention Augmented Convolutional Networks
注意力机制之Attention Augmented Convolutional Networks 原始链接:https://www.yuque.com/lart/papers/aaconv 核心内容 ...
- Recurrent Neural Network Language Modeling Toolkit代码学习
Recurrent Neural Network Language Modeling Toolkit 工具使用点击打开链接 本博客地址:http://blog.csdn.net/wangxingin ...
- Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition (ST-GCN)
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition 摘要 动态人体骨架模型带有进行动 ...
- Emotion Recognition Using Graph Convolutional Networks
Emotion Recognition Using Graph Convolutional Networks 2019-10-22 09:26:56 This blog is from: https: ...
随机推荐
- dota2从窗口模式切换到独占全屏模式后黑屏解决办法
在dota2安装目录中查找video.txt,修改setting.defaultres与setting.defaultresheight两个参数与显示器的分辨率相同. 修改setting.fullsc ...
- 【Java】锁机制
参考 https://blog.csdn.net/varyall/article/details/79698145 <深入理解Java虚拟机> 锁状态:无锁.偏向锁.轻量级锁.重量级锁(具 ...
- 搭建一个VUE项目
搭建环境 搭建node环境 下载 1.进入node.js官方网站下载页,点击下图中框出位置,进行下载即可,当前版本为8.9.4,下载网址为:https://nodejs.org/zh-cn/downl ...
- 微信公众号&小程序 -- 获取并解密用户数据(获取openId、unionId)
本文转自https://my.oschina.net/u/3235888/blog/832895 前言 微信小程序API文档:https://mp.weixin.qq.com/debug/wxadoc ...
- XML知识学习
第一部分[基础篇]: https://www.w3school.com.cn/xml/xml_intro.asp W3C教程地址 什么是 XML? XML 指可扩展标记语言(EXtensible Ma ...
- WebForm SignalR 实时消息推送
原文:https://www.jianshu.com/p/ae25d0d77011 官方文档:https://docs.microsoft.com/zh-cn/aspnet/signalr/ 实现效果 ...
- abp学习(二)
翻译下首页截图的标签: DDD Base Classes 介绍: 应用程序代码库的分层是一种被广泛接受的技术,可帮助降低复杂性并提高代码重用性.为了实现分层架构,ASP.NET样板遵循域驱动设计的原则 ...
- 生成1~n的排列(模板),生成可重集的排列(对应紫书P184, P185)
生成1~n的排列: #include<iostream> using namespace std; void print_permutation(int n, int *A, int cu ...
- Spring4- 04-Spring简易整合Mybatis -导入jar包/ 正常编写pojo/ 编写spring 配置文件
笔记要点&出错分析与总结 POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,工程组织 (AirportService为机场 ...
- CH6303 天天爱跑步
6303 天天爱跑步 0x60「图论」例题 描述 小C同学认为跑步非常有趣,于是决定制作一款叫作<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成 ...