激活函数

1. 激活函数的作用

激活函数的作用是为了增加神经网络模型的非线性。否则你想想,没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。所以你没有非线性结构的话,根本就算不上什么神经网络。

2. 梯度消失

在神经网络中,将经过反向传播之后,梯度值衰减到接近0的现象称作梯度消失现象。

3. s i g m o i d 函 数 sigmoid函数 sigmoid

f ( x ) = 1 1 + e − x = ( 1 + e − x ) − 1 f ′ ( x ) = − 1 ∗ ( 1 + e − x ) − 2 ∗ ( 1 + e − x ) ′ = − 1 ∗ ( 1 + e − x ) − 2 ∗ e − x ∗ ( − x ) ′ = − 1 ∗ ( 1 + e − x ) − 2 ∗ e − x ∗ ( − 1 ) = e − x ( 1 + e − x ) 2 = 1 + e − x − 1 ( 1 + e − x ) 2 = 1 1 + e − x − 1 ( 1 + e − x ) 2 = 1 1 + e − x ∗ ( 1 − 1 1 + e − x ) = f ( x ) ∗ ( 1 − f ( x ) ) f(x) = \frac{1}{1+e^{-x}} = (1+e^{-x})^{-1}\\\\ f'(x) = -1 * (1+e^{-x})^{-2} * (1+e^{-x})'\\\\ = -1 * (1+e^{-x})^{-2} * e^{-x} * (-x)'\\\\ = -1 * (1+e^{-x})^{-2} * e^{-x} * (-1)\\\\ = \frac{e^{-x}}{(1+e^{-x})^{2} }\\\\ = \frac{1+e^{-x}-1}{(1+e^{-x})^{2}}\\\\ = \frac{1}{1+e^{-x}} - \frac{1}{(1+e^{-x})^{2}}\\\\ = \frac{1}{1+e^{-x}} * (1 - \frac{1}{1+e^{-x}})\\\\ =f(x) * (1-f(x)) f(x)=1+ex1=(1+ex)1f(x)=1(1+ex)2(1+ex)=1(1+ex)2ex(x)=1(1+ex)2ex(1)=(1+ex)2ex=(1+ex)21+ex1=1+ex1(1+ex)21=1+ex1(11+ex1)=f(x)(1f(x))

sigmoid函数只有在x接近于0的地方,导数才比较大,但最大值也只有1/4;
在x的数值非常大或者非常小的地方,导数都接近与0.

反向传播 ∂ L ∂ x = ∂ L ∂ y ∗ ∂ y ∂ x \frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} * \frac{\partial y}{\partial x} xL=yLxy,这将导致 ∂ L ∂ x \frac{\partial L} {\partial x} xL会显著的小于 ∂ L ∂ y \frac{\partial L} {\partial y} yL

  • 如果x是非常大或者非常小的地方,则x的梯度将接近于0
  • 即使x的数值接近于0,其梯度最大不超过y的梯度的1/4,如果由多层网络使用sigmoid激活函数,则导致靠前的那些层,梯度变得非常小。

2. 双曲正切函数: t a n h ( x ) tanh(x) tanh(x)

f ( x ) = t a n h ( x ) = e x − e − x e x + e − x \begin{aligned} f(x) & = tanh(x) \\\\ & = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}\\\\ \end{aligned} f(x)=tanh(x)=ex+exexex

a = e x , b = e − x a = e^{x}, b = e^{-x} a=ex,b=ex,根据 ( u v ) ′ = u ′ v − u v ′ v 2 (\frac{u}{v})' = \frac{u'v - uv'}{v^{2}} (vu)=v2uvuv,则有


f ′ x = ( e x − e − x e x + e − x ) ′ = ( a − b a + b ) ′ = ( a − b ) ′ ( a + b ) − ( a − b ) ( a + b ) ′ ( a + b ) 2 \begin{aligned} f'{x} & = (\frac{e^{x} - e^{-x}}{e^{x} + e^{-x}})'\\\\ & = (\frac{a - b}{a + b})'\\\\ & = \frac{(a - b)'(a + b) - (a - b)(a + b)'}{(a + b)^{2}} \end{aligned} fx=(ex+exexex)=(a+bab)=(a+b)2(ab)(a+b)(ab)(a+b)
( a − b ) ′ = ( e x − e − x ) ′ = e x − ( − 1 ) ∗ e − x = e x + e − x = a + b \begin{aligned} (a - b)' = (e^{x} - e^{-x})' = e^{x} - (-1) * e^{-x} = e^{x} + e^{-x} = a + b \end{aligned} (ab)=(exex)=ex(1)ex=ex+ex=a+b

( a + b ) ′ = ( e x + e − x ) ′ = e x + ( − 1 ) ∗ e − x = e x − e − x = a − b \begin{aligned} (a + b)' = (e^{x} + e^{-x})' = e^{x} + (-1) * e^{-x} = e^{x} - e^{-x} = a - b \end{aligned} (a+b)=(ex+ex)=ex+(1)ex=exex=ab
( a − b ) ′ ( a + b ) − ( a − b ) ( a + b ) ′ ( a + b ) 2 = ( a + b ) 2 − ( a − b ) 2 ( a + b ) 2 = 1 − ( a − b a + b ) 2 = 1 − ( e x − e − x e x + e − x ) 2 = 1 − ( t a n h ( x ) ) 2 = 1 − ( f ( x ) ) 2 \begin{aligned} & \frac{(a - b)'(a + b) - (a - b)(a + b)'}{(a + b)^{2}}\\\\ & = \frac{(a + b)^{2} - (a - b)^{2}}{(a + b)^{2}}\\\\ & = 1 - (\frac{a - b}{a + b})^{2}\\\\ & = 1 - (\frac{e^{x} - e^{-x}}{e^{x} + e^{-x}})^{2}\\\\ & = 1 - (tanh(x))^{2}\\\\ & = 1 - (f(x))^{2} \end{aligned} (a+b)2(ab)(a+b)(ab)(a+b)=(a+b)2(a+b)2(ab)2=1(a+bab)2=1(ex+exexex)2=1(tanh(x))2=1(f(x))2

  • 余弦正切函数及其导数视图
    在这里插入图片描述

3. Relu函数

f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)

f ′ ( x ) = { 0 , x < 0 1 , x ≥ 0 f'(x) = \begin{cases} 0, & x < 0 \\ 1, & x \geq 0 \end{cases} f(x)={0,1,x<0x0
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值