问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Sigmoid 函数及其导数推导

创作时间:
作者:
@小白创作中心

Sigmoid 函数及其导数推导

引用
CSDN
1.
https://blog.csdn.net/qq_22841387/article/details/141614059

Sigmoid函数是神经网络中常用的激活函数,其独特的S形曲线和将输入压缩至(0, 1)的特性使其在二分类问题中广泛应用。本文将详细介绍Sigmoid函数的定义、导数推导过程及其在神经网络中的应用意义。

Sigmoid 函数及其导数推导

1. 了解 Sigmoid 函数

Sigmoid 函数是神经网络中常用的激活函数,因其平滑的S形曲线和将输入压缩至 (0, 1) 的特性,在神经网络的激活函数中扮演着重要角色。其定义如下:

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

其中,e ee是自然常数,约等于 2.718。Sigmoid 函数的输出范围为 (0, 1),这使它特别适合作为二分类问题中输出层的激活函数。

Sigmoid 函数的图形如下所示:

2. 应用微分规则

为了推导 Sigmoid 函数的导数,我们需要对它进行微分。根据 Sigmoid 函数的定义:

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

接下来,我们将对这个函数进行微分,以计算其导数。

3. 引入中间变量u uu

为了简化求导过程,我们可以先引入一个中间变量u uu,定义如下:

u = 1 + e − x u = 1 + e^{-x}u=1+e−x

这样,Sigmoid 函数可以重新表示为:

σ ( x ) = 1 u \sigma(x) = \frac{1}{u}σ(x)=u1

4. 对 Sigmoid 函数求导

现在,我们通过链式法则求解 Sigmoid 函数的导数。链式法则告诉我们,如果一个函数是复合函数的形式,那么其导数可以通过对各个部分分别求导并相乘来得到。

4.1 对u = 1 + e − x u = 1 + e^{-x}u=1+e−x求导

首先对u uu进行求导:

d u d x = d d x ( 1 + e − x ) = 0 − e − x ⋅ ( − 1 ) = e − x \frac{du}{dx} = \frac{d}{dx}(1 + e^{-x}) = 0 - e^{-x} \cdot (-1) = e^{-x}dxdu =dxd (1+e−x)=0−e−x⋅(−1)=e−x

4.2 对σ ( x ) = 1 u \sigma(x) = \frac{1}{u}σ(x)=u1 求导

接下来对σ ( x ) \sigma(x)σ(x)进行求导:

d σ ( x ) d u = d d u ( 1 u ) = − 1 u 2 \frac{d\sigma(x)}{du} = \frac{d}{du}\left(\frac{1}{u}\right) = -\frac{1}{u^2}dudσ(x) =dud (u1 )=−u21

4.3 应用链式法则

根据链式法则,Sigmoid 函数的导数可以表示为:

d σ ( x ) d x = d σ ( x ) d u ⋅ d u d x = − 1 u 2 ⋅ e − x \frac{d\sigma(x)}{dx} = \frac{d\sigma(x)}{du} \cdot \frac{du}{dx} = -\frac{1}{u^2} \cdot e^{-x}dxdσ(x) =dudσ(x) ⋅dxdu =−u21 ⋅e−x

将u = 1 + e − x u = 1 + e^{-x}u=1+e−x代入,得到:

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

5. 简化表达式

为了进一步简化这个表达式,我们注意到 Sigmoid 函数的定义和性质:

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

以及:

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

因此,导数可以重写为:

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

6. 最终结果

最终我们得到了 Sigmoid 函数的导数公式:

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

这个公式表明,Sigmoid 函数的导数不仅依赖于输入x xx,更依赖于 Sigmoid 函数本身的输出值σ ( x ) \sigma(x)σ(x)。这个性质在反向传播算法中尤为重要,因为它允许我们在计算误差梯度时,可以直接利用前向传播的结果,从而简化计算并提高效率。

应用和意义

在神经网络中,Sigmoid 函数的导数用于反向传播算法中计算误差的梯度。这种函数的形式使得在更新权重时,不仅能够考虑当前的输入值,还可以利用 Sigmoid 函数的输出,从而在训练过程中更加高效。

此外,由于导数的形式与输出值直接相关,因此可以避免重复计算,在反向传播时极大地节省了计算资源。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号