统计学习框架:损失、风险与经验风险最小化
开篇场景(Hook):下月信号要不要照搬
上海一家私募的量化研究员把过去三年沪深300(CSI 300)成分股的月度超额收益(excess return)整理成一张表:每一行是一只股票在某月的 (x,y),x 是当月末的因子向量(规模、价值、动量、低波),y 是下月的超额收益。她准备在这张大约一万行的样本里挑一个预测器 h,下周用它给六月组合下单。组合经理只问了两个问题:「样本里平均误差最小的那个 h,到下月还能用吗?如果不能,你怎么提前知道?」
这两个问题就是本课的全部内容。它把「找一个能在新数据上仍然好用的预测器」拆成四个数学对象——分布 P、假设空间 H、损失函数 L、风险 R——并解释为什么直接「在训练样本上把误差打到最小」常常给出一个在六月翻车的 h。
一、监督学习的四件套
固定一对随机变量 (X,Y),服从未知联合分布 P。X∈X 是观测得到的特征向量(因子暴露、价格序列、文本嵌入),Y∈Y 是想预测的标签(下月收益、是否违约、波动率类别)。监督学习的任务,是从一个假设空间(hypothesis class)H={h:X→Y} 里挑一个预测器 h,使它在 P 之下平均犯错最少。
「犯错多少」由一个损失函数(loss function)L:Y×Y→R≥0 度量:L(y,y^) 是真实值 y 与预测值 y^ 之间的代价。所有这些逐点代价沿 P 取期望,被压成一个标量,称为期望风险(expected risk):
R(h)=E(X,Y)∼P[L(Y,h(X))]
四件套于是齐整:P 给环境,H 给候选,L 给评分,R 给总分。学习目标可以写成一行:在 H 里找 h 使 R(h) 最小。
二、经验风险与 ERM
致命的现实是:P 不可知。如果 P 已知,你直接对 L(Y,h(X)) 取期望就能算出 R(h),这门学科不必存在。你手上只有从 P 抽出的独立同分布(i.i.d.)样本 {(xi,yi)}i=1n,所以把期望换成样本均值,得到经验风险(empirical risk):
Rn(h)=n1i=1∑nL(yi,h(xi))
把目标函数从 R 换成 Rn、把外层优化关到 H 之内,就是经验风险最小化(empirical risk minimization, ERM):
h^n=argh∈HminRn(h)
这是几乎所有监督学习算法的骨架。普通最小二乘(ordinary least squares, OLS)对应 L 取平方损失、H 取线性函数;在标签上加一条正态噪声假设,极大似然估计(maximum likelihood estimation, MLE)就是同一条 ERM 优化的等价表述——具体重写到下一节再做,本课只立框架。
三、训练误差、测试误差与泛化间隙
把同一批样本切成三份,是保证 Rn 不替你「自欺欺人」的标准做法。
- 训练集(training set):用来在 H 上做 ERM、产出 h^n。其上的 Rn(h^n) 叫训练误差(training error)。
- 验证集(validation set):用来挑选 H 的容量(多项式阶数、正则系数等),不参与拟合。
- 测试集(test set):只看一次,用来估计 h^n 在 P 下的真实 R(h^n),得到测试误差(test error)。
定义泛化误差(generalization error)为 R(h^n)−Rn(h^n),它衡量训练样本上的成绩离真实期望风险有多远。
留一条警告给量化场景:沪深300 月频收益严格违反 i.i.d.——信号衰减、市场状态切换、政策冲击都让 P 随时间漂移。把 2020-2022 的数据当成与 2024 同分布,验证集会撒谎。这里只标记问题,完整处理(如「purged / embargoed CV」)放在模块 2.6.5 ML in Quant Finance。
四、贝叶斯最优预测器:不可消除误差的下界
ERM 找到的 h^n 在最理想情况下能多准?对任意学习算法,R(h) 都有一个被 P 本身决定的下界,叫贝叶斯最优预测器(Bayes-optimal predictor):
h∗(x)=argy∈YminE[L(Y,y)∣X=x]
在两类最常用的损失下,h∗ 有闭式形式。
平方损失 L(y,y^)=(y−y^)2:对 E[(Y−y^)2∣X=x] 关于 y^ 求导并令零,得
h∗(x)=E[Y∣X=x]
也就是说,平方损失下最优预测器就是条件期望——把 X 的已知信息全用上后 Y 的均值。
0-1 损失 L(y,y^)=1{y=y^}:在分类任务里按后验概率最大的类下注,
h∗(x)=argy∈YmaxP(Y=y∣X=x)
这就是最大后验(MAP, maximum a posteriori)分类器,也叫贝叶斯分类器。
R(h∗) 称为贝叶斯风险(Bayes risk),它是噪音、未观测变量、Y 在给定 X 下的内禀随机性带来的不可约误差(irreducible error)。任何 h^n 与 h∗ 的差距,都由 H 的表达能力不足(逼近误差)与有限样本带来的随机抖动(估计误差)共同贡献。
Formula Explorer
(y_hat - mu)^2
把 y^ 在零附近来回拖动一下,你能直接看到平方损失在 y^=μ=E[Y∣X] 处取最小——上面那条贝叶斯结论的几何形式。
五、本模块复用的三种损失
下表把后续四课会反复登场的三种损失列在一起,记号统一、出处一致,后面只引不证。
| 损失 | Y 的取值 | 公式 L(y,y^) | 适配任务 |
|---|
| 平方损失 | R | (y−y^)2 | 回归(连续收益预测) |
| 0-1 损失 | {1,…,K} | 1{y=y^} | 离散分类(涨/跌、违约/正常) |
| 对数损失 / 交叉熵 | 概率向量 p^∈ΔK | −logp^y | 概率分类(违约概率、信号置信度) |
三者之间存在一条桥梁:在「标签条件分布为正态分布(Gaussian distribution,均值 f(x)、方差 σ2)」假设下,负对数似然(negative log-likelihood)恰好等于平方损失加常数;把噪声协方差矩阵(covariance matrix)换成 Σ,平方损失就推广成马氏距离的二次型。所以「按交叉熵做 ERM」与「在指数族里做 MLE」是同一件事的两种语言——这条等价在第 3 课讲线性回归、第 5 课讲 logistic 回归时都会再用一次。
六、练习
Exercise
你有一份 5 行的 toy 训练样本 (xi,yi):(0.1,0.2)、(0.4,0.5)、(0.5,0.7)、(0.8,1.1)、(1.0,1.3)。两个候选预测器:hA(x)=x、hB(x)=1.3x。(a)在平方损失下分别计算 R5(hA) 与 R5(hB),指出 ERM 的赢家。(b)若把损失从平方改成 0-1(先把 y 按阈值 0.7 离散化为「高」「低」两类,预测器输出按同阈值离散化),贝叶斯最优预测器的恒等式应从平方损失下的哪一行换成 0-1 损失下的哪一行?
提示
R5(h)=51∑i(yi−h(xi))2。先别管比例,五个平方残差直接加起来除以 5,比一比
hA 与
hB 谁小。
提示
(b)只需调用本课的两条贝叶斯最优结论:连续
y + 平方损失对应条件期望
E[Y∣X=x];离散
y + 0-1 损失对应 MAP 分类器
argmaxyP(Y=y∣X=x)。把表里前两行的「贝叶斯最优」对应公式各抄一遍即可。
七、通往下一节
到这里你已经有了一套干净的语言:任何监督学习算法都是「选 L、选 H、在 Rn 上做 ERM」三步走;它的表现被 H 的容量、样本量 n、以及贝叶斯风险三方面共同决定。但本课只字未提的一件事是:如果 H 足够灵活(比如 5 维输入上的 10 阶多项式),你完全可以把 Rn 驱动到零,而真实 R(h) 同时爆炸——「训练集完美、真实分布上崩溃」。下一课要把这种现象量化成偏差-方差分解(bias-variance decomposition),把 E[(Y−h^(X))2] 拆成不可约噪音、平均预测器的偏差平方、预测器在不同训练样本之间的方差三块,并配一张学习曲线把欠拟合 / 过拟合 / 恰好拟合三种区域画出来。