← 返回模块
Q2.6.1.5beta 可读 · 未来付费校验通过内容版本 2026-05-26

分类损失与 Logistic 回归

2.6.1 · 监督学习基础 · 数学与统计能力

分类损失与 Logistic 回归

Hook:二元跑赢信号

上海某私募的因子研究员把上一节的 5 因子载荷在沪深300 全样本上重新拟过一遍,现在 PM 把问题反过来问:「不要预测下月超额收益率,直接给我一个『这只票下月跑赢沪深300 的概率』。」目标变量从连续的 rtRr_t \in \mathbb{R} 收缩成二值的 y{0,1}y \in \{0, 1\},这条信号要直接驱动一个多空叠加层(long/short overlay)。你立刻意识到:用上一节的普通最小二乘(ordinary least squares, OLS)拟合 0/1 标签是错的——预测值会跑出 [0,1][0, 1],而且方差项的高斯噪声假设在伯努利样本上根本不成立。本节把同一个 ERM + 线性打分(linear score)的骨架接到一个 sigmoid 连接函数上,得到 logistic 回归,把这套机制按 softmax 推广到多类,并补完判别力与校准度这一对量化做模型评估时必须分开看的指标。

一、分类设置与 0-1 损失

把第一节的统计学习框架直接搬过来,只把响应变量改为离散:二分类 Y{0,1}Y \in \{0, 1\},多类 Y{1,,K}Y \in \{1, \ldots, K\}。最自然的损失是 ​0-1 损失​​(0-1 loss):

L01(y,y^)=1{yy^}L_{01}(y, \hat{y}) = \mathbf{1}\{y \neq \hat{y}\}

第一节给出的贝叶斯最优预测器在 0-1 损失下特化为后验众数(posterior mode):

h(x)=argmaxyP(Y=yX=x)h^*(x) = \arg\max_y \mathbb{P}(Y = y \mid X = x)

这是真值的最优分类规则;实际工作中我们用 ERM 在某个假设类 H\mathcal{H} 上近似它。

二、为什么需要替代损失

L01L_{01} 写成线性打分 z=βxz = \beta^\top x 的函数,只要 y{1,+1}y \in \{-1, +1\} 表示,就是 1{yz0}\mathbf{1}\{y z \leq 0\}——一个在 yz=0y z = 0 处跳变、其余处梯度为零的阶梯函数。在丰富的 H\mathcal{H} 上对它做 ERM,既非凸又不可微,一般而言是 NP 难的。​​替代损失​​(surrogate loss)的策略是用一个凸的上界把 L01L_{01} 包住,这样梯度法可用、凸优化保证全局最优。三个标准候选并列如下:

  • ​Logistic / 交叉熵损失​​:log(1+eyz)\log(1 + e^{-y z}),光滑、概率解释清晰,本节主推。
  • ​合页损失​​(hinge):max(0,1yz)\max(0, 1 - y z),在 yz=1y z = 1 处出现拐点,SVM 的几何最大间隔由此而来——留到 2.6.2 模块详细推导。
  • ​指数损失​​(exponential):eyze^{-y z},梯度对错分样本异常敏感,是 AdaBoost 的损失函数,同样留到 2.6.2。

下面这个滑块让你拖动 yzy z,直观感受 logistic 损失为何在 yzy z \to -\infty 时线性放大、却在 yz+y z \to +\infty 时温和趋零——这正是替代损失「上界 + 凸」的几何画像:

Formula Explorer

log(1 + exp(-z))

三、Logistic 回归:ERM 即伯努利极大似然

约定 y{0,1}y \in \{0, 1\},定义条件概率为线性打分经过 sigmoid 链接:

P(Y=1x)=σ(βx)=11+eβx\mathbb{P}(Y = 1 \mid x) = \sigma(\beta^\top x) = \frac{1}{1 + e^{-\beta^\top x}}

匹配的样本损失即​​交叉熵​​(cross-entropy):

LCE(y,z)=ylogσ(z)(1y)log(1σ(z))L_{\mathrm{CE}}(y, z) = -y \log \sigma(z) - (1 - y) \log(1 - \sigma(z))

一段算理把它接到极大似然估计(maximum likelihood estimation, MLE)上:在伯努利噪声模型 YxBernoulli(σ(βx))Y \mid x \sim \mathrm{Bernoulli}(\sigma(\beta^\top x)) 下,样本对数似然为 i[yilogσ(zi)+(1yi)log(1σ(zi))]\sum_i [y_i \log \sigma(z_i) + (1 - y_i) \log(1 - \sigma(z_i))],与 iLCE(yi,zi)-\sum_i L_{\mathrm{CE}}(y_i, z_i) 相差一个负号。所以 logistic 回归 ERM ​就是​ Bernoulli MLE。再往上一层,这是 GLM 在二项族(binomial family)+ 正则连接 logit 下的特例——完整的指数族推导与 IRLS 算法在 2.2.2 广义线性模型一节里已经做完,本节只引用,不重做。注意:这一点正是 logistic 回归不能由 OLS 在 0/1 上的最小二乘拟合替代的根本原因——后者隐含的是正态分布噪声,模型设定就不对。

四、多类推广:Softmax 与交叉熵

把 sigmoid 换成 softmax,二分类直接长成 KK 分类:

P(Y=kx)=exp(βkx)j=1Kexp(βjx)\mathbb{P}(Y = k \mid x) = \frac{\exp(\beta_k^\top x)}{\sum_{j=1}^{K} \exp(\beta_j^\top x)}

