专栏名称: 产业智能官
用新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
目录
相关文章推荐
财宝宝  ·  这是真客户,而且以后要钱也靠谱。@财happ ... ·  15 小时前  
广州买楼  ·  终于止跌!广州房价,见到曙光了? ·  2 天前  
财宝宝  ·  //@海岛上面没椰子:全员狠银-202502 ... ·  2 天前  
51好读  ›  专栏  ›  产业智能官

【机器学习】12个现实世界中的机器学习真相

产业智能官  · 公众号  ·  · 2020-02-05 07:38

正文

原创: ronghuaiyang AI公园


作者: Delip

编译:ronghuaiyang


导读

当你在现实世界中工作时,有几个事实是你必须面对的,这也是本文的主要内容

上个月,我在一个亲密的朋友聚会上做了一个非正式的演讲,我把这个题目记下来。 这篇文章主要是写给那些使用机器学习来构造东西的人,而不是那些研究机器学习的人,尽管后一组人会很好地倾听这些真理并反省他们的工作。

0. 你不是一个科学家

是的,虽然你们的 title 是“科学家”,包括你们所有拥有博士学位的人,以及涉足这个行业的学者。 但是,机器学习(以及其他人工智能应用领域,如 NLP、视觉、语音……)是一门工程研究学科(与科学研究相对)。

你会问,科学研究和工程研究有什么区别? George A. Hazelrigg 在他的“HONING YOUR PROPOSAL WRITING SKILLS”中写道:

一些科学家会学习如何制定研究计划。 很少有工程师是博士级别的工程师。 让我们先试着理解科学研究和工程研究之间的区别。 对我来说,区别很明显。 科学家力图了解大自然的本质,以了解其根本的本质。 为了做到这一点,科学家通常剥离无关的影响,深入到一个非常狭窄的自然元素。 这就是我们所说的自然法则: 能量和质量是一样的,每一个作用力都有一个大小相等、方向相反的反作用力,依此类推。 有许多自然法则,它们随时随地都适用。 工程师遵循自然法则。 他们别无选择。 他们的目标是设计出在自然允许的范围内工作的东西。 要做到这一点,他们必须能够预测系统的行为。 所以工程师们面临的一个大问题是,我们如何理解和预测一个系统的行为,在这个系统中,所有的自然法则在任何时候都适用于任何地方。 这是一个整合的问题,它就像找到一开始的规律一样困难。 每时每刻把所有的自然规律都考虑进去是不可能的。 因此,工程师必须找到方法来确定哪些定律是重要的,哪些可以忽略,以及如何近似那些在时间和空间上都很重要的定律。 工程师不仅仅是预测未来。 他们做出的决定部分是基于他们的预测,因为他们知道自己的预测不可能既准确又确定。 理解和应用数学也很重要。 这包括概率论、决策理论、博弈论、最优化、控制理论和其他数学在工程决策环境中的应用。 这也是一个合理的工程研究领域。

作为 ML 的研究人员和实践者,你必须考虑你拥有的数据的正确模型,而不是你拥有的模型的正确数据集(就像许多研究论文一样)。 如果你曾经问过“这个模型的正确数据集是什么”,那么你并不是在现实世界中。 到底什么是真实的世界? 在现实世界中,你对要处理的数据是没有选择的。 在这里,数据定义了问题,而不是相反。 有时,在现实世界中,ML 实践者创建了一个自己的世界作为他们的建模游乐场,从而假装他们是“科学家”,例如“发明”一种用于做 NLP 的语言,或者通过简化假设来创建封闭的环境来强化学习。 这些研究得出了有趣的结果,但它们的范围仅限于它们所来自的世界,即使研究人员喜欢在论文中把它们当作适用于现实世界的东西来兜售。 在现实世界中,输入的分布更有可能发生变化,长尾的“curve balls”不知从何而来,你并不总是有答案。

当你在现实世界中工作时,有几个事实是你必须面对的,这也是本文的主要内容。 但这个开场白是必不可少的。 如果你在现实世界中做 ML 研究,你是工程师而不是科学家。

1. 需要可以工作

