一、机器学习的策略
什么是机器学习策略,机器学习的策略就是一些分析机器学习问题的方法。
当你的模型精准度达到90%时,还不够好,你想让它更好,你可以选择收集更多的数据,尝试更大或更小的网络,尝试dropout,尝试调整各种参数,你的选择太多了,但你并不知道调整过后效果怎么样,可能花费几个月时间但是效果并没长进,有什么应对办法嘛,那就是正交化。
正交化,对于那些知道正交化的人来说,他们的思路非常清晰,他们知道要去调整哪些参数,来达到他们需要的效果。
如何正交化?
一般我们的机器学习有如下图的四个步骤:
正交化就类似于电视机上的按钮,每一个按钮只调整固定的东西,例如宽度不够,那么我们调整宽度的按钮就只调整宽度,不影响其他的。
反映到机器学习中,如下:
1.拟合训练集使成本函数较低 可用的“按钮”有:更大的神经网络、adam……
2.拟合验证集使成本函数较低 可用的“按钮”有:正则化、更大的训练集
3.拟合测试集使成本函数较低 可用的“按钮”有:更大的验证集
4.在现实世界中表现良好 可用的“按钮”有:改变验证集或成本函数
PS:还有一个是early stoping,但它会同时影响到1和2,如果你想用也可以。
二、设定指标
1.单一数字评估指标
Precision(查准率):样本中识别出来是猫的图片中有多少是真的猫的比例
Recall(查全率):样本中被识别出来是猫的占总体样本的比例
当分类A和分类B如上图时,我们该如何选择,这里我们可以用到“调和平均数”,即 [2/ (1/P + 1/R)],选择高的那个。
2.满足和优化指标
要把你所有要考虑的东西组合成单一数字评估指标并不如意,我们还有一种方法:满足和优化指标。
假设有n个指标,其中有一个是优化指标,我们尽力让它达到最好,剩下n-1个是满足指标,我们只需让它满足一个阈值就行,剩下的我们不去管它。
3.训练/验证/测试集划分
验证和测试集最好是来自同一分布。
正如之前所提到的,在当下的大数据时代,训练/验证/测试的规模划分最好是98%/1%/1%,或者类似的。并且最好有验证和测试集,验证集是去评估模型的效果,然后根据结果进行相应的调整。测试集就是真正的测试,用不带偏差的数据来真正衡量系统的性能。
4.总结
什么时候改变验证/测试集和指标:
(1)
当算法A的误差率为3%,算法B的误差率为5%时,我们认为算法A的效果更好。但是可能这是推松广告的算法,我们希望推送猫,但是算法A会有一定概率把色情图片认为是猫,这不是我们所希望的,因此虽然A的误差率要低一些,但是这个时候我们就需要改变了,例如可以在计算误差时,提高色情图片的权重,如猫为1,色情图片为10,这就是惩罚。
(2)
当在验证集和测试集都做的很好,但是在实际应用中并不好时,这时我们需要改变指标和验证/测试集。
三、机器学习性能与人类水平
在接近人类水平前,性能的进步比较快;到达或超越后,进步的趋势就减缓了,最终可能不会超过理论上的最好效果(贝叶斯最优误差)。
而为什么要与人类水平比较呢?
因为人类在很多任务上都做的比较好,只要机器学习性能不如人类,那么可以让人来帮忙提高性能,如:得到标记好的数据,错误分析,对偏差的分析。
1.选择避免偏差或方差
该如何选择避免偏差或是避免方差呢?
当人类的水平在1%的误差,训练集为8%,验证为10%时,我们认为还有很大提升空间,这时我们应该专注于避免偏差。
当人类的水平在7.5%的误差,训练集为8%,验证为10%时,我们认为可以接受,这时希望将验证更加接近训练,这时我们应该专注于避免方差。
Human | 0.5% | 0.5% | 0.5% |
Training | 5% | 1% | 0.7% |
Dev | 6% | 5% | 0.8% |
2.总结