基础 · 09

Logistic 回归与最大熵

从 sigmoid 到 softmax,从最大似然到最大熵——一篇讲透 Logistic 回归的概率本质和它与最大熵模型的等价关系。

12 min read

Logistic 分布与 sigmoid

Logistic 回归的名字来自 Logistic 分布。其 CDF 恰好是 sigmoid 函数:

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

Sigmoid 把 (,+)(-\infty, +\infty) 压缩到 (0,1)(0, 1),是从"线性分数"到"概率"的天然桥梁。它有几个优美的性质:

  • 对称性:σ(z)=1σ(z)\sigma(-z) = 1 - \sigma(z)
  • 导数简洁:σ(z)=σ(z)(1σ(z))\sigma'(z) = \sigma(z)(1 - \sigma(z))
  • 对数几率(log-odds)是线性的:lnσ(z)1σ(z)=z\ln \frac{\sigma(z)}{1-\sigma(z)} = z

第三条最关键——它说明 Logistic 回归本质上是在对对数几率做线性建模。

下面的交互展示了 sigmoid 的"温度"效应。参数 TT 控制曲线陡峭程度:σ(z/T)\sigma(z/T)。当 T0T \to 0,sigmoid 退化成阶跃函数(硬分类);当 TT 很大时,输出趋向 0.5(完全不确定)。

T1.00
T = 1.00 标准 sigmoid
0.510P(Y=1)zdata
拖动 T 改变 sigmoid 的"温度"。T 越小曲线越陡(接近硬分类),T 越大越平缓(不确定性增大)。底部是 1D 数据点,虚线投影到曲线上对应的概率值。黄色虚线是决策阈值 P = 0.5。

二项 Logistic 回归

给定输入 xRd\mathbf{x} \in \mathbb{R}^d,二项 Logistic 回归定义条件概率:

P(Y=1x)=11+e(wx+b)P(Y=1 \mid \mathbf{x}) = \frac{1}{1 + e^{-(\mathbf{w} \cdot \mathbf{x} + b)}} P(Y=0x)=e(wx+b)1+e(wx+b)P(Y=0 \mid \mathbf{x}) = \frac{e^{-(\mathbf{w} \cdot \mathbf{x} + b)}}{1 + e^{-(\mathbf{w} \cdot \mathbf{x} + b)}}

决策边界P(Y=1x)=0.5P(Y=1|\mathbf{x}) = 0.5 的超平面,即 wx+b=0\mathbf{w} \cdot \mathbf{x} + b = 0。几何意义:w\mathbf{w} 是法向量,bb 控制平移。

对数几率的线性性让参数解释非常直观:

lnP(Y=1x)P(Y=0x)=wx+b\ln \frac{P(Y=1|\mathbf{x})}{P(Y=0|\mathbf{x})} = \mathbf{w} \cdot \mathbf{x} + b

特征 xjx_j 增加 1 个单位,对数几率增加 wjw_j。这就是为什么 Logistic 回归在医学、金融中如此流行——系数直接可解释

参数估计用最大似然。给定 nn 个样本 {(xi,yi)}\{(\mathbf{x}_i, y_i)\},对数似然为:

(w,b)=i=1n[yilogp^i+(1yi)log(1p^i)]\ell(\mathbf{w}, b) = \sum_{i=1}^{n} \left[ y_i \log \hat{p}_i + (1-y_i) \log(1-\hat{p}_i) \right]

其中 p^i=σ(wxi+b)\hat{p}_i = \sigma(\mathbf{w} \cdot \mathbf{x}_i + b)。最大化对数似然等价于最小化交叉熵损失。这是一个无约束凸优化问题,没有解析解但可以用迭代法高效求解。

多项 Logistic 回归 (softmax)

当类别 K>2K > 2 时,二项推广为多项 Logistic 回归(softmax 回归):

P(Y=kx)=ewkx+bkj=1Kewjx+bj,k=1,,KP(Y=k \mid \mathbf{x}) = \frac{e^{\mathbf{w}_k \cdot \mathbf{x} + b_k}}{\sum_{j=1}^{K} e^{\mathbf{w}_j \cdot \mathbf{x} + b_j}}, \quad k = 1, \ldots, K

Softmax 保证所有类的概率和为 1、每个都非负。几何上,KK 类 softmax 把特征空间切成 KK 个凸锥形区域。类 kk 和类 jj 的决策边界是超平面 (wkwj)x+(bkbj)=0(\mathbf{w}_k - \mathbf{w}_j) \cdot \mathbf{x} + (b_k - b_j) = 0

注意参数有冗余:所有 wk\mathbf{w}_k 同时加一个常向量不改变概率。实践中通常令 wK=0\mathbf{w}_K = 0 作为参考类,或者加 L2 正则消除冗余。

K=2K = 2 时,softmax 退化为 sigmoid——两者是同一个模型。

最大熵原理

换一个完全不同的出发点:最大熵原理

在满足已知约束的所有概率分布中,选择熵最大的那个。

