当前位置: 首页 > 科技观察

12RealWorldMachineLearningTruths

时间:2023-03-13 01:57:01 科技观察

简介当你在现实世界中工作时,有几个你必须面对的真相,这是本文的主要内容。上个月,我在密友聚会上做了一个非正式的谈话,我记下了这个话题。这篇文章主要是为那些使用机器学习来构建东西的人写的,而不是那些研究机器学习的人,尽管后者最好倾听这些真相并反思他们的工作。0.你不是科学家是的,虽然你的头衔是“科学家”,包括所有拥有博士学位的人,以及涉足这个行业的学者。然而,机器学习(以及其他AI应用领域,如NLP、视觉、语音……)是一门工程研究学科(与科学研究相对)。你问科学研究和工程研究有什么区别?GeorgeA.Hazelrigg在他的“磨练您的提案写作技巧”中写道:一些科学家学习如何计划他们的研究。很少有工程师是博士级别的工程师。让我们首先尝试了解科学研究与工程研究之间的区别。对我来说,区别是明显的。科学家试图了解自然的本质,以了解其基本性质。为此,科学家们通常会去除无关的影响,深入研究一个非常狭窄的自然元素。这就是我们所说的自然法则:能量和质量是相同的,对于每一个动作都有一个相等和相反的反应,等等。有许多自然法则,它们适用于任何地方和任何时候。工程师遵循自然法则。他们别无选择。他们的目标是设计出在自然界范围内有效的东西。为此,他们必须能够预测系统的行为。因此,对于工程师来说,一个大问题是我们如何理解和预测所有自然法则在任何时候都适用的系统的行为。这是一个整合的问题,和当初找规律一样困难。不可能每时每刻都考虑到所有的自然规律。因此,工程师必须找到方法来确定哪些定律是重要的,哪些可以忽略,以及如何近似那些在时间和空间上都很重要的定律。工程师不只是预测未来。他们在一定程度上根据自己的预测做出决策,因为他们知道自己的预测不可能既准确又确定。理解和应用数学也很重要。这包括概率论、决策论、博弈论、优化、控制论和其他数学在工程决策环境中的应用。它也是工程研究的合法领域。作为ML的研究人员和实践者,您必须为您拥有的数据考虑正确的模型,而不是为您拥有的模型考虑正确的数据集(就像许多研究论文一样)。如果你曾经问过“这个模型的正确数据集是什么”,你就不是在现实世界中。现实世界到底是什么?在现实世界中,您无法选择要处理的数据。在这里,数据定义了问题,而不是相反。有时,在现实世界中,机器学习从业者会创建一个自己的世界作为他们的建模游乐场,从而假装他们是“科学家”,例如“发明”一种语言来做NLP,或者通过简化假设来创建封闭环境来加强学习。这些研究产生了有趣的结果,但它们的范围仅限于它们所在的世界,尽管研究人员喜欢在论文中将它们吹捧为适用于现实世界的东西。在现实世界中,输入的分布更有可能发生变化,长尾“曲线球”无处不在,你并不总能找到答案。当你在现实世界中工作时,有几个事实是你不得不面对的,这就是本文的主要内容。但这个开场白是必不可少的。如果您在现实世界中进行ML研究,那么您是工程师而不是科学家。1.需要工作虽然这听起来很简单,但我很惊讶有多少人,无论是新手还是老手,都被一些听起来很花哨的名字所吸引,或者因为来自DeepMind、OpenAI、斯坦福、麻省理工学院等的名字。如果你的模型确实只能处理它们的数据集并且在它们的环境和资源限制内,那么现实世界将无情地拒绝它。arXiv上的许多结果仅适用于少数数据集,或者仅适用于仅受Google基础设施支持的100兆字节GPU。帮社区一个忙,停止发布那些通用结果。它必须工作。这也是为什么我们今天不考虑在没有卷积神经网络的情况下在计算机视觉中做任何事情,或者为什么我们可以轻松地在序列模型中使用注意力。它必须工作。推测:很多人,尤其是那些刚接触ML的人,被花哨的模型名称冲昏了头脑,迫不及待地想尝试它们,或者写关于它们的博客文章等等。我觉得这就像一个刚开始学习写作的人。他们认为使用华丽的词会使他们的写作更好,但经验告诉他们并非如此。2.无论你多么努力,无论你的优先级是什么,你都无法提高光速,塞进去那么多内容,等等。3.有了足够的推力,猪可以飞得很高,然而,这不一定是个好主意研究生或大型超参数扫描仪可以在巨大的数据中心找到一组超参数,可以使非常复杂的模型运行良好甚至产生优异的结果。但是没有人调试过现实世界中这么大的模型。我在帮助公司管理他们的ML团队时发现的一个秘密——大多数人不知道/不关心超参数调整。4.生活中的某些事情除非亲身经历,否则永远无法完全理解或理解机器学习中的某些事情永远不会被既不构建生产ML模型也不维护它们的人完全理解。再多的课件、再多的moocs、再多的Kaggling也无法让你为此做好准备。部署模型、观察用户与模型的交互、处理代码/模型分解等是无可替代的。5.总是有可能将多个独立的问题聚合成一个复杂的相互依赖的解决方案,这在大多数情况下是个坏主意。端到端学习在理论上听起来是个好主意,但对于大多数部署场景来说,分段优化的流水线架构将继续存在。这并不意味着我们根本不会有端到端系统(语音识别和机器翻译有很好的端到端生产价值解决方案),但在大多数情况下拥有可观察的调试路径将胜过其他选项。6.把一个问题转移到别处,甚至忽略它,比解决它要容易得多。在方法中找出这些细节。在NLP中,很难做到正确的解析。但值得庆幸的是,对于99%的现实世界任务,我们无需解析即可完成。推论:除非迫不得已,否则不要解决问题。7.你总是需要在速度与内存、电池寿命与准确性、公平性与准确性、易用性与可维护性之间进行权衡,...8.一切都比你想象的要复杂类似于价格冲击,也有“努力冲击”在上班。大多数有经验的研究人员和工程师都经历过“努力冲击”,要么是因为他们低估了处理大型数据集的工程问题,要么是因为他们低估了他们正在努力解决的领域的复杂性,要??么是因为他们低估了他们的对手。大多数论文让读者认为事情很简单,而忽略了成功背后的数百万次失败。因此,论文不是研究,而是做研究的结果。为此,你总是可以通过阅读论文来体验做研究的过程。9.你总是准备不足这可以与第8点相结合,事实上,任何没有适当规划的成功远程处理模型都可能因其自身的成功而崩溃。10.一种尺寸并不适合所有人,尽管你的起点很好,但你的模型会不断犯下令人尴尬的错误,而长尾故障模式会困扰你。值得庆幸的是,对于许多非关键的ML部署来说,这不是什么大问题。在最坏的情况下,它会变成一条搞笑的推文。但是,如果您在医疗保健或其他高风险情况下工作,ML部署可能会因此成为一场噩梦。11.每一个旧想法都会以不同的名称和不同的形式再次提出来,无论它是否有效,Schimdhuber可能会提出一个更大的观点。没有人听他的话,我们也像他一样,用旧酒装新瓶,被迫重复虚假历史。12、完美的实现不是因为没有什么可以添加,而是因为没有什么可以去掉。生活中的一切都是如此,现实世界中的机器学习也是如此。唉,我们的会议回顾了他们对“新奇”的嗜好,并产生了一个不需要的arxi-垃圾邮件,其中包含大量原本不需要存在的垃圾邮件。我认为这种情况不会改变,除非做“科学”鼓励推广有效的东西,而不是新的东西。