Review

首先我们知道在不同的function set上error不同,也就是在不同的model上error是不同的,这个原因显而易见;在同一个function set里不同的function对data产生的error也是不同的,因为同一个model但参数不同导致model有细微的差异,所以error自然也不相同。

那我们知道当model越复杂,error不一定是会越小的。当model过于复杂会导致overfitting,这个时候error在training data上error会很小,但在testing data上error反而会变大。
Where does the error come from?----Bias and Variance
这张图中横轴x是model的最高次,纵轴y是testing data上的error。可以看到在x = 3处,error达到图中的最小值,在x = 5处反而error会非常大。

?But where does the error come from

Estimator

假设,我们根据training data训练出来了一个模型ff^*,真实的model其实是f^\hat fff^*则是f^\hat f的估计值,f^\hat fff^*之间必定存在误差。
Where does the error come from?----Bias and Variance
从这个图中可以看出f^\hat f是靶心点,ff^*是右上角蓝色的点。两个点之间的距离就是两个model之间的误差。而这个误差是由Bias和Variance共同决定的。

下图中,蓝点表示ff^*,靶心红点表示f^\hat f
Where does the error come from?----Bias and Variance
ff^*的平均值fˉ\bar f,就是那个蓝点,蓝点到靶中心的距离就是bias,小蓝点是每次实验得到的估计值,小蓝点越分散Variance越小,越集中越大。
Where does the error come from?----Bias and Variance

Bias V.S. Variance

现在知道了error是由bias和varience共同决定的,但是二者应该影响不同的方面来产生error。
Where does the error come from?----Bias and Variance
当underfitting的时候bias较大,当overfitting的时候Variance较大,两者相互制衡共同影响error。

What to do with large bias?

当model没有拟合training data,就会产生underfitting的现象,这个时候bias可能会过大。
当model完全拟合trianing data,但是在testing data上error较大,就会产生overfitting 的现象,这个时候很可能是因为Varience过大了。
当bias过大,或者低拟合时,你应该为你的model增加feature,或者重新选择一个更加复杂的function set。用线性模型来解释,也许应该用更高次的模型来拟合,或者增加x的纬度。
Where does the error come from?----Bias and Variance
上图中用了一条一次曲线来拟合图上的点,而此时在training data上的拟合效果并不好,此时很有可能是underfitting,因此bias对error的影响更大。此时考虑换一个更加复杂的函数来拟合training data。
Where does the error come from?----Bias and Variance
使用一个二次式去拟合显然bias有所下降了。
Where does the error come from?----Bias and Variance
又换了一个三次式拟合后bias更低了。
Where does the error come from?----Bias and Variance
当换用一个5次式作为model时,training data上的error已经很小了,但此时在testing data上的error大大增加。如下图是在testing data上的情况。
Where does the error come from?----Bias and Variance
此时model转为overfitting,variance对error的影响更大。

What to do with large variance?

当模型过拟合,variance对error的影响占主导地位。很容易理解为什么过拟合后model在testing data上的error变大,因为在training data上,划一条线穿过所有的点,此时在training data上完全拟合,而这样一条线是不可能完全拟合于testing data的,除非training data中的数据涵盖了全部的数据点,这显然时不可能的。
当model的variance过大时,你需要更多的data,去用于拟合function set,从而更好的排除一些不相关的model。
Where does the error come from?----Bias and Variance
当data数由10变为100的时候,从图中可以明显看到减少了非常多的function。
第二种方法是正则化,正则化可以使function变得更加平滑等作用,具体作用和方法会在后面的博客中提到。基本形式就是在function后面加上一个惩罚项,像是“配重”一样,让function更加平均。这种方法虽然可以减小variance,但是由于是对model进行了改变,所以势必对bias也会产生一定影响。
Where does the error come from?----Bias and Variance

但是如何知道model分别在training data与testing data上的error呢?

testing data在训练模型的时候应该时不知道的,仅仅能通过training data来对模型进行训练。因此testing data是不能出现在training data里面的。我们将training data划分出一部分作为validation data,来模拟model在testing data上的情况。
但是这样的做法会产生比较大的误差,很可能training data是全部数据集中的很小一部分,而validation set又是training data上很小一部分,这样的测试结果太具有偶然性了。

N-fold Cross Validation

因此引出n次交叉验证,这个方法的做法是将training set 分为n份,每次取其中一份作为validation set剩下n1n-1份作为training set,得出一个error,这样的操作重复n次,将得到error进行平均,作为这个模型的error。
Where does the error come from?----Bias and Variance

相关文章:

  • 2021-11-05
  • 2021-04-07
  • 2021-11-04
  • 2021-11-27
  • 2021-06-16
  • 2021-06-19
  • 2021-05-18
  • 2021-11-20
猜你喜欢
  • 2017-12-08
  • 2021-05-19
  • 2021-07-16
  • 2021-11-19
  • 2021-06-22
  • 2020-03-30
  • 2022-01-03
  • 2021-07-31
相关资源
相似解决方案