神经网络中的激活函数



t a n h ( z ) = e z − e − z e z + e − z tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}} tanh(z)=ez+ezezez效果严格地比 s i g m o i d sigmoid sigmoid函数好,因为该函数的对称中心在 ( 0 , 0 ) (0,0) (0,0),具有将数据归一化为0均值的效果。当然,二分类的输出层的激活函数还是一般用 s i g m o i d ( z ) sigmoid(z) sigmoid(z),因为 s i g m o d sigmod sigmod函数能将输出值映射到 0 ∼ 1 0\sim1 01之间(概率值)
R e l u ( z ) = m a x ( 0 , z ) Relu(z)=max(0,z) Relu(z)=max(0,z)出现后,神经网络默认都用 R e l u Relu Relu函数(rectified linear)来作为激活函数。此时一般默认 z > 0 z>0 z>0
l e a k y ( z ) = m a x ( 0.01 z , z ) leaky(z)=max(0.01z,z) leaky(z)=max(0.01z,z)可以避免 z < 0 z<0 z<0时斜率为零的情况 输出层有时也用线性激活函数(房价预测)

0. Linear Activate Function

https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6
也叫identity activate Function, 即对原始输出不做任何变换

1. Sigmoid activation function

图1.1 激活函数-sigmoid
\begin{align*} a&=g(z) \\ &=\frac{1}{1+e^{-z}}\\ \tag{1-1} \end{align*} \begin{align*} g'(z)&=\frac{d}{dz}g(z)\\ &=\frac{e^{-z}}{1+e^{-z}}\\ &=\frac{1}{1+e^{-z}}\left(1-\frac{1}{1+e^{-z}}\right)\\ &=g(z)\left(1-g(z)\right)\\ &=a(1-a)\\ \tag{1-2} \end{align*} ## 2. Tanh activation function
图2.1 激活函数-tanh

a = g ( z ) = e z − e − z e z + e − z (2-1) \begin{aligned} a&=g(z) \\ &=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}\\ \tag{2-1} \end{aligned} a=g(z)=ez+ezezez(2-1)

g ′ ( z ) = d d z g ( z ) = e − z 1 + e − z = ( e z + e − z ) 2 − ( e z − e − z ) 2 ( e z + e − z ) 2 = 1 − ( g ( z ) ) 2 = 1 − a 2 (2-2) \begin{aligned} g'(z)&=\frac{d}{dz}g(z)\\ &=\frac{e^{-z}}{1+e^{-z}}\\ &=\frac{\left(e^{z}+e^{-z}\right)^2-\left(e^z-e^{-z}\right)^2}{\left(e^z+e^{-z}\right)^2}\\ &=1-\left(g(z)\right)^2\\ &=1-a^2\\ \tag{2-2} \end{aligned} g(z)=dzdg(z)=1+ezez=(ez+ez)2(ez+ez)2(ezez)2=1(g(z))2=1a2(2-2)

3. ReLU and Leaky ReLU

图3.1 激活函数-ReLU

ReLU:
a = g ( z ) = m a x ( 0 , z ) (3-1) \begin{aligned} a&=g(z) \\ &=max(0,z)\\ \tag{3-1} \end{aligned} a=g(z)=max(0,z)(3-1)
g ′ ( z ) = d d z g ( z ) = { 0 i f   z < 0 1 i f   z ≥ 0 (3-2) \begin{aligned} g'(z)&=\frac{d}{dz}g(z)\\ &=\left\{ \begin{aligned} 0\quad if\ z<0\\ 1\quad if\ z\geq0 \end{aligned} \right. \tag{3-2} \end{aligned} g(z)=dzdg(z)={0if z<01if z0(3-2)
Leaky ReLU:

图3.2 激活函数-Leaky ReLU

a = g ( z ) = m a x ( 0.01 z , z ) (3-3) \begin{aligned} a&=g(z) \\ &=max(0.01z,z)\\ \tag{3-3} \end{aligned} a=g(z)=max(0.01z,z)(3-3)
g ′ ( z ) = d d z g ( z ) = { 0.01 i f   z < 0 1 i f   z ≥ 0 (3-4) \begin{aligned} g'(z)&=\frac{d}{dz}g(z)\\ &=\left\{ \begin{aligned} 0.01\quad if\ z<0\\ 1\quad if\ z\geq0 \end{aligned} \right. \tag{3-4} \end{aligned} g(z)=dzdg(z)={0.01if z<01if z0(3-4)

4.选择激活函数的准则

  • 如果处理的问题是二分类问题,输出为0和1,那么输出层选择sigmoid函数,其他神经元选择ReLU(有时也可用tanh),理论上Leaky ReLU比ReLU好,但是实践中差不多。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值