【漫话呆板学习系列】114.逻辑 Sigmoid 函数

[复制链接]
发表于 2025-10-22 11:17:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

逻辑 Sigmoid 函数详解

1. 弁言

逻辑回归(Logistic Regression)是呆板学习中常用的分类算法,而 Sigmoid 函数 是逻辑回归的核心数学工具。Sigmoid 函数可以或许将恣意实数映射到 (0,1) 之间,因此特殊实用于概率估计。在这篇文章中,我们将深入探究 Sigmoid 函数的数学公式、特性、导数、应用以及其在逻辑回归中的作用。

2. Sigmoid 函数的数学表达

Sigmoid 函数的数学表达式如下:

此中:

  • x 是输入变量,可以取恣意实数值。
  • e 是天然对数的底数,约即是 2.718。
  • σ(x) 的输出范围是 (0,1),得当用作概率体现。
2.1 Sigmoid 函数的根天性子


  • 当 x → +∞,
    ,因此 σ(x) → 1。
  • 当 x → −∞,
    ,因此 σ(x) → 0。
  • 当 x = 0,
    。
  • Sigmoid 函数的外形是S 形曲线(如图所示),在 x 值较小时,函数值靠近 0,较大时靠近 1。
2.2 Sigmoid 函数的图像

从图像来看,Sigmoid 函数在 x 轴上出现 对称性,在 x=0 处对称。它的变革最剧烈的地域在 x=0 附近,这表明 Sigmoid 对较小的输入值更敏感,而当 x 取值极度时,函数趋于平缓。


3. Sigmoid 函数的导数

Sigmoid 函数的导数在呆板学习和深度学习中非常紧张,特殊是在梯度降落优化过程中。Sigmoid 的导数公式如下:

推导过程如下:

对 x 求导:

利用链式法则:

由于
​,因此
​,代入得:

3.1 Sigmoid 导数的性子


  • 最大值:当 σ(x)=0.5 时,导数到达最大值 0.25。
  • 最小值:当 σ(x) 靠近 0 或 1 时,导数靠近 0。这表明在极度地域(阔别 0 的地域),Sigmoid 函数的梯度会消散(即梯度消散标题)。

4. Sigmoid 函数的应用

4.1 逻辑回归

逻辑回归是二分类标题中常用的模子,核心头脑是:

  • 先盘算线性变更:
    ​。
  • 通过 Sigmoid 函数盘算概率:
    。
  • 根据设定的阈值(如 0.5),决定分类效果:

    • 如果
      ,推测为 1 类。
    • 如果
      ,推测为 0 类。
           
4.2 神经网络

在深度学习中,Sigmoid 函数常用于:

  • 输出层激活函数(尤其是二分类标题)。
  • 早期神经网络中的潜伏层激活函数(但因梯度消散标题,现多用 ReLU 取代)。
4.3 其他应用


  • 生物学:Sigmoid 函数用于形貌生长曲线和神经元激活。
  • 经济学:用于建模市场饱和度和边际收益递减。

5. Sigmoid 函数的优缺点

5.1 优点


  • 概率表明性:输出值位于 (0,1) 之间,可直接表明为概率。
  • 平滑可微:Sigmoid 是一个连续、可微的函数,实用于梯度降落优化。
  • 单调性:Sigmoid 函数是单调递增的,得当用于分类任务。
5.2 缺点


  • 梯度消散标题:

    • 在极度值(靠近 0 或 1)时,梯度靠近 0,导致深层神经网络难以训练。
    • 当代深度学习一样平常用 ReLU 取代 Sigmoid 作为潜伏层激活函数。
           
  • 盘算代价较高:

    • 盘算
      必要指数运算,比线性变更盘算资本更高。
           
  • 非零均值标题:

    • Sigmoid 函数的输出范围是 (0,1),均值不是 0,大概导致权重更新不稳固。
           

6. 代码示例

6.1 盘算 Sigmoid 值
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. def sigmoid(x):
  4.     return 1 / (1 + np.exp(-x))
  5. x = np.linspace(-10, 10, 100)
  6. y = sigmoid(x)
  7. plt.plot(x, y, label="Sigmoid Function")
  8. plt.xlabel("x")
  9. plt.ylabel("σ(x)")
  10. plt.legend()
  11. plt.show()
复制代码

6.2 盘算 Sigmoid 的导数
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. def sigmoid(x):
  4.     return 1 / (1 + np.exp(-x))
  5. x = np.linspace(-10, 10, 100)
  6. y = sigmoid(x)
  7. def sigmoid_derivative(x):
  8.     return sigmoid(x) * (1 - sigmoid(x))
  9. y_derivative = sigmoid_derivative(x)
  10. plt.plot(x, y_derivative, label="Sigmoid Derivative", color='red')
  11. plt.xlabel("x")
  12. plt.ylabel("σ'(x)")
  13. plt.legend()
  14. plt.show()
复制代码


7. 结论


  • Sigmoid 函数是逻辑回归和神经网络的紧张构成部分,用于将数值映射到 (0,1) 之间。
  • 具有 S 形曲线的特点,使实在用于概率估计和分类标题。
  • 只管存在梯度消散标题,在深度学习中仍有广泛应用,特殊是用于二分类任务的输出层。
明白 Sigmoid 函数对于把握逻辑回归、神经网络和深度学习至关紧张。渴望这篇文章能资助你更好地明白 Sigmoid 函数的原理和应用!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表