Concepts
seed

Sigmoid 函数

把任意实数平滑地压缩到 0 和 1 之间的 S 形函数,常用于二分类模型的输出层。

deep-learningmachine-learningclassificationactivation-function

当前理解

Sigmoid 是一个把任意实数压缩到 00 和 11 之间的函数:

σ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}}

在二分类模型中,它的概率含义来自一个更具体的约定。模型把线性分数 zz 看作类别 11 的对数几率:

z=log⁡p1−pz = \log\frac{p}{1-p}

把这条式子中的 pp 解出来,结果正是 p=σ(z)p=\sigma(z)。因此,Sigmoid 在逻辑回归中承担的是“从对数几率还原概率”的工作。z=0z=0 对应 p=0.5p=0.5;zz 为正时类别 11 更占优势;zz 为负时类别 00 更占优势。

从对数几率到概率
z 0.0 →0.500
0.0
z 表示类别 1 的对数几率;Sigmoid 在 z = 0 时输出概率 0.5,并保留分数原有的大小顺序。

也可以把它理解成一个“平滑的概率开关”:输入 zz 越大,输出越接近 11;输入越小,输出越接近 00;当 z=0z=0 时,输出恰好是 0.50.5。

输入 zz输出 σ(z)\sigma(z)
−4-40.0180.018
−1-10.2690.269
000.5000.500
110.7310.731
440.9820.982

它保留了中间的不确定程度。因为这条曲线连续且可导,训练算法可以计算输出如何随输入变化,再把误差信号传给前面的参数。

这里的 pp 是当前参数产生的预测。训练前若所有参数都为 00,模型会暂时对每条样本输出 0.50.5;参数经过数据调整后,预测也会随之改变。Sigmoid 给出了概率模型的形式,概率是否可靠仍取决于数据、训练和校准。

为什么我关心

Sigmoid 是从线性模型走向神经网络时最容易遇到的激活函数之一。

线性模型先计算一个不受范围限制的分数:

z=wTx+bz = \boldsymbol{w}^{\mathsf T}\boldsymbol{x} + b

Sigmoid 再把它转换成 00 到 11 之间的值:

p=σ(z)p = \sigma(z)

在二分类任务中,pp 通常被解释为样本属于类别 11 的概率。这样,一个任意大小的线性分数就能进入概率损失函数,并最终用于分类决策。

观察角度

  • 作为压缩函数:把整个实数轴映射到 (0,1)(0,1)。
  • 作为激活函数:为神经元加入非线性变换。
  • 作为概率接口:让模型输出能用“更偏向类别 0 还是类别 1”来解释。
  • 作为可导函数:让梯度可以从输出继续传回权重和偏置。

连接

Sigmoid 经常与二元交叉熵一起出现。前者负责产生 00 到 11 之间的输出,后者负责衡量这个输出与真实二元标签有多不一致。把它们接在线性组合之后,就得到逻辑回归。

把线性组合、Sigmoid 和二元交叉熵接在一起,就得到经典的逻辑回归训练过程:

x → z = wᵀx + b → p = sigmoid(z) → binary cross-entropy

Sigmoid 不是所有神经元的默认选择。隐藏层更常使用 ReLU、GELU 等函数;多类别分类的输出层通常使用 Softmax。选择哪种激活函数,要看这个位置需要表达什么以及它与哪个损失函数配合。

张力与取舍

Sigmoid 的输出容易解释,但当 zz 的绝对值很大时,曲线会变得很平,梯度接近 00。如果很多隐藏层都使用 Sigmoid,梯度可能在反向传播时逐层变小,这也是现代深层网络较少把它作为隐藏层默认激活函数的原因之一。

另一个需要区分的点是:落在 00 和 11 之间,不等于自动获得了可信的概率。概率是否可靠还与训练数据、损失函数、模型拟合情况和校准有关。

未解问题

  • 为什么 Sigmoid 的导数可以写成 σ(z)(1−σ(z))\sigma(z)(1-\sigma(z))?
  • Sigmoid 与 Softmax 在二分类和多分类中是什么关系?
  • 什么是梯度消失,它为什么容易出现在饱和区域?
  • 模型输出的概率应该怎样校准?

演化

  • 2026-08-21: 初始 seed,在学习单个神经元与逻辑回归时建立。