目录
可以让损失变低的函数不在模 型可以描述的范围内,能让loss 变低的function不在这个集合set里。就是想要在大海里面捞针(一个损失低的函数),结 果针根本就不在海里
论文“Deep Residual Learning for Image Recognition”
极端例子举例:在训练数据上面,这个函数的损失是 0,在测试数据上面,损失会变得很大
Less parameters, sharing parameters.
当模型越来越复杂的时候,复杂到某一个程度,过拟合的情况就会出现,虽然在训练损失上面得到比较好的结果,但在测试损失上面,会得到比较大的损失
最好的做法,就是用验证损失,直接挑最小损失,不要管公开测试集的结果
选修课运行结果:
-
作业通关攻略
训练的过程:
如何做得更好之攻略:
模型偏差
-
可以让损失变低的函数不在模 型可以描述的范围内,能让loss 变低的function不在这个集合set里。就是想要在大海里面捞针(一个损失低的函数),结 果针根本就不在海里
-
解决办法:重新设计model,有更大的弹性,增加输入的特征。
优化问题:大海捞针,针确实在海里,但是无法把针捞起来。
比较不同的模型来判断模型现在到底够不够大
-
论文“Deep Residual Learning for Image Recognition”
-
20 层的损失比较低,56 层的损失还比较高,是优化问题
极端例子举例:在训练数据上面,这个函数的损失是 0,在测试数据上面,损失会变得很大
解决办法:
- 增加训练集:data augmentation 用理解创造新资料,左右翻转、截图
-
constrained model
-
Less parameters, sharing parameters.
-
less features
-
early stopping
-
regularization
-
dropout
-
也不能给太多限制,这是model bias
-
当模型越来越复杂的时候,复杂到某一个程度,过拟合的情况就会出现,虽然在训练损失上面得到比较好的结果,但在测试损失上面,会得到比较大的损失。
-
testing set 分为public 和 private:防止random产生的结果碰巧产生好结果,或废模型产生好结果。不要用pubic testing set调整模型,可能会在private testing set得到更差效果。
-
交叉验证
-
最好的做法,就是用验证损失,最小的直接挑,不要管公开测试集的结果
-
k 折交叉验证(k-fold cross validation)。k 折交叉验证就是先把训练集切成 k 等份。在这下面例子, 训练集被切成 3 等份,切完以后,拿其中一份当作验证集,另外两份当训练集,重复 3 次。
- Mismatch:训练资料和测试资料分布不一样。解决方法:要对训练资料和测试资料有理解。