为什么我们要比较人类水平的表现
很多机器学习系统旨在自动化人类做的很好的事情。例如图像识别,语音识别,以及垃圾邮件分类。学习算法也提高了很多,我们现在能够在越来越多的任务中超越人类的表现。
此外,如果你正在试图做一项人类可以完成很好的任务,那么构建机器学习系统较为容易,有如下几个原因:
- 容易从人类标签获取数据。例如,由于人们可以很好的识别猫图,人们为学习算法提供高精度的标签较为容易。
- 错误分析可以利用人类的直觉。假设一个语音识别算法比人类识别更差。假设它错误的将一段音频剪辑转录为“This recipe calls for a pear of apples”,将“pair”错称为“pear”。你可以利用人类的直觉,并试图去理解一个人用什么信息去获取正确的转录,并用这些知识来获取学习算法。
- 使用人类级别的性能去评估最优错误率并设置“期望错误率”。假设你的算法在一项任务中取得了10%的错误率,但是人的错误率达到2%。然后我们知道最优错误率是2%甚至更低,可避免偏差至少8%。因此,你应该尝试减少偏差的方法。
即使第三项听起来没有那么重要,但我发现有一个合理且可实现的目标错误率有助于加速团队的进度。知道你的算法有高可避免偏差是非常有价值的,并打开了一个可供选择的选项菜单。
有一些甚至人类都不能很好胜任的任务。例如,挑选一本书推荐给你;或挑选一条广告在网站上显示给用户;或预测股市。计算机已经超过大多数人在这些任务上的表现。这些应用,我们会遇到以下问题:
- 很难获得标签。例如,标注者很难用“最佳”书签推荐标注用户数据库。如果你使用网站或app售书,你可以通过向用户展示图书并查看他们的购买内容来获得数据。如果你不在这样一个网站上操作,你需要去寻找更有创意的方式去获取数据。
- 很难指望人类的直觉。例如,几乎没有人能预测股市。所以,如果你我们的股票预测算法并不比随机猜测要好,那么很难知道该如何改进它。
- 很难知道最佳错误率和合理的期望错误率是多少。假设你已经有一个做的很好的图书推荐系统。你如何知道在没有人类baseline的情况下它还能提高多少?