🧠 一、基本思想
在机器学习中,我们希望找到一个函数(模型)(f(x))( f(x) )(f(x)),使它在真实数据分布 (P(X,Y))( P(X, Y) )(P(X,Y)) 下的**期望风险(真实风险)**最小化:
R(f)=E(X,Y)∼P[L(f(X),Y)] R(f) = \mathbb{E}_{(X,Y)\sim P}[L(f(X), Y)] R(f)=E(X,Y)∼P[L(f(X),Y)]
其中
- (L(⋅,⋅))( L(\cdot,\cdot) )(L(⋅,⋅)):损失函数(如平方误差、交叉熵等),
- (f(X))( f(X) )(f(X)):模型的预测输出,
- (Y)( Y )(Y):真实标签。
但是,真实分布 (P(X,Y))( P(X, Y) )(P(X,Y)) 是未知的,因此我们无法直接计算这个期望风险。
⚙️ 二、经验风险(Empirical Risk)
我们只有一个样本数据集:
S=(x1,y1),(x2,y2),...,(xn,yn) S = {(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)} S=(x1,y1),(x2,y2),...,(xn,yn)
经验风险定义为:
Remp(f)=1n∑i=1nL(f(xi),yi) R_{\text{emp}}(f) = \frac{1}{n} \sum_{i=1}^{n} L(f(x_i), y_i) Remp(f)=n1i=1∑nL(f(xi),yi)
也就是在训练样本上的平均损失。
🎯 三、经验风险最小化原则(ERM Principle)
ERM 的思想就是用经验风险来近似真实风险,并在此基础上选择模型:
f∗=argminf∈FRemp(f) f^* = \arg\min_{f \in \mathcal{F}} R_{\text{emp}}(f) f∗=argf∈FminRemp(f)
换句话说:
我们用训练集的平均损失作为目标函数,找到使其最小的模型。
📉 四、存在的问题
纯粹的 ERM 容易导致 过拟合(overfitting) :
模型在训练集上表现很好,但在新样本(测试集)上表现较差。
🛡️ 五、改进:结构风险最小化(SRM)
为了解决过拟合问题,引入了 结构风险最小化(Structural Risk Minimization) ,在经验风险的基础上加上一个正则化项:
Rsrm(f)=Remp(f)+λ,Ω(f) R_{\text{srm}}(f) = R_{\text{emp}}(f) + \lambda , \Omega(f) Rsrm(f)=Remp(f)+λ,Ω(f)
其中:
- (Ω(f))( \Omega(f) )(Ω(f)):模型复杂度的度量(正则项);
- (λ)( \lambda )(λ):平衡经验风险与模型复杂度的系数。
这就是许多现代机器学习算法(如岭回归、Lasso、SVM、神经网络正则化等)的理论基础。
✅ 六、总结对比
| 概念 | 定义 | 优缺点 |
|---|---|---|
| 经验风险最小化 (ERM) | 在训练集上最小化平均损失 | 简单易行,但易过拟合 |
| 结构风险最小化 (SRM) | 在 ERM 基础上加入正则项 | 抑制过拟合,更具泛化能力 |