在从训练资料中得到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)减少模型弹性
|