当前位置:   article > 正文

sigmoid函数求导

sigmoid函数求导

Sigmoid函数求导—超详细过程

基础知识

f ( x ) = 1 x f(x)=\frac{1}{x} f(x)=x1,则 f ′ ( x ) = − 1 x 2 f'(x)=- \frac{1}{x^2} f(x)=x21
g ( x ) = e x g(x)=e^x g(x)=ex,则 g ′ ( x ) = e x g'(x)=e^x g(x)=ex

Sigmoid函数: f ( x ) = 1 1 + e − x f(x)= \frac{1}{1+e^{-x}} f(x)=1+ex1
Sigmoid函数的导数: f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x))

推导过程

方法1

首先,对 f ( x ) f(x) f(x)进行变形:
f ( x ) = 1 1 + e − x = 1 1 + 1 e x = ( 1 + 1 e x ) − 1 = ( e x e x + 1 e x ) − 1 = ( e x + 1 e x ) − 1 = e x e x + 1 = ( e x + 1 ) − 1 e x + 1 = e x + 1 e x + 1 − 1 e x + 1 = 1 − 1 e x + 1 = 1 − ( e x + 1 ) − 1

f(x)=11+ex=11+1ex=(1+1ex)1=(exex+1ex)1=(ex+1ex)1=exex+1=(ex+1)1ex+1=ex+1ex+11ex+1=11ex+1=1(ex+1)1
f(x)=1+ex1=1+ex11=(1+ex1)1=(exex+ex1)1=(exex+1)1=ex+1ex=ex+1(ex+1)1=ex+1ex+1ex+11=1ex+11=1(ex+1)1
求导

注意使用链式法则求导

f ′ ( x ) = ( 1 − ( e x + 1 ) − 1 ) ′ = ( − 1 ) ( − 1 ) ( e x + 1 ) − 2 e x = ( e x + 1 ) − 2 e x = ( e x + 1 ) − 1 ( e x + 1 ) − 1 e x

f(x)=(1(ex+1)1)=(1)(1)(ex+1)2ex=(ex+1)2ex=(ex+1)1(ex+1)1ex
f(x)=(1(ex+1)1)=(1)(1)(ex+1)2ex=(ex+1)2ex=(ex+1)1(ex+1)1ex
由前面提到的 f ( x ) f(x) f(x)的变形可知:
f ( x ) = 1 1 + e − x = ( 1 + e − x ) − 1 = e x e x + 1 = e x ( e x + 1 ) − 1
f(x)=11+ex=(1+ex)1=exex+1=ex(ex+1)1
f(x)=1+ex1=(1+ex)1=ex+1ex=ex(ex+1)1

所以:
f ′ ( x ) = ( e x + 1 ) − 1 ⋅ ( e x + 1 ) − 1 e x = ( e x + 1 ) − 1 ⋅ e x ( e x + 1 ) − 1 = ( e x + 1 ) − 1 ⋅ ( 1 + e − x ) − 1 = 1 e x + 1 ⋅ 1 1 + e − x = ( e x + 1 ) − e x e x + 1 ⋅ 1 1 + e − x = ( e x + 1 e x + 1 − e x e x + 1 ) ⋅ 1 1 + e − x = ( 1 − e x e x + 1 ) ⋅ 1 1 + e − x = ( 1 − 1 1 + e − x ) ⋅ 1 1 + e − x = ( 1 − f ( x ) ) ⋅ f ( x ) = f ( x ) ( 1 − f ( x ) )
f(x)=(ex+1)1(ex+1)1ex=(ex+1)1ex(ex+1)1=(ex+1)1(1+ex)1=1ex+111+ex=(ex+1)exex+111+ex=(ex+1ex+1exex+1)11+ex=(1exex+1)11+ex=(111+ex)11+ex=(1f(x))f(x)=f(x)(1f(x))
f(x)=(ex+1)1(ex+1)1ex=(ex+1)1ex(ex+1)1=(ex+1)1(1+ex)1=ex+111+ex1=ex+1(ex+1)ex1+ex1=(ex+1ex+1ex+1ex)1+ex1=(1ex+1ex)1+ex1=(11+ex1)1+ex1=(1f(x))f(x)=f(x)(1f(x))


方法2

Sigmoid 函数的数学表达式为:

σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1

我们要对其进行导数,通常会用到链式法则,也就是内导数乘以外导数。计算过程如下:

首先,令内部函数为:
u = 1 + e − x u = 1 + e^{-x} u=1+ex

则 Sigmoid 函数可以表示为外部函数:
σ ( x ) = u − 1 \sigma(x) = u^{-1} σ(x)=u1

接着我们计算这两个函数的导数:

  1. 内导数(对于 u = 1 + e − x u = 1 + e^{-x} u=1+ex 关于 x x x 的导数):
    d u d x = − e − x \frac{du}{dx} = -e^{-x} dxdu=ex

g ( x ) = e − x g(x)=e^{-x} g(x)=ex,则有链式法则可得 g ′ ( x ) = − e − x g'(x)=-e^{-x} g(x)=ex

  1. 外导数(对于 σ ( x ) = u − 1 \sigma(x) = u^{-1} σ(x)=u1 关于 u u u 的导数):
    d σ d u = − u − 2 = − 1 u 2 \frac{d\sigma}{du} = -u^{-2} = -\frac{1}{u^2} dudσ=u2=u21

现在,根据链式法则,找到 Sigmoid 函数关于 x x x 的导数:
d σ d x = d σ d u ⋅ d u d x \frac{d\sigma}{dx} = \frac{d\sigma}{du} \cdot \frac{du}{dx} dxdσ=dudσdxdu
d σ d x = − 1 u 2 ⋅ ( − e − x ) \frac{d\sigma}{dx} = -\frac{1}{u^2} \cdot (-e^{-x}) dxdσ=u21(ex)
d σ d x = e − x ( 1 + e − x ) 2 \frac{d\sigma}{dx} = \frac{e^{-x}}{(1 + e^{-x})^2} dxdσ=(1+ex)2ex

使用 Sigmoid 函数的原始定义和上面的导数结果,我们可以将导数简化为 Sigmoid 函数的形式:
d σ d x = 1 1 + e − x ( 1 − 1 1 + e − x ) \frac{d\sigma}{dx} = \frac{1}{1 + e^{-x}} \left(1 - \frac{1}{1 + e^{-x}}\right) dxdσ=1+ex1(11+ex1)
d σ d x = σ ( x ) ( 1 − σ ( x ) ) \frac{d\sigma}{dx} = \sigma(x)(1 - \sigma(x)) dxdσ=σ(x)(1σ(x))

所以最终得到的 Sigmoid 函数关于 x x x 的导数是:

d σ d x = σ ( x ) ( 1 − σ ( x ) ) \frac{d\sigma}{dx} = \sigma(x)(1 - \sigma(x)) dxdσ=σ(x)(1σ(x))

这就是 Sigmoid 函数的导数,可以直接用于梯度计算和其他数学运算中。

参考

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/333517
推荐阅读
相关标签
  

闽ICP备14008679号