Sigmoid函数求导(保姆级推导过程)

这篇博客详细介绍了Sigmoid函数的导数求解过程,包括两种不同的推导方法。通过链式法则,分别从函数变形和直接计算内、外导数两个角度解释了如何得到Sigmoid函数f(x) = (1+e^(-x))/1的导数f'(x) = f(x)(1-f(x)),这对于理解该函数在机器学习中的应用至关重要。
摘要由CSDN通过智能技术生成

Sigmoid函数求导—超详细过程

先上结论

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))


基础知识

在推导之前,我们先回顾一些相关的求导基础知识:

  • 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

点击查看——常见求导法则


推导过程

方法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 \begin{aligned} f(x)&= \frac{1}{1+e^{-x}} \\ &= \frac{1}{1+\frac{1}{e^x}} \\ &=(1+\frac{1}{e^x})^{-1} \\ &=(\frac{e^x}{e^x}+\frac{1}{e^x})^{-1} \\ &=(\frac{e^{x}+1}{e^x})^{-1} \\ &=\frac{e^x}{e^{x}+1} \\ &=\frac{(e^{x}+1)-1}{e^{x}+1} \\ &=\frac{e^{x}+1}{e^{x}+1}-\frac{1}{e^{x}+1} \\ &=1-\frac{1}{e^{x}+1} \\ &=1-(e^{x}+1)^{-1} \end{aligned} 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
求导:

注意法则使用

  • ( u ( x ) ± v ( x ) ) ′ = u ′ ( x ) ± v ′ ( x ) (u(x) \pm v(x))'=u'(x) \pm v'(x) (u(x)±v(x))=u(x)±v(x)
  • 以及链式法则求导: ( f ( g ( x ) ) ) ′ = f ′ ( g ( x ) ) g ′ ( x ) (f(g(x)))'=f'(g(x))g'(x) (f(g(x)))=f(g(x))g(x)

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 \begin{aligned} 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} \end{aligned} 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 \begin{aligned} f(x)&=\frac{1}{1+e^{-x}} =(1+e^{-x})^{-1}=\frac{e^{x}}{e^{x}+1}=e^{x}(e^{x}+1)^{-1} \end{aligned} 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 ) ) \begin{aligned} f'(x)&=(e^{x}+1)^{-1} \cdot (e^{x}+1)^{-1} e^{x} \\ &= (e^{x}+1)^{-1} \cdot e^{x}(e^{x}+1)^{-1} \\ &=(e^{x}+1)^{-1} \cdot (1+e^{-x})^{-1} \\ &=\frac{1}{e^{x}+1} \cdot \frac{1}{1+e^{-x}} \\ &=\frac{(e^{x}+1)-e^{x}}{e^{x}+1} \cdot \frac{1}{1+e^{-x}} \\ &=(\frac{e^{x}+1}{e^{x}+1}-\frac{e^{x}}{e^{x}+1}) \cdot \frac{1}{1+e^{-x}} \\ &=(1-\frac{e^{x}}{e^{x}+1}) \cdot \frac{1}{1+e^{-x}} \\ &=(1-\frac{1}{1+e^{-x}}) \cdot \frac{1}{1+e^{-x}} \\ &=(1-f(x)) \cdot f(x) \\ &=f(x)(1-f(x)) \end{aligned} 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

假设 v = − x v=-x v=x,则对 1 + e − x 1+e^{-x} 1+ex求导为: d d x ( 1 ) + d d x ( e − x ) = 0 + d d x ( e v ) \frac{d}{dx}(1)+\frac{d}{dx}(e^{-x})=0+\frac{d}{dx}(e^{v}) dxd(1)+dxd(ex)=0+dxd(ev)
结合链式法则
d d x ( e v ) = [ d d x ( e v ) ] d d v v = e v d d v v = e − x d d v ( − x ) = e − x × − 1 = − e − x \frac{d}{dx}(e^{v})=[\frac{d}{dx}(e^{v})] \frac{d}{dv}v=e^{v} \frac{d}{dv}v=e^{-x} \frac{d}{dv}(-x)=e^{-x} \times -1=-e^{-x} dxd(ev)=[dxd(ev)]dvdv=evdvdv=exdvd(x)=ex×1=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 函数的导数,可以直接用于梯度计算和其他数学运算中。

大家如果感觉有帮助可以点赞👍+收藏⭐️,也可以在评论区一起分享讨论!

参考

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值