动手学习深度学习——读书笔记(2)

动手学习深度学习——读书笔记(2)

深度学习模型的训练,一直是该领域的研究热点。梯度消失是深度模型训练中常见的问题,梯度消失会导致靠近输入的层的参数无法得到有效更新,从而阻碍模型的正常学习。不同的激活函数被设计出来解决该问题,本文对常见的激活函数的优缺点进行总结,一方面加深对激活函数作用的理解,另一方面也方便在实际使用时进行查询。

1.sigmoid

sigmoid函数,早期使用最广泛的激活函数,其数学表达式如下所示:
s i g m o i d ( x ) = 1 1 + exp ⁡ ( − x ) sigmoid(x) = \frac{1}{1+\exp{(-x)}} sigmoid(x)=1+exp(x)1
特点:能把输入的连续值变换为0和1之间的输出,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1。
缺点:在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,可参看它的函数图像加深理解;其次,其输出不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。

2.tanh

tanh为双曲正切函数,其数学表达式如下:
t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex
特点:能把输入的连续实值变换为-1和1之间的输出。
缺点:虽然解决了输出zero-centered的问题,但梯度消失问题仍然存在。

3.ReLU

ReLU是目前使用较为广泛的激活函数,其数学表达式如下:
r e l u ( x ) = m a x ( 0 , x ) relu(x)=max(0,x) relu(x)=max(0,x)
优点:解决了gradient vanishing问题 (在正区间),相较于前两种激活函数计算速度更快,收敛速度也更快。
缺点:其输出也没有zero-centered;存在Dead ReLU问题:某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。通常可以采用Xavier初始化方法,不宜将learning rate设置太大,或动态调整learning rate。

4.Leacky ReLu

ReLU的改进版本,其数学表达式如下:
l r e l u ( x ) = m a x ( α x , x ) lrelu(x)=max(\alpha x, x) lrelu(x)=max(αx,x)
和ReLU最大的区别在于用 α x \alpha x αx替代了0。
优点:ReLU有的有点它都有,并且解决了Dead ReLU 问题。
缺点:实际使用中,有研究表明其效果不一定能够由于ReLU。

5.ELU

其全称为指数线性单元,其表达式为:
f ( x ) = { x i f x > 0 α ( e x − 1 ) o t h e r w i s e f(x)= \begin{cases} x \quad & if \quad x>0 \\ \alpha (e^x-1) &otherwise \end{cases} f(x)={xα(ex1)ifx>0otherwise
优点:ReLU有的有点它都有,并且解决了Dead ReLU和zero-centered等问题。
缺点:由于涉及指数运算,计算量过大,且和Leacky ReLU一样,在实际使用中效果并不一定优于ReLU。

目前,激活函数的选择没有绝对的标准,不同激活函数在不同的问题中有着不同的表现,针对不同的问题,需要具体分析,具体尝试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值