虽然这听起来很简单,但我很惊讶有多少人,不管是新手还是有经验的人,都被一些听起来很花哨的名字吸引住了,或者因为一些东西来自 DeepMind、OpenAI、斯坦福大学、麻省理工学院等等。 如果你的模型确实只能够在它们的环境和资源约束下处理他们的数据集和,那么现实世界将无情地拒绝它。 arXiv 上的许多结果只能在少数数据集上工作,或者只能在只有谷歌基础设施支持的百兆级 gpu 上工作。 帮社区一个忙,不要再发布那些一般性的结果了。 它必须能工作。 这也是为什么我们今天不考虑在没有卷积神经网络的计算机视觉中做任何事情,或者为什么我们很容易在序列模型中使用注意力的原因。 它必须要能工作。

推测: 这么多人,特别是 ML 的新手,被花哨的模型名称冲昏了头脑,迫不及待地想要尝试它们,或者写关于它们的博客帖子,等等。 我觉得这就像一个初学写作的人。 他们认为使用华丽的词语会使他们的写作更好,但经验会告诉他们其他的。

2. 无论你如何努力,无论你的优先级是什么,你都不能提高光速

缓存层次结构已经是固定的,你必须在这个前提下工作,网络开销会让分布式训练变慢,在向量中只能塞入那么多内容,等等。

3. 只要有足够的推力,猪就能飞得很高,然而,这并不一定是一个好主意

一个研究生或大型的超参数扫描器可以在一个巨大的数据中心中可以找到一组超参数,可以让非常复杂的模型工作得很好,甚至产生优秀的结果。 但没有人在现实世界中调试那么大的模型。 我在帮助公司管理他们的 ML 团队时发现了一个秘密 — 大多数人不知道/不关心超参数调优。

4. 生活中的一些事情,除非亲身经历过,否则永远不会被完全欣赏或理解

对于既不构建生产 ML 模型也不维护它们的人来说,机器学习中的某些东西是永远无法完全理解的。 再多的课件,再多的 mooc,再多的 Kaggling,都无法让你为此做好准备。 没有什么可以替代部署模型、观察用户与模型的交互、处理代码/模型分解等等。

5. 总是有可能将多个独立的问题聚合成一个复杂的相互依赖的解决方案,在大多数情况下,这是一个坏主意

端到端学习在理论上听起来是一个好主意,但是对于大多数部署场景,分段优化的管道架构将继续存在。 这并不意味着我们将完全没有端到端系统(语音识别和机器翻译有很好的端到端生产价值解决方案),但在大多数情况下,具有可观察的调试路径将胜过其他选择。

6. 把一个问题转移到别处,甚至是忽略它,都比解决它要容易得多

例如,在语音方面,声学建模是困难的,但是你可以让网络在解决不同问题(例如语音识别)的方法中找出这些细节。 在 NLP 中,很难进行正确的解析。 但值得庆幸的是,对于 99%的现实任务,我们可以不进行解析。

推论: 除非迫不得已,否则不要解决问题。

7. 你总是要在一些事情上做权衡

速度 vs 内存,电池寿命 vs 准确性,公平性 vs 准确性,易于实现 vs 可维护性,……

8. 一切都比你想象的复杂

与购物时的价格冲击类似,工作中也有“努力冲击”。 大多数经验丰富的研究人员和工程师都经历过“努力冲击”,要么是因为他们低估了处理大型数据集的工程问题,要么是因为他们低估了正在与之搏斗的领域的复杂性,要么是因为他们低估了对手。 大多数论文让读者读起来觉得事情很简单,而忽略了这背后是经过了几百万次失败才有的成功。 因此,论文不是研究,而是做研究的结果。 因为这个原因,你永远可能通过阅读论文来体验做研究的过程。

9. 你永远都会是准备不足

这可以和第 8 点结合起来,事实上任何远程调用的成功的模型如果没有适当的计划,都可能由于自身的成功而崩溃。

10. 一个尺码不可能适合所有人,你的模型会一直犯令人尴尬的错误,尽管你的出发点是好的

角落案例和长尾失败模式将困扰你。 值得庆幸的是,对于许多非关键的 ML 部署来说,这并不是什么大问题。 最坏的情况下,它会成为一条搞笑的推文。 但是,如果你在医疗保健或其他高风险情况下工作,ML 部署将因此成为一场噩梦。

11. 每一个旧的想法都会以不同的名字和不同的形式被再次提出,不管它是否有效

Schimdhuber 可能提出了一个更大的观点。 没有人听他的,像他一样,我们把旧酒重新装进新瓶子,被迫重复错误的历史。

