门控卷积(gated CNN)

原创
10/18 20:43
阅读数 82

        Gated CNN可以翻译成“门控卷积”,也可以翻译成“门限卷积”。

        首先我们可以通过堆叠CNN来标识长文本,提取更高层、更抽象的特征,而且相比LSTM而言,我们需要的op更少(CNN需要O(N/k)个op,而LSTM将文本视为序列需要O(N)个op,其中N为文本长度,k为卷积核宽度),这样一来,我们需要的非线性操作也更少,有效地降低了梯度弥散的现象,使模型收敛和训练变得更加简单。此外,LSTM中模型下一时刻的输出依赖于前一个时刻的隐藏层状态,无法实现模型并行化。但是,CNN无需这种依赖,可以方便的实现并行化,从而实现计算速度的提升。最后,本文中提出的线性门控单元不仅有效地降低了梯度弥散,而且还保留了非线性的能力。接下来我们看一下模型的具体实现方法:


        从上图可以看出,其主要结构跟原始的CNN并无很大差异,只不过在卷积层引入了门控机制,将卷积层的输出变成了下面的公式,即一个”没有非线性函数的卷积层输出”乘上“经过sigmod非线性激活函数的卷积层输出”:

其中W和V是不同的卷积核 。也就是说,门控CNN与传统CNN的唯一区别是门控CNN的激活函数不是sigmoid或者relu或者tanh,而是上面的那个公式。 这里的“乘上”是矩阵的元素对应相乘。

        换句话说,这里的卷积操作与普通卷积不同,门控卷积在这里分为两部分,一部分是卷积值,即上图的B,该处与普通卷积的不同在于没有用Tanh,而是直接线性。另一部分是门控值,即A,A也是直接线性得到,但经过sigmoid, 其控制了H*W+b中哪些信息可以传入下一层 。

        门控CNN的作用就是可以通过堆叠以捕获Long_Term memory,虽然不用门控也可以通过堆叠实现捕获Long_Term memory,但门控的效果更好。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部