【摘要】 改善模型的步骤:1、最先应该分析的是,训练数据的预处理是否有不合理之处?2、判断模型是偏差高还是方差高?偏差高意味着模型欠拟合,换一个更好的梯度下降算法、降低学习率、减弱正则化、增加隐藏节点数、增加网络层数都可以降低偏差;3、方差高意味着过拟合了,可以増广训练数据、增强正则化;5、暴力一点可以超参搜索;6、傻瓜化一点,直接换一个更好的网络模型,也许就是质的飞跃。
https://bbs.huaweicloud.com/blogs/101173
改善模型的步骤:
1、根据人类表现估计贝叶斯最优错误率。
贝叶斯最优错误率是理论上可能达到的最优错误率,也就是说没有办法设计出一个x到y的函数,让它能比这个最优错误率还低。比如一个猫狗识别训练集中有些图片确实很模糊,无论是人还是机器都无法判断某张图的类别,那么最优错误率就不可能是0。估计人类在某个数据集上的表现,是为了了解该数据的准确率上限是多少,以此判断模型的准确率还差多远。
2、训练时每隔一定步数记录一次训练集错误率和验证集错误率,一直训练,直到在训练集上的错误率不再下降,停止训练;
3、计算贝叶斯错误率与训练错误率之差,该差值称为模型偏差,计算训练错误率与验证错误率之差,该差值称为模型方差。
将训练时记录的训练集错误率和验证集错误率绘制成曲线,分析下一步应该调小模型的偏差还是方差,假设偏差是10%、方差是3%,那么应该优先降低偏差,在偏差较小之后再去考虑降低方差。
4、减少偏差的方法有:(有可能是欠拟合了)
(1)更好的优化算法,如mometum、RMSprop、Adam;
(2)更好的超参数,如降低学习率、减弱正则化;
(3)改变激活函数;
(4)增加隐藏节点数;
(5)增加层数;
(6)使用新的网络架构。
5、减少方差的方法有:(有可能是过拟合了)
(1)使用更多的训练数据或数据增广;
(2)使用正则化,如L1、L2、dropout;
(3)超参搜索;
(4)使用新的网络架构。
减少偏差和方差的可调试项解释如下表所示:

