在过去的几年里,深度学习取得了显著的进步。尽管企业的经理们已经意识到了学术界里正在发生的事情,但我们依然处于将研究引入到实际工作的早期阶段。虽然对于深度学习的主要兴趣还是来自于它在计算机视觉和语音上的应用,但是很多企业其实已经可以把深度学习用于他们已有的数据上,包括结构化的数据、文本和时间序列数据等。
对于深度学习的狂热已经带来了越来越多的工具和框架,其中就包括一些专门为已经使用其他的机器学习的非专家人士所设计的。不少设备也已经能使用这些技术,因此我们可预见具有智能的流式应用的出现。最后,已经有非常多的有趣的研究项目正在研究针对未来的神经网络,它们具有不同的特点和更强的模型构建能力。
回到机器学习
如果你把深度学习看成是另外一种机器学习的方法,那么你对它的基本组成部分都应该是很熟悉的。部署和维护模型的软件架构依然是根本。一篇广为引用的谷歌的论文使用了“技术负债”这个概念来指出“现实世界里的机器学习系统中只有一部分是真正的机器学习的代码”。这意味着尽管底层的算法是很重要,但它们也仅仅只是一个复杂的生产系统里的一个小部分。正如论文的作者指出的,机器学习系统也必须解决机器学习相关的特定关联和依赖问题,比如数据、特征、超参数、模型和模型的设置(作者称此为CACE原则:改一点即改全部)。
深度学习也通常意味着训练模型所需的专门的硬件(如GPU)。对于已经使用SaaS(软件即服务)工具的公司,很多云服务商已经提供了支持深度学习的软硬件解决方案。像BigDl这样较新的工具已经出现了,针对特定的一些公司。这些公司喜欢的工具就是要能和流行的工具(比如Apache Spark)无缝集成,并充分利用已有的大数据集群、模型服务和监控平台。
不过你还是需要(打过标签的)数据,事实上是需要更多的数据。深度学习的专家把这个情况比喻成是一个需要巨型发动机(模型)的火箭,需要使用大量的燃料(数据)来到达任何想去的地方。(很多场景里,数据已经存储在集群里了。因此很多公司都在寻找那些可以运行在它们已有的工具上的解决方案。)想获得干净并打过标签的数据就意味着需要数据分析师能结合行业知识,并与基础设施工程师们合作,来共同设计和维护一个鲁棒的数据处理平台。
在近期的一次对话里,和我聊天的一位专家就开玩笑说,随着这些在软件架构和机器学习模型的改进,“很快,所有的公司需要雇佣的人就只是那些能产生好的数据的分析师了”。去除掉这里面的玩笑部分,实际情况是更加得微妙。例如很多的公司已经在开发和部署“人机互动”的系统,有时也被叫做“人类增强的人工智能”或是“主动学习系统”。这些系统能够将行业专家和数据科学家的工作结合起来。
这种情况对于深度学习而言更是如此。相比其他的机器学习技术,设置和修改深度学习的模型需要经验和专业技能。幸运的是,很多流行的框架都自带样例模型,而这些模型对多种类型的数据和多领域的问题都能有比较好的效果。至少在初始阶段,使用由领先的云服务商提供的打包的解决方案和可管理的服务都比自己雇佣专家要紧迫。我认为很多公司将只需要很少的真正的深度学习专家就能先对付过去。而一个更合理的选择是雇佣那些有很强软件工程技能的数据科学家。他们能够部署机器学习的模型,还能理解模型评估里的细微差别。
另外一个对于深度学习常见的疑问就是深度学习模型的特点。生成的预测是因为相关性还是一些因果关系?深度学习的架构对于非专家(甚至专家)而言都是臭名昭著的难以理解和解释。常见的模型包括上百万的参数。为什么深度学习在模式识别上工作的这么出色的确切原因是目前的一个热门研究领域(近期的一篇论文发现,很多成功的深度学习架构都靠“全记忆”来表现的很好)。
然而很多公司只会在深度学习的模型能大幅度提升业务指标的情况下才会部署应用它。一些应用和行业会要求模型必须能被解释,不过幸运的是,已经有一些研究来试图让机器学习的模型更容易被理解。企业应该参与的另外一个有趣的常见讨论就是算法的可信赖度(Tim O’Reilly有一个很好的列表)。
展望有限的人工智能系统,近期的激动人心的成果都涉及到了一些系统。这些系统组合了深度学习和额外的一些技术(增强学习、概率计算等)和组件(内存、知识、预测和计划)。我相信这些系统对于典型的企业而言都很复杂,而能构建特定应用的公司就充满机会。对于正在引入和部署机器学习的企业而言,一个更合理的起点则是将深度学习和其他的算法一起使用。将你的模型结合多臂强盗算法,你就可以宣称你正在向着增强学习前进。
物联网(IoT)和边缘智能
尽管人们经常认为深度学习对于文本、图像和语言更有用,但我也看到了一些企业正在使用深度学习来分析时间序列数据和事件数据。巧合的是,一些人工智能令人激动的例子就涉及到了能大量产生这样数据的系统和设备。例如,自动驾驶汽车的传感器可以获取远比我们意识到的多得多的数据。这些数据的量是如此之大,以至于分析技术必须先被用于过滤、压缩和总结这些数据,然后再把它们上传到大规模的(云)平台。
未来的一种场景则是大量的智能设备之间相互交互(是时候温习一下P2P系统了)。这提醒了我之前在和RISE实验室的创建人的对话中谈到的一些思考。未来流式计算系统将必须和在线机器学习相配合,不仅只是做模型训练,还要用来做数据处理和收集。安全性和安全的运行环境将鼓励数据的共享,从而增进“个性化”,并能释放更多数据源的价值。
研究方向:像人一样思考的机器
深度学习和人工智能领域正在快速发展。跟上它们的步伐是很难的。近期的一篇综述调研论文总结了人类智能的核心部分,并用它作为一框架来组织近期深度学习方面的研究成果。我发现下面的这个分类系统很有用,可以较好地理解正在进展的各式各样的研究方向。本质上,人类“学习自较少的数据,然后用更丰富和灵活的方法来泛化总结”。而使用深度学习的人工智能系统应该具有相似的能力。按照这个逻辑,作者列举了一些未来人工智能产品里可能会出现的能力:
-
通过组件化来快速构建模型(能组合一系列原始计算是高产出的核心)和学习如何学习(通过转换和多任务学习来加速学习新任务)。
-
系统具有一些构建因果关系的能力,并能从更少的样本里学习(从而让人工智能产品更容易被解释和理解)。
-
研究人员正在从儿童的快速和高效的学习过程里得到灵感,研究组合一些起步知识的重要性。
-
研究人员正在研究一些可以使用“工作记忆(短期记忆)”的深度学习模型。
现有的很多基于深度学习的系统都需要好的计算机、大量的数据和复杂的模型。研究人员正在构建更少依赖于大规模模式识别的工具,而企业则希望能把深度学习作为一种机器学习的技术,能通过一些工具将它和已有的大数据平台结合在一起使用。
原文发布时间为:2017-05-28
本文作者:Ben Lorica
本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号