2.1 进行误差分析
如果你构建的神经网络模型不能达到人类的水平,你可以手工查看模型错误的地方,这有助于你确定下一步如何进行改进。
例如在猫的二分类模型中,出现了不少把狗认为是猫的错误判断,那么是不是应该建立一个专门判别狗的模型或者在训练集中增加狗的图片来减少把狗的错判率呢?
可以这样做,找出100个错误判断的训练集,看里面有多少个是狗的图片,如果狗的图片只占5%,那么即使你专门针对狗的分类进行了优化,你的模型的错误率也不会有明显的降低,才降低了5%。但是,如果狗的图片占50%的话,那么你花时间对狗的分类进行优化,是值得的,应为最好的情况下你可以将错误率降低50%。
虽然在机器学习时很鄙视用手工设置规则,但是通过以上的操作,可能只需要几分钟的时间就可以帮你确定下一步的优化策略。
有时候,你可以同时评估好几个改进策略,例如:
1.修正狗被错判为猫的情况;
2.修正其他猫科动物(豹子,狮子等)被错判为猫的情况;
3.修正模糊(如加了滤镜效果)图片被错判为猫的情况。
把这三种情况在错误分类集中所占的比例统计出来,选出占比最高的情况,并对其改进。
2.2 清楚标注错误的数据
有时候你会发现有些数据被错误的标记了,那么有没有必要花时间对这些错误标记的图片进行修正呢?
在训练集中,如果错误的标记是随机性误差的话,例如从事标记工作的人员按错了按键或者看错了,那么对于深度学习模型来说,这种错误影响不大。但是,如果错误的标记是系统性误差,例如从事标记工作的人员一直把狮子标记成猫的话,那么训练出来的深度学习模型将会把狮子判断为猫。
在开发集和测试集中,与2.1节的方法类似,可以把错误标记的例子统计一下,看下错误标记在错误分类集中所占的比例,如果占比很高的话,可以考虑把错误标记的数据进行更正。
2.3 快速搭建你的第一个系统,并进行迭代
如果你在搭建的机器学习系统,一个很好的做法是:不要想太多,快速搭建起一个系统,并进行迭代优化。
以语音识别为