吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

1. Why ML Strategy
为什么需要机器学习策略,机器学习策略指的是一些分析机器学习问题的方法。让我们从一个例子开始:假设训练的分类器准确率为90%,想要提高准确率应该怎么办呢?我们有很多选择可以尝试,但尝试错误的话往往会浪费大量时间,机器学习策略就是在尝试之前帮忙分析出哪种或哪几种方法可能性最大,


吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

2. Orthogonalization正交化

搭建机器学习系统的挑战之一就是有太多的东西如超参可以改变,思维清晰的知道要调整什么来达到某种效果,这个步骤称之为正交化,正交化字面意思就是呈90度直角,互不影响,比如一辆车,设计的方向盘是调整前进方向的,改变他不会影响速度,而调整速度同样也不会影响方向,这种修改某一部分或功能而不会影响其他部分或功能的设计思想就是正交化。
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
对应到机器学习监督式学习模型中,可以大致分成四个独立的“功能”,每个“功能”对应一些可调节的唯一的旋钮,如上图,

第一条即若在训练集上表选不好,可以通过使用更复杂NN,或使用Adam等优化算法来调整;第二条,若在训练集表现很好,而在验证集表现不好,可以通过正则化,或采用更多训练样本来调整;第三条,在训练集和验证集表现都不错,在测试集表现不好,说明很可能过拟合了,可以通过使用更多的验证集样本来调整;第四条在实际应用中表现不好,可以通过更换验证集,或使用新的cost function来调整。

值得一提的是,之前讲到的early stopping同时影响在训练集和验证集的表现,不具有正交性。

3. Single number evaluation metric单一数字评估指标

构建、优化机器学习模型时,单一数值评价指标非常必要,有了评价指标后,我们就能根据这一指标比较不同超参数对应的模型的优劣,从而帮助我们快速的选择最优模型。

常用的单一数字评估指标有F1分数和平均数:

--F1分数
是查准率(Precision)和召回率(Recall)的调和平均数
P:用模型测试被划分为某类中,真正属于此类的比率
R: 实际属于某类,而被模型正确划分到此类的比率
F1 = (2*P*R)/(P+R)


吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

上图两个模型,如果只看Precision的话,B模型更好。如果只看Recall的话,A模型更好,无法确定如何选择,所以需要单一数字的评估指标F1。


--平均数
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
对于上图的例子,看着一堆数据实在一时无法判断哪个模型更好,但是假如平均数(最后一列)之后,就一目了然了。


4. Satisficing and Optimizing metic

有时候,要把所有的性能指标都综合在一起,构成单值评价指标是比较困难的。解决办法是,我们可以把某些性能作为优化指标(Optimizing metic),寻求最优化值;而某些性能作为满意指标(Satisficing metic),只要满足阈值就行了。
举例说明:

吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
一般来说,如果有N个指标,通常合理的做法是选择一个作为优化指标,尽量去优化它,而其余N-1个作为满足指标,只要满足一定阈值就可以。

5. Train/dev/test distributions
dev set开发集(也叫验证集)+单一数字评估指标=目标

也就是由开发集和单一数字评估指标来确定优化的最终位置,所以其选择对整个模型最终的效果来说至关重要,因为一旦选择有偏差,所有的优化工作就需要重新来做。选择开发集最重要就是:一定要保证其是和训练集来自同一分布的随机样本,且样本能够反映真实情况。

吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

6. Size of the dev and test sets
在深度学习中,开发集和测试集的设置也有所不同,这里推荐一些最佳做法:
在大数据时代,当样本数量很大(百万级别)的时候,通常要提高训练集的比例,如将训练集/开发集/测试集的比例设为98%/1%/1%或者99%/1%。

对于dev sets数量的设置,应该遵循的准则是通过dev sets能够检测不同算法或模型的区别,以便选择出更好的模型。对于test sets数量的设置,应该遵循的准则是通过test sets能够反映出模型在实际中的表现。

