实践方法论
训练模型的基本步骤:(如下图所示)
- 用训练集训练模型,(最终得出来最优的参数集)
- 将最优参数集带入模型中,用测试集测试模型(人话:将最优参数集带入原来函数中,用测试集的x值计算y值)(这个过程就叫做预测)
训练过程中遇到问题的解决攻略(看下图的方式是“前序遍历”)
model bias出现问题的情况:
1.看training data的 loss,太大;
2.当你模型无论如何调整参数,训练的结果还是不够好。
解决办法:那就只能重新设计模型,增加(减少)feature,下图是model bias出现问题
下图是optimization出现问题
当loss大了,判断是model bias还是optimization的问题的方法如下:
通过比较不同层数的model判断现在的model够不够大,如果高model比低model效果差,那么就是高model的optimization出现问题(56-layer的前20-layer和20-layer做一样的事,56层的后36层竟然没有帮助反而拖后腿
选择合理的model的方法:training set分为training set训练,用validation set测试,可以根据validation set测试出来的loss判断使用哪个模型。如下图所示:
通过划分training set和validation set判断选用模型的方法:
- 训练集分为等分为n份 数据集,分别选用其中的一个作为val set,其他作为train set,
- 写出所有排列的可能(全排列)
- 将全排列的val set 和train set的数据带入同一个model中,计算出msei,然后算出平均的mse
- 重复操作3,只需要把model换成你要测试的模型之中即可
overfitting
- overfitting:loss在training data小,在test data大
- overfitting解决方法:
- 数据增强:a.增加训练资料;b.根据资料的特性和自己对要处理的问题的理解,自己去创造data
- 限制模型:a.Less parameters,sharing parameters(把几个参数值设置成一样的);b.Less features(降低model的层数(即降低model的复杂度,采用简单的模型比如二次多项式等));c.Early stopping;d.Regularization;e.Dropout