机器学习基础(3) |
您所在的位置:网站首页 › 拟合模型的概念和特征 › 机器学习基础(3) |
本节从数学原理上分析测试误差呈现 U 型的原因,我们知道测试误差是对泛化误差的估计,所以我们从泛化错误率的角度入手,使用 偏差-方差分解(bias-variance decomposition) 这个数学工具对学习算法的期望泛化错误率进行拆解. 对测试样本 x \pmb{x} xxx,令 y D y_D yD 为 x \pmb{x} xxx 在数据集中的标记, y y y 为 x \pmb{x} xxx 的真实标记, f ( x , D ) f(\pmb{x},D) f(xxx,D) 为训练集 D D D 上学得模型 f f f 对 x \pmb{x} xxx 的预测输出。考虑上面那样的回归问题,学习算法的期望预测为 f ˉ ( x ) = E D [ f ( x ; D ) ] \bar{f}(\pmb{x}) = \mathbb{E}_D[f(\pmb{x};D)] fˉ(xxx)=ED[f(xxx;D)] 固定训练使用的样本数量,训练集的不同采样会导致预测方差 v a r ( x ) = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] var({\pmb{x}}) = \mathbb{E}_D\Big[\big(f(\pmb{x};D)-\bar{f}(\pmb{x})\big)^2\Big] var(xxx)=ED[(f(xxx;D)−fˉ(xxx))2] 同时,采样噪声会使得样真实标记 y y y 和采样标记 y D y_D yD 不同,噪声体现为 E 2 = E D [ ( y D − y ) 2 ] \mathcal{E}^2 = \mathbb{E}_D\Big[\big(y_D-y\big)^2\Big] E2=ED[(yD−y)2] 最后,模型输出和真实标记之间有偏差 b i a s 2 ( x ) = ( f ˉ ( x ) − y ) 2 bias^2(\pmb{x}) = (\bar{f}(\pmb{x})-y)^2 bias2(xxx)=(fˉ(xxx)−y)2 为了便于讨论,假设噪声的期望为零,即 E D [ y d − y ] = 0 \mathbb{E}_D[y_d-y]=0 ED[yd−y]=0,用多项式展开对算法的期望泛化误差 E ( f ; D ) E(f ; D) E(f;D) 进行分解 E ( f ; D ) = E D [ ( f ( x ; D ) − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) + f ˉ ( x ) − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y D ) 2 ] + E D [ 2 ( f ( x ; D ) − f ˉ ( x ) ) ( f ˉ ( x ) − y D ) ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y + y − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y ) 2 ] + E D [ ( y − y D ) 2 ] + 2 E D [ ( f ˉ ( x ) − y ) ( y − y D ) ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + ( f ˉ ( x ) − y ) 2 + E D [ ( y D − y ) 2 ] , \begin{aligned} E(f ; D)=& \mathbb{E}_D\left[\left(f(\boldsymbol{x} ; D)-y_D\right)^2\right] \\ =& \mathbb{E}_D\left[\left(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x})+\bar{f}(\boldsymbol{x})-y_D\right)^2\right] \\ =& \mathbb{E}_D\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^2\right]+\mathbb{E}_D\left[\left(\bar{f}(\boldsymbol{x})-y_D\right)^2\right] +\mathbb{E}_D\left[2(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))\left(\bar{f}(\boldsymbol{x})-y_D\right)\right] \\ =& \mathbb{E}_D\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^2\right]+\mathbb{E}_D\left[\left(\bar{f}(\boldsymbol{x})-y_D\right)^2\right] \\ =& \mathbb{E}_D\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^2\right]+\mathbb{E}_D\left[\left(\bar{f}(\boldsymbol{x})-y+y-y_D\right)^2\right] \\ =& \mathbb{E}_D\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^2\right]+\mathbb{E}_D\left[(\bar{f}(\boldsymbol{x})-y)^2\right]+\mathbb{E}_D\left[\left(y-y_D\right)^2\right] +2 \mathbb{E}_D\left[(\bar{f}(\boldsymbol{x})-y)\left(y-y_D\right)\right] \\ =& \mathbb{E}_D\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^2\right]+(\bar{f}(\boldsymbol{x})-y)^2+\mathbb{E}_D\left[\left(y_D-y\right)^2\right], \end{aligned} E(f;D)=======ED[(f(x;D)−yD)2]ED[(f(x;D)−fˉ(x)+fˉ(x)−yD)2]ED[(f(x;D)−fˉ(x))2]+ED[(fˉ(x)−yD)2]+ED[2(f(x;D)−fˉ(x))(fˉ(x)−yD)]ED[(f(x;D)−fˉ(x))2]+ED[(fˉ(x)−yD)2]ED[(f(x;D)−fˉ(x))2]+ED[(fˉ(x)−y+y−yD)2]ED[(f(x;D)−fˉ(x))2]+ED[(fˉ(x)−y)2]+ED[(y−yD)2]+2ED[(fˉ(x)−y)(y−yD)]ED[(f(x;D)−fˉ(x))2]+(fˉ(x)−y)2+ED[(yD−y)2], 于是有 E ( f ; D ) = b i a s 2 ( x ) + v a r ( x ) + E 2 E(f ; D) = bias^2(\pmb{x}) + var(\pmb{x})+\mathcal{E}^2 E(f;D)=bias2(xxx)+var(xxx)+E2 我们得到一个重要结论:泛化误差可以分解为偏差、方差与噪声之和,其中 偏差度量了学习算法的期望预测与真实结果的偏离程度,刻画的是学习算法本身的拟合能力方差度量了同样大小的训练集变动所导致的学习性能的变化,刻画了数据扰动所造成的影响(采样误差)噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界(即使预测和数据集标记完全一致,还是和真实标记差一个噪声),刻画了学习问题本身的难度这说明泛化性能是由 “学习算法的能力”、“数据的充分性” 以及 “学习任务本身的难度” 所共同决定的。给定学习任务,为了取得好的泛化性能,需要 使偏差较小,即能够充分拟合数据使方差较小,即使得数据扰动产生的影响小.偏差-方差窘境bias-variance dilemma:一般而言,偏差和方差是有冲突的,如下图所示 大多数学习算法都可以控制训练程度,给定学习任务,随着训练程度不断提高 训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以便学习器产生显著变化,此时偏差主导泛化错误率,即发生欠拟合随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动逐渐被学到,方差逐渐主导泛化错误率;训练程度充足后,学习器的拟合能力已非常强,训练数据的轻微扰动就会使学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |