深入理解吴恩达深度学习 第三部分03 第一节ML策略

第三门课 结构化机器学习项目(Structuring Machine Learning Projects)

第一周 机器学习(ML)策略(1)(ML strategy(1))

1.1 什么是机器学习策略?

  • 什么是机器学习策略:机器学习策略是一些分析机器学习问题的方法,可以指引我们朝着最有希望的方向前进。本节主要介绍吴恩达老师在搭建和部署大量深度学习产品时学到的经验和教训,些策略能帮助我们提高效率,让我们的深度学习系统更快投入实用。

1.2 正交化(Orthogonalization)

搭建建立机器学习系统的挑战之一是,你可以尝试和改变的东西太多太多了。包括,比如说,有那么多的超参数可以调。老师提到到,那些效率很高的机器学习专家有个特点,他们思维清晰,对于要调整什么来达到某个效果,非常清楚,这个步骤我们称之为正交化。

  • 什么是正交化? 老师用调节模拟电视机水平,垂直,梯度失真,聚焦位置等旋钮,每个旋钮分别单次调节能够快速调节好电视显示水平的例子,说明了什么是正交化。正交化是一种在改变算法的某一指标或者某一部分的时候,认为这个改变不会给系统其它指标或者其它部分带来影响的参数调整原则。
  • 什么是深度学习调参的正交化? 其实就是列出所有的参数,在其他超参数不变的情况下,只改变其中一个超参数的值进行模型训练,看模型训练效果,并对模型进行改进。

1.3 单一数字评估指标(Single number evaluation metric)

无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估指标,你的进展会快得多,它可以快速告诉你,新尝试的手段比之前的手段好还是差。所以当团队开始进行机器学习项目时,我经常推荐他们为问题设置一个单实数评估指标。

  • 为什么要设置单一数字指标?课程里老师用A,B模型的查准率和查全率这两个指标并不能直观判断A,B指标哪个更好的例子,然后给出了结合两个指标的F1指标: F 1 = 2 1 P + 1 R F1=\frac{2}{\frac{1}{P} + \frac{1}{R}} F1=P1+R12
    说明使用单个指标能够让你的优化目标更加明确,如果存在多个指标,尝试使用均值的方式转换为单个指标考虑。

1.4 满足和优化指标(Satisficing and optimizing metrics)

如果你需要顾及多个指标,比如说,有一个优化指标,你想尽可能优化的,然后还有一个或多个满足指标,需要满足的,需要达到一定的门槛。现在你就有一个全自动的方法,在观察多个成本大小时,选出"最好的"那个。老师用运算时间和准确率衡量的例子,作出运算结果必须小于100ms时候,再选择准确率最高的模型的决定,这个例子说明了,有些指标必须满足时候,优先考虑满足这个指标,然后再考虑满足其他指标来选择模型。

1.5 训练/开发/测试集划分(Train/dev/test distributions)

设立训练集,开发集和测试集的方式大大影响了你或者你的团队在建立机器学习应用方面取得进展的速度。同样的团队,即使是大公司里的团队,在设立这些数据集的方式,真的会让团队的进展变慢而不是加快,我们看看应该如何设立这些数据集,让你的团队效率最大化。

怎么设立数据集?

  • 设立数据集要尽量让开发/测试/生产数据满足同一分布。老师在举一个团队在做使用中等收入的人群的邮政编码来对优质借款人分类的项目时,产品经理在项目进行三个月之后,改为让团队使用低收入人群邮政编码去预测,团队当然很崩溃,结果当然很不理想(工作又得重做)。
  • 设立数据集之后,尽量使用单一指标,因为你一旦建立了这样的开发集和指标,团队就可以快速迭代,尝试不同的想法,跑实验,可以很快地使用开发集和指标去评估不同分类器,然后尝试选出最好的那个。

