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