深度学习是受到人类大脑启发而产生的机器学习(ML)算法的一种。这些算法也被称为神经网络,它们特别擅长从嘈杂的数据和曾经对机器完全不透明的数据里探测出模式。虽然神经网络的技术细节可能令数学和计算机科学博士感到兴奋,但该技术的真正意义有更广泛的吸引力。它代表着迈向真正的自主学习机器的又进一步。
毫不奇怪,这一新的算法浪潮已经引起了从机器翻译到自动驾驶汽车等应用领域的广泛关注。企业(而不只是互联网的数字巨头)已经开始使用它来解决各种各样的问题。先期采用者已经在欺诈检测、制造性能优化、预防性维护和推荐引擎等方面展示了(深度学习)高影响力的业务价值。很明显这些新的机器智能驱动的创新有可能在未来五年重新定义各个行业,并产生新的赢家和输家。
虽然为企业定制的深度学习框架可以提供重要的价值,但自己构建一个这样的框架会带来独特的挑战。本文将探讨一些企业在开发应用此技术时遇到的障碍,克服这些障碍的方法,以及构建和维护深度学习项目时的其他需考虑的事项。具体我们将探讨:
•深度学习特殊的硬件和软件需求(例如GPU)
•解释模型的新方法
•构建可为深度学习提供服务的数据基础平台的考虑因素
•在选择、测试和推广深度学习模型时进行的自动化
•部署深度学习到生产系统的挑战和要求
•企业级专业知识技能的需求
深度学习需要超强的计算力
应用深度学习的挑战之一是这样一个事实:(有时运行在数百万个神经元节点的规模上的)模型是计算密集型的,想要有效地进行模型的训练需要专门的硬件和软件资源。
目前,训练深度学习模型的最佳选择是GPU(图形处理单元)。这些专用电路是在游戏行业被开发出来的,但特别适用于深度学习所需的浮点并行计算。
这一硬件是在CPU之后重要一步的前进。过去需要几个月的时间进行模型的训练,用GPU则只用几周。但是,使用GPU可能会遇到挑战,因为它们的硬件架构和计算框架与只能工作于CPU架构的软硬件大不相同。
GPU需要大量工程工作来优化软件和确保高效的并行性、可管理性、可靠性和可移植性。它们还必须与整个分析生态系统的其他部分集成在一起,因为某些学习会在CPU和GPU架构中都会发生。只通过GPU扩展模型可能非常棘手,因此需要智能地路由流量的设计以便高效地使用这两种架构。
使用LIME来逐步接近模型的可解释性
除了密集的计算需求之外,使用神经网络的另一个独特挑战是它们偶尔的不可探知性。神经网络使用隐藏层,从而将机器用于制定决策的信息解耦。深度学习的模型像黑盒子一样工作,因为几乎不可能了解到它们的内部运作方式。这就导致了信任的问题,因为在一些行业里,可解释性是强制要求的。
例如,欧洲的金融机构必须遵守欧盟的《通用数据保护条例(GDPR)》。该条例会对无法解释客户数据如何被使用的公司施加严厉的财务处罚。在这种情况下,告诉客户他们的金融交易被拒绝是因为模型的决定的是不可能的,也是非法的。除了符合法规之外,利益相关者往往需要被告知决策是如何被制定的,从而能决定是否支持决策的行动。
尽管离真正解决可解释性还很远,但已经有了一些方法可以让企业解决模型可解释性的问题。一种是被称为局部可理解的与模型无关的解释(LIME)的方法,这是华盛顿大学开发的一个开源的研究成果。LIME揭示了在决策时触发算法的特定变量,并以人类可读的方式生成该信息。例如在欺诈的场景下,了解这些信息可以从监管的角度提供安全保护,并帮助企业了解欺诈行为发生的方式和原因。
随着研究人员试图解决解释性问题并完善深度学习必须的硬件,新的创新正在快速发展。但即使存在这些缺点,在企业中使用这种技术的收益可能很大。不过在正式部署模型之前,企业还必须拥有恰当的数据平台。
为深度学习构建一个数据基础(平台)
投资构建一个强大的数据和分析基础系统是深度学习项目的第一步。事实上,深度学习项目的成功取决于数据,这些数据必须是干净、高可用且可靠的。过时的、不完整或不准确的数据会让模型产生不正确的预测,这样的代价是昂贵的并可能导致整个项目失败。
虽然不像深度学习的其他部分那么令人兴奋,但深度学习项目的大部分工作是在在这个数据基础系统里完成的——让数据可以被访问,确保数据类型是正确的,修复和准确度相关的问题,并开发能帮助模型应用于正式环境的系统。
一旦模型被部署到生产系统,就需要能实时地解决数据集成问题。流式数据的导入必须是高可用和高可靠的,且计算特征的延迟要短。与此同时,批量数据的导入需要支持大规模,并与数据管道和存储系统集成。
该系统还必须能够快速迭代。特征准备需要能与模型训练同步,要有相同的逻辑、延迟和前向兼容。对于所有的数据源和特征,必须确保它们的可见性和可追溯性,并将数据质量和管理与监控系统相结合。
越来越多的企业数据分布在混合云环境以及不同的存储格式上。驻留在公共云中的数据、企业内部数据和存储在于不同类型的对象和文件存储系统中的数据之间必须要建立起连接。
虽然面临很多挑战,但这些依然可控。可以通过开发系统来持续监控数据,让项目的团队知道数据从何而来,不管是现在还是过去的数据,都知道如何重现它们。一旦这个数据基础及其监控系统到位,就可以利用它进行深入学习实践,并可以将它用于其他领域。
自动化深度学习模型的选择和训练
大多数(如果不是全部的话)用于深度学习的软件框架都是开源的项目,任何人都可以免费下载和试用。其中,2015年由谷歌开源的TensorFlow是市场的领导者。
可以在这些深度学习框架之上运行许多不同的神经网络类别,例如前馈网络、生成对抗网络、深层信念网络和深度卷积网络。由于新型深度学习模型继续以惊人的速度出现,持续更新这个清单是几乎不可能的。基于你自己的使用场景,选择特定神经网络体系架构的最佳实践是存在的。但是,测试是无可替代的。深度学习是一门实验学科,而不是理论学科。
一旦模型通过自动过程(分析运营方法论)完成训练和验证,应先部署到一个预生产环境里。在预生产环境中可以再对模型进行调整或重新训练。使用分析运营流程方法论的好处还包括,可以让利益相关方在模型被部署到生产环境自动运行之前熟悉模型。
生产系统上的深度学习模型需要考虑的事项
与所有其他类型的机器学习模型类似,深度学习模型的全生命周期(从开发到测试,发布到预生产,再发布到生产)都需要被监控和并能自动化的再训练。在某些情况下,还应该能够有从预生产到生产系统的灰度部署(通常通过A / B测试框架完成)。
还应考虑再训练的策略。在某些情况下,传统的机器学习相比深度学习可能能够更快地被再次训练。特别是当深度学习模型已经在海量数据中训练并且新数据不会提供太多差异时(例如,一个模型用数十亿人和汽车的图像训练过了)。通过现场测试来识别何时该模型的预测与基于人类专业知识的预期相一致也很重要。如果情况并非如此(不一致),那么应该再次通过分析运营流程开始自动再训练的工作。
例如,推荐引擎能向购物者展示不同的选择,但需要有一个机制来监控它,以确保购物者对推荐的物品的响应是正面的。同时,还应该能够在全部数据的一定比例范围内部署新的推荐引擎,并将其性能与另外一个推荐引擎的性能进行实时比较。
上面这些都不容易完成。实际上,由于规模和管理方面的复杂性不可预测,许多深度学习项目的最终归宿都是数据科学实验。由于存在如此多的陷阱,建立一个熟悉生产环境里深度学习挑战的团队非常重要。不幸的是,具有这种知识的人(目前)很难在谷歌和脸书等公司以外找到。
人才的匮乏
目前深度学习的专业人才很稀缺且昂贵。虽然许多聪明人能够自学神经网络并使用云API进行模型实验,但很难找到具有在企业环境中大规模部署深度学习经验的工程师。在福布斯最近一篇关于人工智能的文章中,Diego Klabjan说:“人工智能开发的人才库很小,以可承受的、可持续的速度在一个组织中获得这种脑力资源会很难。”
这一切将随着深度学习领域的发展而变化,同时深度学习将证明其在更多行业和业务场景中的价值。同时,克服这种知识差距的一种方法是与知道需要避免哪种错误的有经验的合作伙伴合作。虽然等到深度学习领域成熟后再行动会很有诱惑力,但这样做可能会导致落后于人。
利用深度学习进行变革性转变
部署深度学习与采用其他类型的软件不同,它可能涉及大规模决策的自动化,并且是颠覆性的。这就要求企业重新考虑在部署之前涉及的流程。
这是必须的,因为深度学习不仅仅是通常的分析型附加业务。这些数据产品必须成为业务的组成部分,让企业通过利用其数据的强大能量并自动采取行动来推动组织变革。
随着深度学习领域的不断成熟,成功部署深度学习的企业将看到更安全的产品、更满意的客户、更高效的运营以及其他几十个相关应用场景所带来的红利。部署深度学习需要深思熟虑的投资(很大的)、跨职能协作和大量测试,但这些付出是值得的。如果企业准备好了,深度学习可以带来变革。
这篇博文是O’Reilly和Teradata的合作产物。请阅读我们的编辑独立声明。