李宏毅机器学习(三) Where does the error come from?

1、一般来说,error是bias和variance共同作用的结果

2、model比较简单和比较复杂的情况:
当model比较简单的时候,variance比较小,bias比较大,此时\(f^*\)会比较集中,但是function set可能并没有包含真实值\(\widehat{f}\);此时model受bias影响较大
当model比较复杂的时候,bias比较小,variance比较大,此时function set会包含真实值\(\widehat{f}\),但是\(f^*\)会比较分散;此时model受variance影响较大

3、区分bias大 or variance大的情况
如果连采样的样本点都没有大部分在model训练出来的\(f^*\)上,说明这个model太简单,bias比较大,是欠拟合
如果样本点基本都在model训练出来的\(f^*\)上,但是testing data上测试得到的error很大,说明这个model太复杂,variance比较大,是过拟合

4、bias大 or variance大的情况下该如何处理
当bias比较大时,需要做的是重新设计model,包括考虑添加新的input变量,考虑给model添加高次项;然后对每一个model对应的\(f^*\)计算出error,选择error值最小的model(随model变复杂,bias会减小,variance会增加,因此这里分别计算error,取两者平衡点)
当variance比较大时,一个很好的办法是增加data(可以凭借经验自己generate data),当data数量足够时,得到的\(f^*\)实际上是比较集中的;如果现实中没有办法collect更多的data,那么就采用regularization正规化的方法,以曲线的平滑度为条件控制function set的范围,用weight控制平滑度阈值,使得最终的model既包含\(\widehat{f}\),variance又不会太大

5、如何选择model
选择model的时候呢,我们手头上的testing data与真实的testing data之间是存在偏差的,因此我们要将training data分成training set和validation set两部分,经过validation挑选出来的model再用全部的training data训练一遍参数,最后用testing data去测试error,这样得到的error是模拟过testing bias的error,与实际情况下的error会比较符合

posted @ 2021-02-08 21:26  isshpan  阅读(68)  评论(0)    收藏  举报