<深度学习优化策略-4> 基于Gate Mechanism的激活单元GTU、GLU


1、Sigmoid和Tanh激活函数及存在问题

    深度学习(神经网络)中最先被广泛使用的激活函数是Sigmoid函数和双曲正切激活函数,都是非线性的激活函数,两个激活函数的表达式如下:

sigmoid函数:      f(x)= 1 / (1+exp(−x))

双曲正切函数:       f(x)= tanh(x)

    激活函数的图形如图所示:

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

    1、存在饱和死区特性,梯度反向传播时,容易导致梯度爆炸(Gradient Explosion)和梯度消失(Gradient Vanish)问题。

    2、对于多层非线性变换嵌套操作的深度学习网络,关于参数W的梯度计算比较复杂,计算量大。

2、Relu系列激活函数

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

    Relu激活函数的表达式为:f(x)=max(0,x)

    Relu激活函数及它一些变体的曲线如下图所示:

    关于Relu及其变体激活函数介绍的资料比较多,这里我就不赘述了。

3、基于Gate mechanism的GLU、GTU 单元

    介绍一下基于gate mechanism实现的,两个比较新颖的激活函数GTU和GLU。

    GTU(Gated Tanh Unit)的表达式为:

    f(X) = tanh(X*W+b) * O(X*V+c)

    GLU(Gated Liner Unit)的表达式为:

    f(X) = (X * W + b) * O(X * V + c)

    分析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节。

图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更快的收敛速度,以及更高的准确率。

5、参考文献

[1] Conditional Image Generation with PixelCNN Decoders

[2] Language Modeling with Gated Convolutional Networks

更多深度学习在NLP方面应用的经典论文、实践经验和最新消息,欢迎关注微信公众号深度学习与NLPDeepLearning_NLP”或扫描二维码添加关注。


你可能感兴趣的:(深度学习,glu,激活函数,GTU)