在从训练资料中得到Loss后,操作路径如下
Loss is Large
原因
(1)model bias
可能是model太简单/弹性不足,使得Loss没有足够小
解决办法:
(1)增加features(增加训练资料范围)
(2)Deep Learning(增加层数)
(2)Optimization
可能是参数优化不足,使得Loss不够小
gradient descent 无法找出合适的参数使得Loss足够小,这里待补充(下节课才讲)
如何判断是哪种原因
若无法正确判断原因,一味寻找,会导致始终找不到足够小的Loss,宛若大海捞针。
基本解释
通过对比不同模型以判断
如上图所示,横轴:training过程(即参数更新过程);纵轴:Loss值(左图为测试资料,右图为训练资料)
在testing data中,20-layer的Loss < 56-layer的Loss,但这并不是over fitting所造成。
在Training data中,仍然是20-layer的Loss更低,但56-layer的model弹性明显更好,则说明是56-layer的optimization的问题。
具体操作
将浅的/小的network或者简单模型的Loss和深的network的Loss进行对比
先将浅的/小的network或者简单模型如Linear Model的Loss计算出。再计算更深的network的Loss。
若前者Loss更小,则证明是Optimization的问题
在上图蓝色框架内:
5-layer model的弹性一定强于前面几层,但Loss却比它们都大,则说明是5-layer的Optimization有问题。
Loss is Small
当训练数据的Loss足够小,在testing数据上进行实践,若testing数据的Loss足够小,则为success!反之则考虑overfitting
introduction of overfitting
蓝点为training data,用于束缚函数的形状。没有训练资料束缚的位置,当弹性过大时,函数则可以有任意形状,导致在测试资料上得到很大的Loss。
为了避免overfitting,有以下几种解决措施
overfitting solutions
解决措施分为两类:
(1)用更多的数据束缚模型
More training data :需要搜集更多的训练资料
Data augmentation:基于原有资料,来增加资料
(2)减少模型弹性
mismatch
过拟合中一种具体的情况——mismatch
可用更多的训练资料克服普通过拟合的情况,但在mismatch中,由于训练资料和测试资料的分布不同,再多训练资料也无济于事
(此处待补充,还没讲)
如何选择最优Loss
随着model复杂程度增加,Training Loss持续减小,但Testing Loss先减小后增大。我们选择Testing Loss最小的Loss。
在HW中,用Training set得到model,用于通过public和private两个测试作业。训练资料中得出的多个模型中,Loss最小的模型可能在两个测试中得到差距很大的结果。
Cross Validation
为优化上述情况,我们采用交叉验证的方式:
将Training set分为两组:
(1)Training Set — 占90% ,用于寻找model
(2)Validation Set — 占10%,用于验证测试
在Validation Set中选取最小mse所用模型,用于测试作业。
N-fold Cross Validation
在划分Training Set时,为避免Validation Set数据差,我们可采用N-fold Cross Validation
将Training set数据划分为三份:2份训练资料,一份验证资料。将这三份用不同排列方式划分为3组,将每个模型在这三组中得到的mse列出,并求这三组的mse平均值,选取最小Avg mse的模型。