1.6 开发集和测试集的大小(Size of dev and test sets)

  • 大数据量(10^6以上的时候),开发:测试:验证= 99:1:1
  • 小数量的时候,开发:测试=60:20:20

1.7 什么时候该改变开发/测试集和指标?(When to change dev/test sets and metrics)

我想你处理机器学习问题时,应该把它切分成独立的步骤。

  1. 第一步就是设定目标。所以要定义你要瞄准的目标,然后根据自己的需要写出损失函数。
  2. 第二步修改损失函数,也就是根据实际需要添加权重,平均,范式等达到减小偏差和减小方差的过程。
  • 例如:在逼近目标的时候,也许你的学习算法针对某个长这样的成本函数优化, J = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) J=\frac{1}{m}\sum\limits_{i=1}^{m}{L({{\hat y}^{(i)}},{{y}^{(i)}})} J=m1i=1mL(y^(i),y(i)),你要最小化训练集上的损失。你可以做的其中一件事是,修改这个,为了引入这些权重,也许最后需要修改这个归一化常数,即:

J = 1 ∑ w ( i ) ∑ i = 1 m w ( i ) L ( y ^ ( i ) , y ( i ) ) J=\frac{1}{\sum{{{w}^{(i)}}}}\sum\limits_{i=1}^{m}{{{w}^{(i)}}L({{\hat y}^{(i)}},{{y}^{(i)}})} J=w(i)1i=1mw(i)L(y^(i),y(i))
3. 如果出现开发集和测试集匹配不好的情况,请修改开发或者测试集。

1.8 为什么是人的表现?(Why human-level performance?)

在过去的几年里,更多的机器学习团队一直在讨论如何比较机器学习系统和人类的表现,为什么呢?

我认为有两个主要原因:

  1. 首先是因为深度学习系统的进步,机器学习算法突然变得更好了。在许多机器学习的应用领域已经开始见到算法已经可以威胁到人类的表现了。

  2. 其次,事实证明,当你试图让机器做人类能做的事情时,可以精心设计机器学习系统的工作流程,让工作流程效率更高,所以在这些场合,比较人类和机器是很自然的,或者你要让机器模仿人类的行为。
    在这里插入图片描述

  3. 贝叶斯最优错误率:有时写作Bayesian,即省略optimal,就是从 x x x y y y映射的理论最优函数,永远不会被超越.所以你们应该不会感到意外,这紫色线,无论你在一个问题上工作多少年,你永远不会超越贝叶斯错误率,贝叶斯最佳错误率。

  4. 贝叶斯最优错误错误率产生的原因:深度学习超越了人类的表现,人类已经很难再指导深度学习往继续优化的道路上走了。

1.9 可避免偏差(Avoidable bias)

既然有贝叶斯最优错误率,,那么我们就需要考虑如何接近这个最优错误率。例如:

错误率贝叶斯实际
训练偏差7.5,方差6偏差8,方差8
测试偏差7.5,方差6偏差8.5,方差9

那么为了尽可能的接近最优错误率,我们可以往降低偏差和方差方向走。

  1. 训练时如果降低偏差,只有0.5的提升空间。
  2. 训练时如果降低方差,有2的提升空间,因此我们应该往降低方差方向走。

1.10 理解人的表现(Understanding human-level performance)

我们在训练和测试的过程中往往不知道贝叶斯估计值到底在哪里,或者说我达到某个训练效果的时候,还能有多少进步空间?接下来系统该如何进行调整?

医生类别错误率(%)
普通5
有经验医生2
经验丰富医生1
专家0.8
专家团队0.5

视频中举了X射线判断照片中是不是有人有病的例子,我们应该明白,贝叶斯优化的值应该比0.5小,因此
我们应该以0.5作为优化目标。

总结:人的最佳表现说明:我们在没有先前的任何训练时候,就能够知道贝叶优化比人的最佳表现还好,机器学习能够达到的水平最少能够超过人类。否则,模型还有提升空间!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值