实际应用中,可能只有train/dev sets,而没有test sets。这种情况也是允许的,只要算法模型没有对dev sets过拟合。但是,条件允许的话,最好是有test sets,实现无偏估计。

吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

7. When to change dev/test sets and metrics
之前讲过,在建立模型过程中,要先确定一个目标,然后整个团队向着这个目标优化模型,如果优化过程中发现目标有偏差怎么办?在什么时候修正目标?

1)重新定义一个评估指标

如果发现评估指标不能正确评估好算法的排名,那么就需要花时间重新定义一个评估指标。举例说明,如果建立一个猫的识别器,以分类误差作为评估指标,算法A错分率为3%,算法B错分率为5%,看起来A算法更好,但是实际中公司或用户更偏爱算法B,因为算法A总会把一些色情图片错分为猫,这是用户极为不喜欢的。这时候就需要修改一下评估指标,比如:

吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

这样做相当于对错分为猫类的色情图片加大惩罚,从而使得算法排序更为合理。

以正交化的思想来概括,机器学习可以分为两个独立的部分:

1)设定目标
2)瞄准和射击目标
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

2)修改开发测试集
当模型在训练集测试集表现都很好,但是在实际中表现却不好的时候,可以考虑修改评估指标或开发测试集。

比如,训练测试的样本都是高清图像,而用户使用的图像比较模糊,这时候就要考虑更换训练开发集,以便能更好的反映真实情况。

吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
建议:
如果不能一开始就定义一个完美的评估指标和开发集,那么先迅速定义一个,然后用它来驱动团队的迭代,当发现评估指标或开发集不够好的时候,可以立即对其进行修改。但是不要在没有定义评估指标或开发集的时候跑太久,那样会大大降低整个团队的迭代和改善算法的速度。


8. Why human-level performance
为什么机器学习要跟人类水平比较呢?

研究发现,当机器学习向人类水平靠近的时候,其进展是十分迅速的,一旦其超过人类水平,其进展就会越来越缓慢。

不断接近理想最优的情况下,性能无法超越某个理论上线,这就是所谓的bayes optimal error贝叶斯最优误差,即理论上能达到的最优误差,理论上x到y的最优函数,也就是无法设计出一个函数,可以超过一定的准确度。

吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

因为和人类表现比较,如果算法不如人类表现好,可以通过一些手段来帮助提升算法,但是一旦算法超过人类之后,这些手段就没用了,所以进展会比较缓慢。
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
9. Avoidable bias
可避免误差:贝叶斯误差或贝叶斯误差的近似估计和测试集之间的误差称为可避免误差。
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

因为人类很擅长识图,所以对于这类问题,通常以人类水平误差代替贝叶斯最优误差,所以上图A中的可避免误差就是7%,B的可避免误差是0.5%,所以A的问题是模型对数据拟合不够好,即偏差过大,可以训练更大的网络或训练更久来解决这个问题,B的问题是方差过大,可以通过正则化或者采用更大的训练集来解决。

10. Understanding human-level performance

1)怎样定义人类水平误差?

人类水平误差是用来代替贝叶斯最优误差,也就是理论上的最优值,所以人类水平误差一般取最小的误差,比如医学图像诊断的例子,不同人群的error有所不同:
Typical human:3% error

Typical doctor: 1% error

Experienced doctor: 0.7% error

Team of experienced doctors: 0.5% error

那么0.5%的误差即可以作为人类水平误差来代替贝叶斯最优误差。但是实际中根据不同的目的,比如只需要超过一半人类水平就足够用了,那么也可以选1%来作为人类水平误差。所以定义人类水平误差的时候,需要根据目的来确定。

吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

11. Surpassing human-level performance
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)
对于结构化数据,计算机往往做得比单个人类出色,对于自然感知问题,例如视觉、听觉等,机器学习的表现不及人类,不过最新的研究在个别领域也有超过人类水平的。
12. Improving your model performance
吴恩达《深度学习-结构化机器学习项目》1--机器学习策略(1)

提高机器学习模型性能主要要解决两个问题:avoidable bias和variance。方法见上图。