Sigmoid 函数 是一种常用的激活函数,特别是在二分类任务中。其数学表达式为:
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1
要计算 Sigmoid 函数的导数,首先需要对其进行微分。Sigmoid 函数的导数可以用来计算反向传播中的梯度。
Sigmoid 函数的导数
步骤:
-
Sigmoid 函数的定义:
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1
-
导数计算:
设 ( y = σ ( x ) y = \sigma(x) y=σ(x) )。首先计算 ( σ ( x ) \sigma(x) σ(x) ) 的导数。利用链式法则,我们有:
d y d x = d d x ( 1 1 + e − x ) \frac{dy}{dx} = \frac{d}{dx} \left(\frac{1}{1 + e^{-x}}\right) dxdy=dxd(1+e−x1)
我们先对分母 (1 + e^{-x}) 进行微分:
d d x ( 1 + e − x ) = − e − x \frac{d}{dx} (1 + e^{-x}) = -e^{-x} dxd(1+e−x)=−e−x
然后应用分数的导数公式:
d d x ( 1 1 + e − x ) = 0 ⋅ ( 1 + e − x ) − 1 ⋅ ( − e − x ) ( 1 + e − x ) 2 \frac{d}{dx} \left(\frac{1}{1 + e^{-x}}\right) = \frac{0 \cdot (1 + e^{-x}) - 1 \cdot (-e^{-x})}{(1 + e^{-x})^2} dxd(1+e−x1)=(1+e−x)20⋅(1+e−x)−1⋅(−e−x)
简化结果为:
d d x ( 1 1 + e − x ) = e − x ( 1 + e − x ) 2 \frac{d}{dx} \left(\frac{1}{1 + e^{-x}}\right) = \frac{e^{-x}}{(1 + e^{-x})^2} dxd(1+e−x1)=(1+e−x)2e−x
-
进一步简化:
注意到 ( σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1,所以 e − x = 1 − σ ( x ) σ ( x ) e^{-x} = \frac{1 - \sigma(x)}{\sigma(x)} e−x=σ(x)1−σ(x),我们可以将其代入得到:
d σ ( x ) d x = σ ( x ) ( 1 − σ ( x ) ) \frac{d\sigma(x)}{dx} = \sigma(x) \left(1 - \sigma(x)\right) dxdσ(x)=σ(x)(1−σ(x))
这是因为:
σ ( x ) ⋅ ( 1 − σ ( x ) ) = 1 1 + e − x ⋅ ( 1 − 1 1 + e − x ) = e − x ( 1 + e − x ) 2 \sigma(x) \cdot (1 - \sigma(x)) = \frac{1}{1 + e^{-x}} \cdot \left(1 - \frac{1}{1 + e^{-x}}\right) = \frac{e^{-x}}{(1 + e^{-x})^2} σ(x)⋅(1−σ(x))=1+e−x1⋅(1−1+e−x1)=(1+e−x)2e−x
总结
Sigmoid 函数的导数可以表示为:
σ
′
(
x
)
=
σ
(
x
)
(
1
−
σ
(
x
)
)
\sigma'(x) = \sigma(x) \left(1 - \sigma(x)\right)
σ′(x)=σ(x)(1−σ(x))
这个结果不仅提供了计算梯度的简洁公式,还具有直观的意义:Sigmoid 函数的导数在输出值接近 0 或 1 时会变得非常小,从而可能导致梯度消失问题,这也是在训练深层网络时需要考虑的一个问题。