码迷,mamicode.com
首页 > Web开发 > 详细

Language Modeling with Gated Convolutional Networks(句子建模之门控CNN)--模型简介篇

时间:2019-07-21 18:11:44      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:iss   序列   记忆   fill   需要   两种   lstm   参数   csdn   

最近忙着实验室的项目,一直没有时间做仿真,所以就先写一下之前看的一篇文章,总结一下吧。这次要说的是Gated CNN,这也是第一次将门限控制引入到CNN中的文章,感觉十分有新意,效果也很棒。下面我们来看一下,文章的主要贡献包括:
  1. 提出一种新的门控机制
  2. 缓解梯度传播,降低梯度弥散等现象
  3. 相比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)--模型简介篇

标签:iss   序列   记忆   fill   需要   两种   lstm   参数   csdn   

原文地址:https://www.cnblogs.com/mfryf/p/11221917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!