您的当前位置:首页正文

Structuring Machine Learning Pro

来源:要发发知识网

Introduction to ML strategy

在这一节主要介绍了为什么需要ML strategy以及什么是orthoganization。当我们进行ML调优的时候有非常多的可选项,比如改变Regularization系数,增加数据量,调整算法,调整网络深度或者结构等等,那么如何选择策略,如何能高效地实现我们的调优目标,这就需要了解机器学习调优策略,而这就涉及一个orthoganization的概念,即先把不同目的的策略进行分组(类似电视旋钮,每个旋钮实现不同的调整目的),然后分为两步:1,先确定目前的存在问题是什么,是bias问题还是variance问题,是训练集的问题,还是dev集的问题;2,根据问题再选择相应的策略。

Setting up your goal

Single number evaluation

这一小节主要讲需要选择一个单一的评估指标,以便于我们可以快速的判断算法的优劣,这样可以大大提高我们调优的效率。作者举了两个例子,一个是通过使用F1-score来同时权衡准确率和召回率;另一个是通过平均值来评价算法的整体性能。

Satisficing and Optimizing

有的时候我们的确需要权衡不同的指标,也很难把这些指标都整合成一个单一的值,这时候我们就可以引入satisficingoptimizing的概念,satisficing意味着该指标只需要达到某个阈值即可,不需要持续地优化;optimizing意味着该指标需要持续地优化,通过定义目标函数来实现迭代优化。
作者首先举了个例子如下:

satisficing and optimizing example
  • 如上图,running time这个指标就可以作为satisficing指标,只需要小于100ms就可以;而accuracy就是optimizing指标,需要通过优化函数来持续优化

Train/dev/test set

  • 首先要保证所有train, dev and test set都是从同一个distribution得来的数据,一般情况下,就是通过混合所有的数据,shuffle之后,随机按比例分的。
  • 另外,数据最好是来源于实际用于预测的数据,比如要鉴别网络上的图片,那么所有traing/dev/test set最好也都是从网络上获取的图片
  • 至于分割的比例,当前使用神经网络且数据量较大时,通常我们不需要很大的dev/test set, 比如我们可以将98%的数据用于training set, 而dev, test set分别分配1%的数据
  • 有的时候我们还需要更改我们的objective function来实现特定的目的,比如在一个图片分类器中,可以针对色情图片进行更多的惩罚,从而使得算法可以更好地过滤掉色情图片。

Comparing human level performance

  • 之所以要与human level performance相比较,就是在于human level performance往往已经非常接近Bayes error(也叫Bayes optimal error, 是理论上能达到的最优水平)的水平了,所以我们往往通过跟human level performance去比较来判断算法还有多大的优化空间
  • Avoidable bias,顾名思义就是可以避免的偏差,即Bayes error和实际误差之间的差距。
  • 针对究竟什么是human level performance, 不同的地方或者使用场景,其含义也可能不同,但是如果想要将human level performance作为Bayes error的近似值时,我们应该尽可能取人类能达到的最好水平作为proxy of Bayes error,当我们的error rate在human level performance之下时我们就可以通过avoidable bias来评估算法的好坏,但是当超越了human level performance之后,我们就需要其它的评估方式了。