直觉:熵最大 = 最"均匀" = 不做任何额外假设 = 最保守的估计。

形式化:设随机变量 XX 的分布为 PP,已知 mm 个约束(通常是特征函数的期望):

xP(x)fi(x)=E^[fi],i=1,,m\sum_x P(x) f_i(x) = \hat{E}[f_i], \quad i = 1, \ldots, m

加上归一化约束 xP(x)=1\sum_x P(x) = 1。在这些约束下,最大化 Shannon 熵:

H(P)=xP(x)logP(x)H(P) = -\sum_x P(x) \log P(x)

用 Lagrange 乘子法求解这个约束优化问题。构造 Lagrangian:

L=xP(x)logP(x)+λ0 ⁣(xP(x)1)+i=1mλi ⁣(xP(x)fi(x)E^[fi])L = -\sum_x P(x)\log P(x) + \lambda_0\!\left(\sum_x P(x) - 1\right) + \sum_{i=1}^m \lambda_i\!\left(\sum_x P(x)f_i(x) - \hat{E}[f_i]\right)

P(x)P(x) 求导令其为零,解出:

P(x)=1Zexp ⁣(i=1mλifi(x))P^*(x) = \frac{1}{Z} \exp\!\left(\sum_{i=1}^m \lambda_i f_i(x)\right)

其中 Z=xexp(iλifi(x))Z = \sum_x \exp(\sum_i \lambda_i f_i(x)) 是配分函数(归一化常数)。

这就是指数族分布的形式——约束决定了特征函数,最大熵原理自动给出指数族。

最大熵 = Logistic 回归

现在把最大熵用于条件分布 P(YX)P(Y|X) 的建模。设特征函数为 fi(x,y)f_i(x, y)(联合特征),约束为经验期望匹配:

EP[fi(X,Y)]=E^[fi(X,Y)]E_P[f_i(X,Y)] = \hat{E}[f_i(X,Y)]

最大化条件熵 H(YX)=x,yP~(x)P(yx)logP(yx)H(Y|X) = -\sum_{x,y} \tilde{P}(x) P(y|x) \log P(y|x),解出的最大熵模型为:

P(yx)=1Z(x)exp ⁣(i=1mλifi(x,y))P(y \mid x) = \frac{1}{Z(x)} \exp\!\left(\sum_{i=1}^m \lambda_i f_i(x, y)\right)

其中 Z(x)=yexp(iλifi(x,y))Z(x) = \sum_y \exp(\sum_i \lambda_i f_i(x, y))

关键观察:当 Y{0,1}Y \in \{0, 1\} 且特征函数取 fi(x,y)=xi1[y=1]f_i(x, y) = x_i \cdot \mathbf{1}[y=1] 时,上式恰好是:

P(Y=1x)=eλx1+eλx=σ(λx)P(Y=1|x) = \frac{e^{\boldsymbol{\lambda} \cdot \mathbf{x}}}{1 + e^{\boldsymbol{\lambda} \cdot \mathbf{x}}} = \sigma(\boldsymbol{\lambda} \cdot \mathbf{x})

这正是 Logistic 回归。多类情况下,最大熵模型给出 softmax。

等价性的意义

  • 判别模型角度出发(直接建模 P(YX)P(Y|X)),用最大似然学习——得到 Logistic 回归。
  • 信息论角度出发(在约束下选最不确定的分布),用最大熵原理——得到同一个模型。

两条路殊途同归,说明 Logistic 回归不只是一个"方便的选择",而是有深刻的理论必然性。

学习算法

Logistic 回归的目标函数是凸的(Hessian 半正定),但没有解析解。常用两类算法:

1. 梯度下降(及其变体)

梯度的形式非常简洁:

w=i=1n(yip^i)xi\frac{\partial \ell}{\partial \mathbf{w}} = \sum_{i=1}^{n} (y_i - \hat{p}_i) \mathbf{x}_i

每个样本的贡献 = "残差 × 特征"。SGD / mini-batch SGD 是大规模问题的标准做法,现代深度学习框架中的 softmax 层训练本质就是这个。

2. 拟牛顿法(L-BFGS)

利用二阶信息加速收敛。Newton 法需要计算并求逆 d×dd \times d 的 Hessian:

H=i=1np^i(1p^i)xixiH = \sum_{i=1}^{n} \hat{p}_i(1 - \hat{p}_i) \mathbf{x}_i \mathbf{x}_i^\top

IRLS(迭代加权最小二乘)。当 dd 较大时 Hessian 的存储和求逆代价太高,L-BFGS 用有限内存近似 Hessian 逆,兼顾收敛速度和内存效率。sklearn 的 LogisticRegression(solver='lbfgs') 默认就是它。

收敛性对比

方法每步复杂度收敛速度适用场景
SGDO(d)O(d)线性nn 极大(百万级)
L-BFGSO(nd)O(nd)超线性中等规模,dd 不太大
Newton/IRLSO(nd2+d3)O(nd^2 + d^3)二次小规模,dd

这个想法在前沿里