背景博客参考:https://blog.csdn.net/soulmeetliang/article/details/72830179
https://blog.csdn.net/Allenlzcoder/article/details/78956056
本节讨论了误差来源的主要因素,由此引入了两个在深度学习神经网络中很重要的参数 W and b,话不多说,直接贴图:
注释1:用同一个model,重复做了100次实验,(每次都抓了10只不同的宝可梦)得到以下曲线
注释2:
f star: 就是同一个model在每次实验下得到的曲线,可以理解成每次射击后的点。
f hat: 是标准的曲线,可以理解成前面的靶心。
注释3:黑线是f hat;红线是5000次实验的f star;蓝线是所有f star的平均值(期望值)
注释4:原因分析:简单的model 它的space比较小,所以variance也会小,但是可能从一开始就没有包含我们的target;而复杂的model 虽然space比较大,导致variance也大,但是会包含了target。
注释5:bias即偏差过大,可能你的model一开始就没有包含真正的f hat(靶心),所以需要重新设计model
判断underfitting和overfitting。
1)如果model无法很好的拟合训练集中的数据,model的预测值有large bias。这是underfitting。
2)如果model可以很好的拟合训练集中的数据,但model在测试集中会产生很大的error,model的预测值有large variance。这是overfitting。
Large bias时怎么办?
1)重新设计model,在输入中加入更多的特征;2)设计一个更复杂的model。
Large variance时怎么办?
1)收集更多的数据,非常有效的手段,但在实际执行过程中并不总是可行。
2)Regularization(正则化)
如何选择模型?
见下图:
依据上图,我们不应该根据用Training Set训练出来的model在Testing Set上的准确率来选择model。因为用自己的Testing Data选择的model不一定在真实的Testing Data上效果也很好,通常而言效果是比较差的。
那应该怎么办呢?见下图。
注意:原则上,少用public Testing Set来调整model,这样往往在private Testing Set上得到的结果与在public Testing Set上得到的结果差距是比较小的。
OK,本节结束~