(深度学习 by Andrew Ng)激活函数(Activation functions)

0.声明:

本文中所有的 z z z,都是 z = w T x z=w^Tx z=wTx,我们需要给 z z z加一个激活函数:
在这里插入图片描述

1.sigmoid函数

g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1
在这里插入图片描述

  1. 函数取值范围 ( 0 , 1 ) (0,1) (0,1)

  2. g ′ ( z ) g'(z) g(z), g ′ ( z ) = − 1 × ( 1 + e − z ) ′ ( 1 + e − z ) 2 = e − z ( 1 + e − z ) 2 = 1 1 + e − z ( 1 − 1 1 + e − z ) = g ( z ) ( 1 − g ( z ) ) g'(z)=\frac{-1\times (1+e^{-z})'}{(1+e^{-z})^2}=\frac{e^{-z}}{(1+e^{-z})^2}=\frac{1}{1+e^{-z}}(1-\frac{1}{1+e^{-z}})=g(z)(1-g(z)) g(z)=(1+ez)21×(1+ez)=(1+ez)2ez=1+ez1(11+ez1)=g(z)(1g(z))

  3. z = 10 z=10 z=10 z = − 10 z=-10 z=10时, d d z g ( z ) ≈ 0 \frac{d}{dz}g(z)\approx 0 dzdg(z)0

  4. z = 0 z=0 z=0时, d d z g ( z ) = g ( z ) ( 1 − g ( z ) ) = 1 / 4 \frac{d}{dz}g(z)=g(z)(1-g(z))=1/4 dzdg(z)=g(z)(1g(z))=1/4

  5. 在神经网络中 a = g ( z ) a=g(z) a=g(z),所以, g ′ ( z ) = a ( 1 − a ) g'(z)=a(1-a) g(z)=a(1a)

2.tanh函数

或叫做双曲正切函数,
g ( z ) = t a n h ( z ) = e z − e − z e z + e − z g(z)=tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}} g(z)=tanh(z)=ez+ezezez
在这里插入图片描述

  1. 函数取值范围 ( − 1 , 1 ) (-1,1) (1,1)
  2. g ′ ( z ) g'(z) g(z), g ′ ( z ) = ( e z − e − z ) ′ ( e z + e − z ) − ( e z − e − z ) ( e z + e − z ) ′ ( e z + e − z ) 2 = 1 − t a n h 2 ( z ) g'(z)=\frac{(e^z-e^{-z})'(e^z+e^{-z})-(e^z-e^{-z})(e^z+e^{-z})'}{(e^z+e^{-z})^2}=1-tanh^2(z) g(z)=(ez+ez)2(ezez)(ez+ez)(ezez)(ez+ez)=1tanh2(z)
  3. z = 10 z=10 z=10 z = − 10 z=-10 z=10时, d d z g ( z ) ≈ 0 \frac{d}{dz}g(z)\approx 0 dzdg(z)0
  4. z = 0 z=0 z=0时, d d z g ( z ) = 1 − t a n h 2 ( 0 ) = 1 \frac{d}{dz}g(z)=1-tanh^2(0)=1 dzdg(z)=1tanh2(0)=1

从sigmod和tanh的函数图像可以看出,事实上,tanh函数是sigmoid的向下平移和伸缩后的结果。对它进行了变形后,穿过了点,并且值域介于+1和-1之间。

注意:

sigmoid函数和tanh函数两者共同的缺点是,在 z z z特别大或者特别小的情况下,导数的梯度或者函数的斜率会变得特别小,最后就会接近于0,导致降低梯度下降的速度。

3.ReLu函数

线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元,是一种人工神经网络中常用的激活函数。
g ( z ) = m a x ( 0 , z ) g(z)=max(0,z) g(z)=max(0,z)
在这里插入图片描述
只要是正值的情况下,导数恒等于1,当 z z z是负值的时候,导数恒等于0。从实际上来说,当使用 z z z的导数时, z = 0 z=0 z=0的导数是没有定义的。

  1. z &lt; 0 z&lt;0 z<0时, g ′ ( z ) = 0 g&#x27;(z)=0 g(z)=0
  2. z &gt; 0 z&gt;0 z>0时, g ′ ( z ) = 1 g&#x27;(z)=1 g(z)=1
  3. 注:通常在 z = 0 z= 0 z=0的时候给定其导数1,0;当然 z = 0 z=0 z=0的情况很少
4.Leaky Relu

是另一个版本的Relu, a = m a x ( 0.01 z , z ) a=max(0.01z,z) a=max(0.01z,z)
在这里插入图片描述
z z z是负值时,这个函数的值不是等于0,而是轻微的倾斜,如上图。
为什么常数是0.01?当然,可以为学习算法选择不同的参数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值