吴恩达 深度学习系列--结构化机器学习项目(Structuring Machine Learning Projects)(ML strategy(1))--07

1.1 为什么是ML策略?(Why ML Strategy?)

  • 如何构建你的机器学习项目也就是说机器学习的策略。如何更快速高效地优化你的机器学习系统。那么,什么是机器学习策略呢?
    在这里插入图片描述
    事实上,机器学习策略在深度学习的时代也在变化,因为现在对于深度学习算法来说能够做到的事情,比上一代机器学习算法大不一样。希望这些策略能帮助你们提高效率,让你们的深度学习系统更快投入实用。

1.2 正交化(Orthogonalization)

  • 要弄好一个监督学习系统,你通常需要调你的系统的旋钮。
    确保四件事情,首先,你通常必须确保至少系统在训练集上得到的结果不错,所以训练集上的表现必须通过某种评估,达到能接受的程度,对于某些应用,这可能意味着达到人类水平的表现,但这取决于你的应用,我们将在下周更多地谈谈如何与人类水平的表现进行比较。但是,在训练集上表现不错之后,你就希望系统也能在开发集上有好的表现,然后你希望系统在测试集上也有好的表现。在最后,你希望系统在测试集上系统的成本函数在实际使用中表现令人满意。

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

  • 但简而言之,查准率的定义是在你的分类器标记为猫的例子中,有多少真的是猫。所以如果分类器有95%的查准率,这意味着你的分类器说这图有猫的时候,有95%的机会真的是猫。查全率就是,对于所有真猫的图片,你的分类器正确识别出了多少百分比。实际为猫的图片中,有多少被系统识别出来?如果分类器查全率是90%,这意味着对于所有的图像,比如说你的开发集都是真的猫图,分类器准确地分辨出了其中的90%。
    在机器学习文献中,结合查准率和查全率的标准方法是所谓的F1分数,F1分数的细节并不重要。但非正式的,你可以认为这是查准率P和查全率R的平均值。正式来看,分数的定义是这个公式:
    在这里插入图片描述

  • 有一个单实数评估指标真的可以提高你的效率,或者提高你的团队做出这些决策的效率。

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

  • 总结一下,如果你需要顾及多个指标,比如说,有一个优化指标,你想尽可能优化的,然后还有一个或多个满足指标,需要满足的,需要达到一定的门槛。现在你就有一个全自动的方法,在观察多个成本大小时,选出"最好的"那个。

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

  • training set:顾名思义,是用来训练模型的。因此它占了所有数据的绝大部分。
  • development set:用来对训练集训练出来的模型进行测试,通过测试结果来不断地优化模型。
  • test set:在训练结束后对训练出的模型进行一次最终的评估所用的数据集。
  • 为了避免开发集和测试集的数据是不同的分布,我建议的是你将所有数据随机洗牌,放入开发集和测试集,所以开发集和测试集都有来自八个地区的数据,并且开发集和测试集都来自同一分布,这分布就是你的所有数据混在一起。
  • 所以我建议你们在设立开发集和测试集时,要选择这样的开发集和测试集,能够反映你未来会得到的数据,认为很重要的数据,必须得到好结果的数据,特别是,这里的开发集和测试集可能来自同一个分布。所以不管你未来会得到什么样的数据,一旦你的算法效果不错,要尝试收集类似的数据,而且,不管那些数据是什么,都要随机分配到开发集和测试集上。因为这样,你才能将瞄准想要的目标,让你的团队高效迭代来逼近同一个目标,希望最好是同一个目标。

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

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

在这里插入图片描述

  • 有一个评估指标和开发集让你可以更快做出决策,判断算法A还是算法B更优,这真的可以加速你和你的团队迭代的速度。所以我的建议是,即使你无法定义出一个很完美的评估指标和开发集,你直接快速设立出来,然后使用它们来驱动你们团队的迭代速度。如果在这之后,你发现选的不好,你有更好的想法,那么完全可以马上改。对于大多数团队,我建议最好不要在没有评估指标和开发集时跑太久,因为那样可能会减慢你的团队迭代和改善算法的速度。什么时候需要改变你的评估指标和开发测试集,希望这些方针能让你的整个团队设立一个明确的目标,一个你们可以高效迭代,改善性能的目标。

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

  • 我们来看几个这样的例子,我看到很多机器学习任务中,当你在一个问题上付出了很多时间之后,所以轴是时间,这可能是很多个月甚至是很多年。在这些时间里,一些团队或一些研究小组正在研究一个问题,当你开始往人类水平努力时,进展是很快的。但是过了一段时间,当这个算法表现比人类更好时,那么进展和精确度的提升就变得更慢了。也许它还会越来越好,但是在超越人类水平之后,它还可以变得更好,但性能增速,准确度上升的速度这个斜率,会变得越来越平缓,我们都希望能达到理论最佳性能水平。随着时间的推移,当您继续训练算法时,可能模型越来越大,数据越来越多,但是性能无法超过某个理论上限,这就是所谓的贝叶斯最优错误率(Bayes optimal error)。所以贝叶斯最优错误率一般认为是理论上可能达到的最优错误率,就是说没有任何办法设计出一个x到y的函数,让它能够超过一定的准确度。

1.9可避免变差(Avoidable bias)

  • 使用人类水平错误率来替代贝叶斯错误率,贝叶斯错误率或者对贝叶斯错误率的估计和训练错误率之间的差值称为可避免偏差,你可能希望一直提高训练集表现,直到你接近贝叶斯错误率,但实际上你也不希望做到比贝叶斯错误率更好,这理论上是不可能超过贝叶斯错误率的,除非过拟合。而这个训练错误率和开发错误率之前的差值,就大概说明你的算法在方差问题上还有多少改善空间。
  • 在这里插入图片描述

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

  • 以前你们比较的是训练错误率和0%,直接用这个值估计偏差。相比之下,在这个视频中,我们有一个更微妙的分析,其中并没有假设你应该得到0%错误率,因为有时贝叶斯错误率是非零的,有时基本不可能做到比某个错误率阈值更低。所以在之前的课程中,我们测量的是训练错误率,然后观察的是训练错误率比0%高多少,就用这个差值来估计偏差有多大。而事实证明,对于贝叶斯错误率几乎是0%的问题这样就行了,例如识别猫,人类表现接近完美,所以贝叶斯错误率也接近完美。所以当贝叶斯错误率几乎为零时,可以那么做。但数据噪点很多时,比如背景声音很嘈杂的语言识别,有时几乎不可能听清楚说的是什么,并正确记录下来。对于这样的问题,更好的估计贝叶斯错误率很有必要,可以帮助你更好地估计可避免偏差和方差,这样你就能更好的做出决策,选择减少偏差的策略,还是减少方差的策略。

1.11 超越人的表现(Surpassing human-level performance)

1.12 改善你模型的表现(Improving your model performance)

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值