机器学习泛化误差

泛化误差

定义

机器学习算法的最终目标是最小化期望损失风险,由于数据的真实分布通常是不知道的,因此,将学习目标转换为最小化经验风险:
ming∈Gl^n(g)=1n∑i=1nl(g;xi,yi)min_{g\in\mathcal{G}}\hat{l}_n(g)=\frac{1}{n}\sum_{i=1}^{n}l(g;x_i,y_i)mingGl^n(g)=n1i=1nl(g;xi,yi)

优化算法对最小化经验风险函数求解,并在算法结束的第TTT次迭代中输出模型g^T\hat{g}_Tg^T。我们希望学习到的模型g^T\hat{g}_Tg^T的期望风险L(g^T)L(\hat{g}_T)L(g^T)尽可能小,并将其定义为机器学习算法的泛化误差。

泛化误差分解

机器学习中,我们希望学习算法的泛化误差L(g^T)L(\hat{g}_T)L(g^T)尽可能小,尽可能接近最优模型的期望风险。也就是说,优化算法输出的模型g^T\hat{g}_Tg^T与最优模型g∗g^*g所对应的期望风险之差L(g^T)−L(g∗)L(\hat{g}_T)-L(g^*)L(g^T)L(g) 尽可能小,这个差距通常也被称为泛化误差。
我们对泛化误差进行如下分解:
L(g^T)−L(g∗)=L(g^T)−L(g^n)+L(g^n)−L(gG∗)+L(gG∗)−L(g∗)L(\hat{g}_T)-L(g^*)=L(\hat{g}_T)-L(\hat{g}_n)+L(\hat{g}_n)-L(g_\mathcal{G}^*)+L(g_\mathcal{G}^*)-L(g^*)L(g^T)L(g)=L(g^T)L(g^n)+L(g^n)L(gG)+L(gG)L(g)

其中,每个部分的含义如下:

符号含义
g^T\hat{g}_Tg^T机器学习学得模型g^T\hat{g}_Tg^T
g^n\hat{g}_ng^n函数族G\mathcal{G}G中使得经验风险最小的模型
gG∗g_\mathcal{G}^*gG函数族G\mathcal{G}G中使得期望风险最小的模型

上述可以进一步分解为以下三项:

  • L(g^T)−L(g^n)L(\hat{g}_T)-L(\hat{g}_n)L(g^T)L(g^n)为优化误差,表示的是优化算法迭代TTT轮后输出的模型与经验风险最小的模型所对应的期望风险的差别。这项误差是由于优化算法的局限性带来的,与选用的优化算法、数据量大小、迭代轮数以及函数空间有关
  • L(g^n)−L(gG∗)L(\hat{g}_n)-L(g_\mathcal{G}^*)L(g^n)L(gG)为估计误差,表示的是经验风险最小的模型和期望风险最小的模型所对应的期望风险的差别。这项误差主要是由训练数据集的局限性带来的,与数据量的大小和函数空间的复杂程度都有关系
  • L(gG∗)−L(g∗)L(g_\mathcal{G}^*)-L(g^*)L(gG)L(g)为近似误差,表示的是函数集合G\mathcal{G}G中的最优期望风险与全局最优期望风险的差别。这项误差与函数空间的表达力有关

定性地讲,当函数空间增大时,近似误差减小,估计误差增大;当数据量增大时,估计误差减小;当迭代轮数TTT增大时,优化误差减小 。

### 泛化误差上界的理论与公式 #### 定义与基本概念 泛化误差指的是学习到的模型 \( \hat{f} \) 对未知数据预测的平均误差,表达为期望风险: \[ R_{exp}(\hat{f}) = E_P[L(Y, \hat{f}(X))] = \int_{\mathcal{X}\times\mathcal{Y}} L(y, \hat{f}(x)) P(x,y) dx dy \] 这里 \( L(y, \hat{f}(x)) \) 表示损失函数,\( P(x,y) \) 是联合概率分布[^1]。 #### 泛化误差上界的意义 为了评估模型的性能并提供一定的置信度保障,研究者们引入了泛化误差上界的概念。这一界限给出了模型在未见数据上的表现的一个保守估计。具体来说,对于给定的学习算法和训练集大小 N ,存在一个高概率事件使得泛化误差不超过某个特定值。这不仅有助于理解不同参数设置下模型的表现差异,也为选择合适的模型提供了理论依据[^3]。 #### 影响因素分析 影响泛化误差上界的两个主要因素是样本数量 N 和假设空间容量(即模型复杂度)。随着样本量增加,泛化误差趋于减小;而更复杂的模型通常意味着更大的假设空间,从而可能导致更高的泛化误差上界。因此,在实践中需要找到两者之间的平衡点以获得最佳效果。 #### 数学表示形式 设 D 为独立同分布的数据集,|H| 表示假设集合 H 的基数,则对于任意 δ>0 ,有如下不等式成立的概率至少为 1−δ : \[ Pr[R(f)\leqslant R_{emp}(f)+\sqrt{\frac{\log{|H|}+\log{(1/\delta)}}{2N}}]\geqslant 1-\delta \] 其中 \(R(f)\) 表示真实的泛化误差,\(R_{emp}(f)\) 则代表经验风险或训练误差。上述关系表明,通过控制样本规模 N 及调整模型复杂程度来减少右端项中的根号部分,可以有效降低泛化误差的风险。 ```python import math def generalization_bound(empirical_risk, hypothesis_space_size, sample_size, delta): """ 计算泛化误差上界 参数: empirical_risk : float 经验风险/训练误差 hypothesis_space_size : int 假设空间大小 sample_size : int 样本数 delta : float 置信水平 返回: float 泛化误差上界 """ log_term = math.log(hypothesis_space_size) + math.log(1 / delta) sqrt_term = math.sqrt(log_term / (2 * sample_size)) return empirical_risk + sqrt_term ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值