33. 为什么我们要比较人类表现水平

许多机器学习系统旨在自动化人类已经做的很完美的那些事情,例子包括:图像识别、语言识别、邮箱垃圾邮件分类等。经过发展,学习算法也有了长足的进步,现在我们的算法在越来越多类似的任务中的表现都超过了人类的表现水平(Human-Level Performance)。

此外,如果你使用机器学习正在努力完成一项人类非常擅长的工作,那么建立机器学习系统相对容易的原因有如下几个:

  1. 能够轻松地获取人类标签数据:例如:由于人们可以很轻易的识别出猫咪的图片来,那么,人们可以很轻易的为你的学习算法提供高精度的标签。
  2. 能够借鉴人类直觉来进行误差分析:假设一个语音识别算法远比不上人类的表现。比如,算法将音频片段转录拼写为 “This recipe calls for a pear of apples” 其实算法将 “pair” 错误转录为 “pear”。你可以利用人类的直觉,试图去理解一个人的话,他是用什么信息来去获得正确的转录信息的,并将其用来修改学习算法。
  3. 能够利用人类水平表现来估计最佳误差率并设置好“期望误差率”:假设你的学习算法在目标任务中达到了 10% 的误差水平,但在同样的任务中,人的误差只有 2% 或者更低。然后我们就知道了最优误差率是 2% 或者更低,也就是说可避免偏差至少有 8% 。因此,你应该尝试那些能够减少偏差的技巧。

尽管第三项听起来好像不是很重要,但我发现有一个合理且可实现的目标误差率有助于加速团队的进度。知道你的算法具有高可避免偏差是非常有价值的,因为它为我们提供了一个可尝试去优化的选项。

当然,对于那些人类来说本来就不是很擅长的任务。比如,为你推荐书籍、或者在网页上为特定用户显示特定的广告、或者预测股市走势。计算机的表现已经远远超过了大部分人的能力表现,对于这些任务来说,我们在建立机器学习系统时有以下问题:

  1. 获取标签数据相对困难:比如,负责为样本贴标签的人很难用“最佳”书籍标签去标注用户数据集。如果你利用销售图书的网站和应用的话,那还可以通过向用户展示图书并统计他们购买的内容来获取数据。如果你不经营类似的网站,那么你可能需要找到更多有创意的方法才能获取到数据了。
  2. 无法指望人类的直觉:例如,几乎没人能够准确预测股票市场。因此,如果我们的股票预测算法没能比随机猜测来的更好,那么我们也很难去搞清楚应该如何改进它。
  3. 很难去定义最佳误差率和期望误差率:假设你已经设计出一个不错的图书推荐系统。你怎么知道在没有人类基准表现水平的情况下它的性能还能提高多少?