其他分享
首页 > 其他分享> > 深度学习笔记(二十五)结构化机器学习项目之机器学习策略1

深度学习笔记(二十五)结构化机器学习项目之机器学习策略1

作者:互联网

文章目录

一、为什么用机器学习策略?

我们训练一个模型时,可以从很多方面对模型进行优化
在这里插入图片描述
但是,如果是盲目选择方案进行优化,可能的结果是经过几个月的努力,发现自己努力的方向出现了偏差,白费功夫。那么简单来说,机器学习策略就是指引我们朝着更有希望的方向前进。

二、正交化Orthogonalization

举两个例子

在这里插入图片描述
尽量使用正交化控制对模型进行优化。

三、单一数字评估指标

在这里插入图片描述

如选用两个指标判断哪个模型好,是不可取的。有一种折衷的方法,取两者的调和平均值作为指标F1 Score
F 1 S c o r e = 2 1 P + 1 R . F1Score=\frac{2}{\frac{1}{P}+\frac{1}{R}}. F1Score=P1​+R1​2​.

多指标难以抉择哪个算法更好,而平均值就直观多了,再举一个例子如下:
在这里插入图片描述

四、满足指标和优化指标

在这里插入图片描述
简单总结一下满足指标和优化指标(这是两个名词!)

举个例子,语音唤醒设备中

五、训练集、开发集、测试集的划分

给一个机器学习团队开发集和单一指标,他们可以很快找到最佳的模型和方案。但是这里有个坑,开发集和测试集如果来自不同分布,很可能做无用功,比如下图中的例子:
在这里插入图片描述
描述形象一点,开发人员会说:“你给我们开发集,让我们尽可能准确地瞄准靶心打,现在你们把靶心移动到另一个位置,这合理吗?”
再举个例子,一个团队开发的系统是预测中收入人群是否有能力偿还贷款,而最后给入的数据竟然是低收入人群,那么,靶心给人家移走了,还怎么准确预测呢?
在这里插入图片描述

六、开发集和测试集的大小

前面的学习我们知道一个重要的知识:
开发集和测试集必须来自同一分布!!!
现在考虑开发集和测试集的规模需要多大?

划分数据集的传统法则

大数据下的数据集划分

没有test的情况
数据集 = 训练集 + 开发集

七、什么时候改变开发集和测试集的指标

这里老师举了比较现实的例子,在猫图像的分类中,有A B两种算法
在这里插入图片描述
明显A算法的误差更小是吧,但是A中的3%里把色情图片识别为猫,那么可想而知,在用户的推荐中会收到色情图片的推荐。这合理吗?这离谱了对吧。所以从可用性的角度,会选择B算法。
一般计算Error公式: 1 m d e v ∑ i = 1 m d e v L ( y p r e d ( i ) ≠ y ( i ) ) \frac{1}{m_{dev}}\sum_{i=1}^{m_{dev}}L(y_{pred}^{(i)}\neq y^{(i)}) mdev​1​∑i=1mdev​​L(ypred(i)​​=y(i))
但是这公式对色情和非色情图片一视同仁,于是我们采用加权的方式求Error
x ( i ) ∈ x^{(i)} \in x(i)∈ non-pron, w ( i ) = 1 w^{(i)}=1 w(i)=1; x ( i ) ∈ x^{(i)} \in x(i)∈ pron, w ( i ) = 10 w^{(i)}=10 w(i)=10
E r r o r = 1 ∑ i = 1 m d e v w ( i ) ∑ i = 1 m d e v w ( i ) L ( y p r e d ( i ) ≠ y ( i ) ) Error=\frac{1}{\sum_{i=1}^{m_{dev}}w^{(i)}} \sum_{i=1}^{m_{dev}} w^{(i)}L(y_{pred}^{(i)}\neq y^{(i)}) Error=∑i=1mdev​​w(i)1​i=1∑mdev​​w(i)L(ypred(i)​​=y(i))
新定义的评估指标可以更符合实际地告诉我哪个算法更合适!

正交化这样一个过程,分为两步
在这里插入图片描述

在另一个例子中,如果你用的指标和开发测试集不符合实际应用,是时候改变你的指标或开发测试集了。
在这里插入图片描述

八、什么是人的表现?

为什么对比人和机器学习系统?

在这里插入图片描述
绿色的虚线称为贝叶斯最优误差率,是算法所能达到的最高准确度,不能再有所提升了。
为什么机器学习超过人的行为后会大幅度减速发展?

在这里插入图片描述
比较ML和人的表现的好处:
人类擅长做一些任务(比如:肉眼识别猫等),这时ML比不上人类,我们可以做如下工作:

九、可避免偏差

在这里插入图片描述
引入方差和偏差的知识点:

我们认为人是擅长肉眼识别图像的,将人的表现误差近似看作贝叶斯误差率,即一个最优的标准,训练集误差就会尽可能去靠近贝叶斯误差率,这一段距离称作可避免偏差。将开发集误差尽可能靠近训练集误差,实质上是降低方差

这一部分的内容将帮助我们通过人类水平错误率、贝叶斯错误率估决定不同场景下我们应该选择什么优化策略——是使用避免方差策略还是避免偏差策略。

十、理解人的表现

在这里插入图片描述

在这里插入图片描述
当ML接近人类水平时,很难判断到底改进偏差好还是改进方差好,上面的例子中慎重选择贝叶斯误差率发现改进偏差更适合。

十一、超越人的表现

当专家团队误差率0.5%,训练集误差率0.6%时,我们将0.5%作为贝叶斯误差率的估计值,这样问题不大。
当专家团队误差率0.5%,而训练集误差率0.3%时,怎么办怎么办?贝叶斯误差率可能是0.2%,可能是0.1%,甚至更小。那么现有的一些工具就无法指示我们应该从偏差还是方差等方面进行优化了。

在哪些问题上ML可以超过人的表现呢?

这些方面显而易见,机器做得比人好,现在是不是电脑给你推荐的书籍和视频比身边最亲近的人推荐的更符合你胃口?是不是甚至比你自己网上搜索查找得到的结果更好?机器可以访问到大量后台数据,这些数据可能比所有人类所能访问到还多得多,这也是为什么ML可以在这些场景优于人类表现。
需要注意的是,上面四个例子都是从结构化数据中学习来的,他们不是自然感知问题,比如计算机视觉、自然语言处理,人类在自然感知问题上做得非常好,所以机器也很难超越。

在最后吴恩达老师期待大家可以搭建出超越人类的深度学习系统 (/奥力给表情)

十二、改善模型表现

我们学习了方差偏差过大的原因,正交化,如何设立开发集和测试集,用人类水平误差估计贝叶斯误差,如何估计可避免偏差和方差。现在我们将他们组合起来,形成一套指导方针!

监督学习的两点基本假设

来来来 come on!!!干货来了,将之前学到的知识总结成一套经验法则,看看如何降低可避免偏差和方差。
在这里插入图片描述
这一部分优化经验在课程中反复提及,所以说真的就是时不时就巩固了一遍,在优化我们自己的模型时,从这几个方面入手,会有不小的帮助!

吴恩达老师说这一部分机器学习策略的知识容易上手,但是难以精通。如果能系统全面地应用这一课的概念,那你已经比现有的大多数机器学习团队更高效、更系统、更有策略地提高机器学习系统的性能。

标签:学习策略,机器,偏差,指标,方差,误差率,贝叶斯,学习
来源: https://blog.csdn.net/qq_16763983/article/details/113445554