1、CNN+GLU
论文:Language Modeling with Gated Convolutional Networks
对于同一层输入,进行卷积操作A和B,其中A得到没有非线性函数的卷积层输出,B是经过sigmod非线性激活函数的卷积层输出。AXB就是这一层的输出。其实就是门控机制替换了原先的激活函数。为了提升对文本的建模能力;为了加速收敛。
其中W和V是不同的卷积核。公式的后半部分,即有激活函数的卷积就是所谓的门控机制(Gated Linear Units,GLU),其控制了X*W+b中哪些信息可以传入下一层。
2、用GLU的目的是什么?
1、门单元有利于对文本进行深度网络建模。
把GTU中的Sigmoid gate去掉的话,就是一个Tanh激活函数。因此,可以通过比较Tanh和GTU的实验效果,来对比Gate mechanism对模型性能的影响。
通过图1中的左图可以发现,使用GTU的效果远远优于Tanh激活函数(困惑度下降更快),可见,gate units有利于对文本进行深度网络建模。
2、GLU能减轻梯度弥散,加速收敛。
Tanh激活函数和GTU都存在梯度消失的问题,因为即使是GTU,当units的激活处于饱和区时,输入单元激活单元:tanh(XW+b)和gate单元:O(X V + c)都会削弱梯度值。相反,GLU和Relu不存在这样的问题。GLU和Relu都拥有线性通道,可以使梯度很容易通过激活的units,反向传播且不会减小。因此,采用GLU或Relu做为激活,训练时收敛速度更快。
非线性操作少,梯度公式中衰减项越少,越能减少梯度弥散,使模型收敛和训练变得更加简单。
3、为什么CNN训练比LSTM简单?
CNN有n/k个OP,而LSTM有n个OP。CNN非线性操作少,能减少梯度弥散,使模型收敛和训练变得更加简单。