基于Gate Mechanism的**单元GTU、GLU

 

1 Sigmoid和Tanh存在的问题

Sigmoid和双曲正切**函数有两个明显的缺点:

  • 存在饱和死区特性,梯度反向传播时,容易导致梯度爆炸(Gradient Explosion)和梯度消失(Gradient Vanish)问题。
  • 对于多层非线性变换嵌套操作的深度学习网络,关于参数W的梯度计算比较复杂,计算量大。

2 Relu

为了解决上面两个问题,深度学习研究领域陆续提出了Relu(Rectified linear unit)及其变体Leaky Relu、Elu、pRelu、PRelu、RRelu等。借鉴LSTM的Gate Mechanism思想,基于Relu**函数和Tanh**函数,结合gate unit产生的GTU units、GLU units等**单元。

3 基于Gate mechanism的GLU、GTU 单元

GTU(Gated Tanh Unit)的表达式为:基于Gate Mechanism的**单元GTU、GLU

GLU(Gated Liner Unit)的表达式为:基于Gate Mechanism的**单元GTU、GLU

分析GTU和GLU的组成结构可以发现:

Tanh**单元:tanh(X*W+b),加上一个Sigmoid**单元:O(X*V+c)构成的gate unit,就构成了GTU单元。

Relu**单元:(X * W + b),加上一个Sigmoid**单元:O(X * V + c)构成的gate unit,就构成了GLU单元。

4 Gate mechanism影响及各**单元对比

下图实验结果来源于论文《Language Modeling with Gated Convolutional Networks》 5.2节。

基于Gate Mechanism的**单元GTU、GLU

图1 Tanh、Relu、GTU和GLU**单元性能对比

 

(1)gate mechanism 影响

把GTU中的Sigmoid gate去掉的话,就是一个Tanh**函数。因此,可以通过比较Tanh和GTU的实验效果,来对比Gate mechanism对模型性能的影响。通过图1中的左图可以发现,使用GTU的效果远远优于Tanh**函数,可见,gate units有助于深度网络建模。

(2)Tanh、GLU与Relu、GLU对比

Tanh**函数和GTU都存在梯度消失的问题,因为即使是GTU,当units的**处于饱和区时,输入单元**单元:tanh(X*W+b)和gate单元:O(X * V + c)都会削弱梯度值。相反,GLU和Relu不存在这样的问题。GLU和Relu都拥有线性的通道,可以使梯度很容易通过**的units,反向传播且不会减小。因此,采用GLU或Relu做为**,训练时收敛速度更快。

(3)Relu与GLU对比

Relu单元并没有完全抛弃GLU中的gate units,GLU可以看做是处于**状态下的一种简化的Relu单元。对比Relu和GLU,通过图1右图可以大显,在相同的训练时间下,GLU单元可以获得比Relu更高的精度。

(4)GLU与GTU对比:

GTU存在tanh**的非线性单元,GLU存在的线性单元,GLU中不存在类似于GTU中的梯度消失问题。通过对比可以发现,GLU获得比GTU更快的收敛速度,以及更高的准确率。