匹配的损失是多项式交叉熵 k1{y=k}logP(Y=kx)-\sum_k \mathbf{1}\{y = k\} \log \mathbb{P}(Y = k \mid x)K=2K = 2 时 softmax 退化为 sigmoid,两类参数 β1,β2\beta_1, \beta_2 之差对应二分类那一个 β\beta——稍后的练习要求你算一遍。

五、L2-正则与 5 折 CV:对沪深300 信号的稳定化

上一节那个 5 因子载荷在 OLS 下飘得厉害(估值与质量两个因子相关系数 0.7+,设计矩阵 XXX^\top X 的条件数偏高),正则化思路完全照搬:

β^λ=argminβ1niLCE(yi,βxi)+λβ22\hat{\beta}_\lambda = \arg\min_\beta \frac{1}{n} \sum_i L_{\mathrm{CE}}(y_i, \beta^\top x_i) + \lambda \|\beta\|_2^2

L2 项把每一个 Newton 步的海森(Hessian)XWXX^\top W X 加上 λI\lambda I,直接复用上一节那一招——这与 sklearn 的 LogisticRegression(penalty='l2') 完全等价。换成 L1 即得稀疏 logistic,继承 lasso 的角点稀疏性。把样本协方差矩阵的不稳定方向压住后,在沪深300 全样本上跑 5 折 CV,得到下表:

λ\lambda折 1 CE折 2 CE折 3 CE折 4 CE折 5 CE平均标准误
0.0010.6720.6810.6590.6900.6680.6740.011
0.010.6580.6610.6520.6670.6550.6590.006
0.10.6410.6470.6380.6520.6440.6440.005
1.00.6550.6590.6510.6620.6540.6560.004
10.00.6890.6910.6850.6940.6870.6890.003

λ=0.1\lambda = 0.1 给出最低的折间平均交叉熵,载荷在中证500 上做样本外验证时方向一致——这就是 PM 在因子复盘会上要看的「稳定性」证据。

六、判别力 vs 校准度

模型给出的 p^(x)\hat{p}(x) 有两层独立的好坏:​​判别力​​(discrimination)问「分数排序是否把 y=1y = 1 的样本排在前面」,标准探针是 AUC;​​校准度​​(calibration)问「分数的数值是否等于真正的条件概率」,标准探针是可靠性图(reliability diagram)与 Brier 分数。两者可以分离:一个 AUC = 0.75 的模型可能把所有概率压在 0.4 附近(判别强、校准差),反之亦然。完整推导留到 2.6.5 量化金融中的机器学习,本节只点名指针。

七、练习

Exercise

给定四个二分类样本 (x, y) = ((1, 0), 0), ((0, 1), 0), ((1, 1), 1), ((2, 1), 1),起始系数 beta = (0, 0)。

  1. 对 logistic 回归在零初值处算一步 Newton 更新,写出梯度 g 与海森 H,再算 beta_new = -H^ g。
  2. 在 beta_new 下算交叉熵,与「把 0/1 标签当连续值跑 OLS」得到的残差平方和对比,并解释为什么后者数值上更小却模型设定错误。
  3. 证明 K = 2 时 softmax 退化为 sigmoid:取 beta_2 = 0,化简 P(Y = 1 | x) = exp(beta_1^T x) / (1 + exp(beta_1^T x)),与 sigma(beta_1^T x) 一致。
提示
零初值下 σ(0)=1/2\sigma(0) = 1/2,每个样本贡献给梯度的项形如 (p^iyi)xi(\hat{p}_i - y_i) x_i,贡献给海森的项形如 p^i(1p^i)xixi=14xixi\hat{p}_i (1 - \hat{p}_i) x_i x_i^\top = \tfrac{1}{4} x_i x_i^\top。先把 g=X(p^y)g = X^\top (\hat{p} - y)H=14XXH = \tfrac{1}{4} X^\top X 的两个矩阵显式写出,再做一次 2×22 \times 2 求逆即可,不要用闭式公式记忆。
提示
对第 3 小问,softmax 的两类形式 P(Y=1x)=eβ1x/(eβ1x+eβ2x)P(Y = 1 \mid x) = e^{\beta_1^\top x} / (e^{\beta_1^\top x} + e^{\beta_2^\top x}) 的分子分母同除以 eβ2xe^{\beta_2^\top x},令 β=β1β2\beta = \beta_1 - \beta_2,即看到 sigmoid 形式——这说明 softmax 有一个冗余自由度,实践中通常固定 βK=0\beta_K = 0

八、模块小结与下一站

回望本模块的五节:第一节立起统计学习框架(损失、风险、ERM),第二节用偏差-方差分解把容量与泛化的关系说成一道代数恒等式,第三节把整套机器装到线性回归这一最简单实例上、并把 OLS 与 MLE 在正态分布噪声假设下对齐,第四节用正则化(岭、Lasso)与交叉验证把容量与超参数的选择钉死,第五节把响应变量从连续推到离散、用 sigmoid 与 softmax 把同一套 ERM + 正则 + CV 机制接到分类上。共同的骨架是:​​线性打分 + 凸损失 + 正则惩罚 + 交叉验证选超参​​。

下一站是 ​2.6.2 树方法与核方法​​。线性打分这一约束在那一模块被两条路径解除:决策树用轴对齐切分构造非线性边界,核方法通过把 xx 映射到再生核希尔伯特空间(RKHS)恢复线性可分。但损失、风险、CV 与正则化的语言不变——你在本模块学的每一段算理,到那里都会原样适用。