Datawhale开源学习,机器学习课程,项目地址:https://github.com/datawhalechina/leeml-notes
之前讲了线性模型,提到了误差,那么误差来自哪里?本节内容将介绍「偏差」、「方差」对模型拟合度的影响,同时介绍一下交叉验证、梯度下降法。
Estimator
y^\widehat{y}y 表示那个真正的function,而f∗f^*f∗表示这个f^\widehat{f}f 的估测值estimator,就好像在打靶,f^\widehat{f}f 是靶的中心点,收集到一些data做training以后,你会得到一个你觉得最好的function即f∗f^*f∗,这个f∗f^*f∗落在靶上的某个位置,它跟靶中心有一段距离,这段距离就是由bias和variance决定的。
实际上对应着物理实验中「系统误差」和「随机误差」的概念,假设有n组数据,每一组数据都会产生一个相应的f∗f^*f∗,此时bias表示所有f∗f^*f∗的平均落靶位置和真值靶心的距离,variance表示这些f∗f^*f∗的集中程度
Bias and Variance of Estimator
假设独立变量为xxx(这里的xxx代表每次独立地从不同的training data里训练找到的f∗f^*f∗),那么,总体期望E(x)=uE(x)=uE(x)=u ;总体方差Var(x)=σ2Var(x)=\sigma^2Var(x)=σ2
用样本均值x‾\overline{x}x估测总体期望uuu
由于我们只有有限组样本 { x1,x2,...,xN}\{x^1,x^2,...,x^N\}{ x1,x2,...,xN},故样本均值x‾=1N∑i=1Nxi≠μ\overline{x}=\frac{1}{N}\sum\limits_{i=1}^{N}x^i \neq \mux=N1i=1∑Nxi=μ ;样本均值的期望E(x‾)=E(1N∑i=1Nxi)=μE(\overline{x})=E(\frac{1}{N}\sum\limits_{i=1}^{N}x^i)=\muE(x)=E(N1i=1∑Nxi)=μ ; 样本均值的方差Var(x‾)=σ2NVar(\overline{x})=\frac{\sigma^2}{N}Var(x)=Nσ2。样本均值 x‾\overline{x}x的期望是总体期望μ\muμ,也就是说x‾\overline{x}x是按概率对称地分布在总体期望μ\muμ的两侧的;而x‾\overline{x}x分布的密集程度取决于N,即数据量的大小,如果N比较大,x‾\overline{x}x就会比较集中,如果N比较小,x‾\overline{x}x就会以μ\muμ为中心分散开来(也就是说,对期望而言,期望值μ\muμ为图像的对称轴,期望值μ\muμ越大,越偏离对称轴x=0x=0x=0;同时对方差而言,N越大,方差越小,图像越「高瘦」;N越小,方差越大,图像越「矮胖」,所以方差反应的是数据的集中或离散程度)
综上,样本均值x‾\overline{x}x以总体期望μ\muμ为中心对称分布,可以用来估测总体期望μ\muμ。
用样本方差s2s^2s2估测总体方差σ2\sigma^2σ2
由于我们只有有限组样本 { x1,x2,...,xN}\{x^1,x^2,...,x^N\}{ x1,x2,...,xN},故样本均值x‾=1N∑i=1Nxi\overline{x}=\frac{1}{N}\sum\limits_{i=1}^{N}x^ix=N1i=1∑Nxi ;样本方差s2=1N−1∑i=1N(xi−x‾)2s^2=\frac{1}{N-1}\sum\limits_{i=1}^N(x^i-\overline{x})^2s2=N−11i=1∑N(xi−x)2 ;样本方差的期望E(s2)=N−1Nσ2≠σ2E(s^2)=\frac{N-1}{N}\sigma^2 \neq \sigma^2E(s2)=NN−1σ2=σ2 ,同理,样本方差s2s^2s2以总体方差σ2\sigma^2σ2为中心对称分布,可以用来估测总体方差σ2\sigma^2σ2,而s2s^2s2分布的密集程度也取决于NNN。
现在我们要估测的是靶的中心f^\widehat{f}f ,每次collect data训练出来的f∗f^*f∗是打在靶上的某个点;产生的error取决于:
- 多次实验得到的f∗f^*f∗的期望f‾\overline{f}f与靶心f^\widehat{f}f 之间的bias——E(f∗)E(f^*)E(f∗),可以形象地理解为瞄准的位置和靶心的距离的偏差
- 多次实验的f∗f^*f∗之间的variance——Var(f∗)Var(f^*)Var(f∗),可以形象地理解为多次打在靶上的点的集中程度
误差
方差
f∗f^*f∗的variance是由model决定的,一个简单的model在不同的training data下可以获得比较稳定分布的f∗f^*f∗,而复杂的model在不同的training data下的分布比较杂乱(如果data足够多,那复杂的model也可以得到比较稳定的分布)
如果采用比较简单的model,那么每次在不同data下的实验所得到的不同的f∗f^*f∗之间的variance是比较小的,就好像说,你在射击的时候,每次击中的位置是差不多的,就如同下图中的linear model,100次实验找出来的f∗f^*f∗都是差不多的。但是如果model比较复杂,那么每次在不同data下的实验所得到的不同的f∗f^*f∗之间的variance是比较大的,它的散布就会比较开,就如同图中含有高次项的model,每一条f∗f^*f∗都长得不太像,并且散布得很开。
QUESTION: 那为什么比较复杂的model,它的散布就比较开呢?比较简单的model,它的散布就比较密集呢?
原因其实很简单,其实前面在讲regularization正则化时也提到了部分原因。简单的model实际上就是没有高次项的model,或者高次项的系数非常小的model,这样的model表现得相当平滑,受到不同的data的影响是比较小的。举一个很极端的例子,我们的整个model(function set)里面,只有一个function: f=c,这个function只有一个常数项,因此无论training data怎么变化,从这个最简单的model里找出来的f∗f^*f∗都是一样的,它的variance就是等于0
偏差
偏差bias的意思是,我们把所有的f∗f^*f∗平均起来得到E(f∗)=f∗‾E(f^*)=\overline{f^*}E(f∗)=f∗,这个f∗‾\overline{f^*}f∗与真值f^\widehat{f}f