12. 达到完美不是因为没有什么可以补充的,而是因为没有什么可以去掉的

生活中的每件事都是如此,现实世界中的机器学习也是如此。 唉,我们的会议回顾了他们对“新颖性”的嗜好,产生了不想要的 arxi -spam,其中包含了大量本来就不需要存在的垃圾。 除非做“科学”能够鼓励宣传什么是有效的,而不是什么是新的,否则我不认为这种情况会改变。

END


英文原文: http://deliprao.com/archives/227




延展阅读:

6个你必须知道的机器学习的革命性的教训

原创: ronghuaiyang AI公园

作者: James Warner

编译:ronghuaiyang


导读

机器学习是未来,因为它将广泛应用于计算机和其他领域。 尽管如此,开发有效的机器学习应用需要大量的“黑魔法”,这在手册中很难找到。




在机器人技术、智能家电、智能零售店、自动驾驶汽车技术等的推动下,我们正步入一个新时期。机器学习是所有这些新时代技术进步的前沿。在不久的将来,自动化机器的发展将使得机器与人类智能相当甚至超过人类智能。机器学习无疑是下一个“大”事件。而且,人们相信,未来的大多数技术都将与之挂钩。

为什么机器学习这么重要?

机器学习非常重要,因为它有助于预测人类无法预测的行为和模式。机器学习有无数非常有用的实际应用。通过机器学习,有可能管理以前令人困惑的场景。在理解了具有高效泛化能力的机器学习模型之后,可以使用它做出相应的重要决策。机器学习使个人能够根据大量场景做出决策。显然,现在还不能编写出能够用于所有新场景的代码。

人工智能能够执行各种需要学习和判断的活动。从自动驾驶汽车、投资银行、许多医疗相关功能到招聘,人工智能已经被用于完成不同领域的各种任务。

6 个关于机器学习的革命性教训

机器学习算法能够简单地从场景中泛化,得到执行必要任务的方法。这样更切实可行和而且具有成本效益,然而,手工编程并不那么具有成本效益和可行性。“可用数据”数量的增加肯定会导致出现更多的与获取数据相关的问题。因此,机器学习是未来,因为它将广泛应用于计算机和其他领域。尽管如此,开发有效的机器学习应用需要大量的“黑魔法”,这在手册中很难找到。

以下是关于机器学习最有价值的 6 个经验教训:

1. 泛化是核心

机器学习最基本的特征之一是,算法必须从训练的数据中泛化出该领域中所有不可见场景的完整领域,以便在使用模型时能够做出正确的推断。这个泛化的过程需要我们用来训练模型的数据有一个我们希望算法去学习的,像样的和可靠的映射。数据的质量越好,表达能力越高,模型就越容易理解从输入到输出的未知的和基本的“真实”映射。泛化是指从某种精确的东西转向某种广泛的东西。

机器学习算法是从历史场景中自动简化的技术。它们有能力在更大的数据量和更快的速度上进行泛化。

所有机器学习初学者最常犯的错误就是对训练数据进行测试,然后看起来像是成功了。如果在新数据上尝试所得到分类器,它通常不会比随机猜测更好。所以,如果你想要开发一个分类器,一定要留一些数据做测试。同时,用你的分类器对测试数据进行测试。

2. 学习=表示+评估+优化

机器学习算法分为 3 个部分,表示、评估和优化

表示 :数据需要以合适的算法形式输入。对于文本分类,可以从全文输入中提取特征,并将其变为 bag-of-words 的表示形式。相反,选择一种表示方法与选择它可能学习的分类器集是同义词。这个集合称为学习者的假设空间。

评估 :这是一个帮助我们理解我们正在做什么的度量。需要一个评估过程来区分好分类器和不好的分类器。如果你可以给测试集预测出一个数字,例如测试集的大小为 n,在这里,你可以计算平均绝对误差,甚至可以选择使用均方根误差。

优化 :它是指寻找方法来选择不同的技术来优化它的过程。例如,我们可以简单地尝试假设空间中的每一个假设。我们也可能选择使用更智能的技术来尝试最有利的假设。同时,当我们进行优化时,我们可以利用评价函数来了解这个特定的假设是否成立。如果评价函数有多个最优值,则优化技术允许用户了解更多关于所创建分类器的信息。首先,初学者应该从现成的优化器开始,然后再转向定制设计的优化器。

3. 只有数据是不够的!







请到「今天看啥」查看全文