我的位置:

机器学习演变:未来有很大潜力

发布人:管理员

fc154692da9f40f0b412a0fe1cc103a9.jpeg

   

    大型科技公司都在积极地围绕人工智能和机器学习进行调整:谷歌现在是“AI-first”,优步在血脉中流淌智能基因,其内部的人工智能研究实验室正不断涌现。

    他们倾注了大量的资源和精力,让全世界相信,机器智能革命正在到来。

    他们认为,深度学习是推动这一转型的突破性进展,并为新型自动驾驶汽车、虚拟助手提供了动力。

    尽管这种宣传方式对现状有艺术式的宣传,但这种做法的未来却并不那么新潮。

    与机器学习相关的软件工程师和数据科学家仍然使用许多相同的算法和工程工具,就像他们多年前做的那样。

    也就是说,传统的机器学习模式——而不是深层的神经网络——正在为大多数人工智能应用提供动力。

    工程师们仍在使用传统的软件工程工具来进行机器学习工程,但这些工具并不起作用:将数据建模的管道最终由分散的、不兼容的部件构建而成。

    随着大型科技公司通过构建具有端到端功能的新型机器学习平台,这一过程将会发生变化。

    大型科技公司最近开始使用他们自己的机器学习工程的集中平台,这更清晰地将以前分散的数据科学家和工程师的工作流程整合在一起。

    机器学习工程分为三个阶段——数据处理、模型构建、部署和监控。

    在中间,我们有管道的模型,这是机器学习算法,学习预测给定的输入数据。

    这种模式是“深度学习”的地方。

    深度学习是一种机器学习算法的子范畴,它使用多层次的神经网络来学习输入和输出之间的复杂关系。

    神经网络的层次越多,它所能捕捉到的复杂性就越高。

    传统的统计机器学习算法(即那些不使用深层神经网络的算法)拥有更有限的能力来获取关于训练数据的信息。

    但是,这些更基本的机器学习算法在许多应用程序中运行得非常好,这使得深度学习模型的额外复杂性常常是多余的。

    因此,我们仍然看到软件工程师在机器学习工程中广泛使用这些传统模型——即使在深度学习的狂热爱好者也是如此。

    但是,把所有东西放在一起后,我们看将能看到训练机器学习模型前后的情况。

    第一个阶段涉及清理和格式化大量数据,并将其输入到模型中。

    最后一个阶段涉及对模型的仔细部署和监控。

    我们发现,人工智能的大部分工程时间实际上并不是用来构建机器学习模型的,而是花在准备和监控这些模型上。

    尽管大型科技公司人工智能研究实验室专注于深度学习,但在这些公司中,大多数机器学习应用程序并不依赖于神经网络,而是使用传统的机器学习模式。

    最常见的模型包括线性/逻辑回归、随机森林和增强决策树。

    这些都是科技公司使用的其他服务,比如朋友建议、广告定向、用户兴趣预测、供需模拟和搜索结果排名。

    工程师用来训练这些模型的一些工具也同样很好地使用。

    最常用的机器学习库之一是scikit-learning,它是十年前发布的(尽管谷歌的TensorFlow正在上升)。

    我们有充分的理由使用更简单的模型而不是深入学习。

    深度神经网络很难训练。

    它们需要更多的时间和计算能力(它们通常需要不同的硬件,特别是GPU)。

    深入学习是很困难的——它仍然需要大量的手工操作,包括直觉、尝试和错误的结合。

    在传统的机器学习模式下,工程师花在模型培训和调优上的时间相对较短——通常只有几个小时。

    最终,如果深度学习能够实现的准确度提升是适度的,那么对可扩展性和开发速度的需求就会超过它们的价值。

    因此,在训练机器学习模式时,传统方法效果很好。

    但是,同样的情况并不适用于连接机器学习管道的基础设施。

    在机器学习工程中使用相同的旧软件工程工具,会产生更大的错误可能性。

    机器学习管道的第一阶段——数据收集和处理——说明了这一点。

    虽然大公司肯定有大数据,但数据科学家或工程师必须清理数据,使之有用——验证并整合来自不同来源的重复数据,标准化指标,设计和证明功能。

    在大多数公司,工程师使用组合的SQL或Hive查询和Python脚本,从一个或多个数据源聚合并格式化多达数百万个数据点。

    这通常需要几天的体力劳动。

    其中一些可能是重复性的工作,因为许多公司的流程是分散的——数据科学家或工程师经常使用本地脚本或Jupyter笔记本操作数据。

    此外,大型科技公司的规模较大,在生产任务中会造成错误,所以要谨慎部署和监控模型。

    正如一位工程师所描述的那样,“在大公司,机器学习是80%的基础设施。”

    然而,传统的单元测试——传统软件测试的支柱——并不真正适用于机器学习模型,因为机器学习模型的正确输出在之前是未知的。

    毕竟,机器学习的目的是让模型学会根据数据做出预测,而不需要工程师专门编写任何规则。

    因此,工程师们采用的不是单元测试,而是采用一种不那么结构化的方法:他们手动监控仪表板,并为新模型编写警报。

    实际世界数据的变化可能会让训练的模型变得不那么准确,因此工程师根据应用程序的不同,每天按月对新数据进行重新培训。

    但是,在现有的工程基础设施中缺少机器学习的支持,可能会在开发模型和生产模型之间产生脱节——正常代码更新的频率要低得多。

    许多工程师仍依赖于将模型部署到生产中的基本方法,比如将已训练模型的串行化版本或模型权重保存到一个文件中。

    工程师有时需要用另一种语言或框架重建模型原型和部分数据管道,因此他们在生产基础设施上工作。

    从数据处理到培训再到部署的任何阶段,任何与机器学习开发过程的不兼容都可能导致错误。

    为了解决这些问题,一些大公司,拥有开发定制工具的资源,已经投入了时间和工程技术来创建他们自己的机器学习工具。

    他们的目标是拥有一个无缝的、端对端的机器学习平台,完全兼容该公司的工程基础设施。

    Facebook的FBLearner Flow和Uber的Michelangelo都是内置的机器学习平台,可以做到这一点。

    他们允许工程师用直观的用户界面来构建培训和验证数据集,减少在这一阶段花费的时间。

    然后,工程师就可以用(或多或少)点击一个按钮来训练模型。

    最后,他们可以轻松地监控和直接更新生产模型。

    像Azure Machine Learning和Amazon Machine Learning 这样的服务是公开的可选方案,提供类似的端到端平台功能,但只与其他Amazon或微软服务集成,用于管道的数据存储和部署组件。

    尽管大型科技公司一直强调要通过机器学习来提高产品质量,但在大多数公司,这一过程仍面临重大挑战和效率低下。

    他们仍然使用传统的机器学习模式,而不是更先进的深度学习,仍然依赖于传统的工具基础设施,而这些工具不适合机器学习。

    幸运的是,由于目前专注于这些公司的人工智能,他们正在投资专门的工具,使机器学习变得更好。

    有了这些内部工具,或者有可能与第三方机器学习平台结合起来,这些平台能够紧密地整合到现有的基础设施中,组织就能实现人工智能的潜力。

金准数据精品推荐

  精品行业报告______________________________ AI科技资讯