Skip to content

Latest commit

 

History

History
101 lines (51 loc) · 9.62 KB

machine-learning-projects-manage.md

File metadata and controls

101 lines (51 loc) · 9.62 KB

为什么机器学习项目如此难以管理?

原文:www.kdnuggets.com/2020/02/machine-learning-projects-manage.html

评论

Lukas Biewald——Weights and Biases 的创始人/首席执行官

我看过很多公司尝试部署机器学习——有些取得了巨大的成功,有些则失败得非常惨烈。一个共同点是,机器学习团队在设定目标和期望方面遇到困难。这是为什么呢?

1. 很难事先判断什么是困难的,什么是简单的。

是击败卡斯帕罗夫下棋更难,还是拿起并移动棋子更难?计算机早在二十多年前就击败了世界冠军棋手,但可靠地抓取和移动物体仍然是一个未解决的研究问题。人类不擅长评估什么对 AI 来说会很难,什么会很容易。即使在同一个领域,性能也可能有很大差异。预测情感的准确度是什么?在电影评论中,有很多文本,作者往往对自己的观点非常明确,如今期望的准确率是 90%到 95%。在 Twitter 上,两个人可能仅在 80%的时间内就某条推文的情感达成一致。对于关于某些航空公司的推文,通过始终预测情感为负面,可能能够达到 95%的准确率。

在项目的早期阶段,指标也可能会迅速增加,然后突然碰到瓶颈。我曾经举办过一个 Kaggle 比赛,成千上万的人在全球范围内竞争我的数据。在第一周,准确率从 35%上升到 65%,但在接下来的几个月中,它从未超过 68%。68%的准确率显然是数据在最好的、最新的机器学习技术下的极限。那些参加 Kaggle 比赛的人为了达到 68%的准确率付出了极大的努力,我相信他们觉得这是一个巨大的成就。但对于大多数用例来说,65%与 68%之间的差异是完全无法区分的。如果那是一个内部项目,我肯定会对结果感到失望。

我的朋友 Pete Skomoroch 最近告诉我,作为一名从事机器学习的数据科学家,进行工程立会是多么令人沮丧。工程项目通常会有进展,但机器学习项目可能会完全停滞。花一周时间进行数据建模可能完全没有任何改进,这种情况是可能的,甚至很常见。

2. 机器学习容易以意想不到的方式失败。

只要你有大量的训练数据并且生产环境中的数据与训练数据非常相似,机器学习通常能表现良好。人类在从训练数据中泛化方面非常出色,但我们对这一点的直觉非常糟糕。我用一个相机和一个基于 ImageNet 数百万张图像训练的视觉模型构建了一个小机器人,这些图像是从网上获取的。我在机器人相机上预处理了图像,使其看起来像来自网上的图像,但准确性远低于我预期的水平。为什么?网上的图像往往会把目标框起来。我的机器人可能不会像人类摄影师那样直接看着物体。人类可能甚至不会注意到这种差异,但现代深度学习网络却受到了很大的影响。有办法处理这种现象,但我只是因为性能下降非常明显,花了很多时间调试。

更棘手的是那些微妙的差异,这些差异导致性能下降且难以察觉。训练在《纽约时报》上的语言模型不适合社交媒体文本。这是我们可以预期的。然而,显然,训练于 2017 年文本的模型在处理 2018 年写的文本时性能下降。上游分布随着时间以多种方式发生变化。欺诈模型在对手适应模型行为时完全崩溃。

3. 机器学习需要大量相关的训练数据。

每个人都知道这一点,然而这依然是一个巨大的障碍。计算机视觉可以做出惊人的事情,只要你能够收集和标注大量的训练数据。对于某些使用案例,数据是某些业务过程的免费副产品。这是机器学习往往表现非常好的地方。对于许多其他使用案例,训练数据是极其昂贵且难以收集的。很多医疗使用案例看起来非常适合机器学习——做出关键决策时有许多微弱信号和明确结果——但由于重要的隐私问题,数据被锁定或最初没有被一致地收集。

很多公司不知道从哪里开始投资于收集训练数据。这是一个重大工作,而且很难预先预测模型的表现如何。

处理这些问题的最佳实践是什么?

1. 非常注意你的训练数据。

查看算法错误分类了它曾训练过的数据的情况。这些几乎总是标签错误或奇怪的边缘案例。不管怎样,你真的需要了解这些情况。让所有从事模型构建的人员查看训练数据,并自己标注一些训练数据。对于许多使用案例,模型的表现很可能不会超过两个独立的人的一致率。

2. 立即使某些东西从头到尾正常工作,然后一次改进一件事。

从可能有效的最简单方案开始并将其部署。你将从中学到很多。在过程中的任何阶段添加的复杂性通常在研究论文中会改善模型,但在现实世界中却很少见效。为每一项额外的复杂性提供合理的理由。

将产品交到最终用户手中可以帮助你早期了解模型的表现如何,并可能暴露出一些关键问题,例如模型优化的目标与最终用户需求之间的矛盾。这也可能促使你重新评估你所收集的训练数据。快速发现这些问题要好得多。

3. 寻找优雅的方式来处理算法不可避免的失败情况。

几乎所有的机器学习模型都有一定的失败率,如何处理这些失败至关重要。模型通常有一个可靠的置信度评分可以使用。通过批处理流程,你可以建立人工干预系统,将低置信度的预测发送给操作员,从而使系统在端到端的工作中保持可靠,并收集高质量的训练数据。在其他用例中,你可能能够以某种方式展示低置信度的预测,从而标记潜在的错误或减少对最终用户的困扰。

这是一个未能优雅处理的失败示例。微软未能预测到他们的 Tay 机器人会多快从 Twitter 上的恶意用户那里学到不良行为。

下一步?‍

机器学习最初的目标主要是智能决策,但我们越来越多地将机器学习应用于我们使用的产品中。随着我们越来越依赖机器学习算法,机器学习不仅仅是一个研究主题,它也成为了一个工程学科。我对能够构建全新类型的产品感到非常兴奋,但对缺乏工具和最佳实践感到担忧。因此,我创办了一家名为Weights and Biases的公司来帮助解决这个问题。如果你对了解更多感兴趣,可以查看我们正在做的事情。

感谢Yan-David ErlichJames ChamNoga Leviner以及Carey Phelps阅读早期版本,并感谢Peter Skomoroch让我开始思考这个话题。

原文。已获许可转载。

个人简介: 卢卡斯·比沃尔德 是 Weights & Biases 的创始人,曾是 Figure Eight(前身为 CrowdFlower)的创始人。

相关内容:


我们的前 3 个课程推荐

1. 谷歌网络安全证书 - 快速进入网络安全职业生涯

2. 谷歌数据分析专业证书 - 提升你的数据分析技能

3. 谷歌 IT 支持专业证书 - 支持你组织的 IT 需求


更多相关话题