企业里的深度学习 (上)原创
金蝶云社区-墨家总院
墨家总院
3人赞赏了该文章 291次浏览 未经作者许可,禁止转载编辑于2019年03月26日 17:36:56

(本文独家发布在金蝶云社区上)


深度学习是一种受人类大脑启发的机器学习(ML)算法。这种算法也称为神经网络算法,它们特别擅长检测噪声数据以及曾经对于机器来说完全不理解的数据(比如,图像,视频,语音)。虽然神经网络的技术细节可能会鼓励更多的人去读取数学和计算机科学博士学位,但该技术的真正意义具有更广泛的吸引力。它代表着人工智能迈向真正自学机器的又一步。

毫不奇怪,这一新的算法浪潮已经引起了人们对机器翻译和自动驾驶汽车等应用的关注。许多企业(而不仅仅是互联网行业的数字巨头) 已经开始用它来解决各种各样的问题。早期的采用者在欺诈检测,制造性能优化,预防性维护和推荐引擎方面展示了高影响力的业务成果。很明显,这些新的机器智能驱动计划有可能在未来五年内重新定义各个行业并产生新的赢家和输家。

虽然定制一套深度学习框架可以带来重要价值,但构建一个框架确实带来了独特的挑战。本文将讨论企业在开发此技术时将面临的一些障碍,以及克服这些障碍的方法以及构建和维护深度学习计划的其他考虑因素。具体来说我们将探讨:

  • 深度学习特殊的软硬件需求(比如GPU)

  • 达到模型可解释性的新方法

  • 构建可以为深度学习提供服务的数据平台的需要考虑的因素

  • 选择,测试和推广深度学习模型时的自动化

  • 用于生产的深度学习的挑战和要求

  • 企业级专业知识的需求

深度学习需要强大的计算能力

在应用深度学习的时候,遇到得典型的挑战之一是我们的模型有时候需要运行在好几百万的节点上—非常地消耗计算资源,因此想要高效率地训练这些模型需要专门的硬件和软件。

目前,训练深度学习模型的最佳选择是GPU或者叫图形处理单元。这些专用的硬件设备是专门为游戏行业开发的,GPU特别适合进行浮点并行计算,恰巧这也是深度学习所需的。

这种硬件是自CPU以来重大的技术进步,在GPU上几周就能训练出来的模型,放在CPU上需要好几个月才能跑出结果。然而,使用GPU编程非常具有挑战性,因为他们的架构和计算框架和只运行在cpu上是有很大的不同。

给GPU编程需要大量的软件代码上的优化工作以确保高效的并行性,可管理性,可靠性和可移植性。他们还必须与其生态系统的其余部分结合起来,因为一些训练工作既需要在GPU上运行,也需要在CPU上运行。通过GPU来扩展模型可能很棘手,这样做需要一个智能路由流量的蓝图,以便更有效地使用GPU架构。

用LIME来达到模型的可解释性

除了他们密集的计算需求之外,使用神经网络的另一个独特挑战是偶尔的不可预测。 神经网络使用若干隐藏的神经元层来存储机器用来做出决策的信息。深度学习的模型在功能上是黑盒子,因为我们几乎不可能感知到它们的内部运作机理。这种情况提出了信任方面的问题。然而,在某些行业,可解释性是不可协商的,是必须要达到的要求。

例如,欧洲的一些金融机构必须遵守欧盟的通用数据保护条例(GDPR),该条例对无法解释客户数据的使用方式的公司征收高额罚款。在这种情况下,仅仅因为数据模型的黑箱特性而告诉客户他们的金融交易被草率的拒绝是不可能的,也不是合法的。即使在监管合规的问题之外,通常还需要让利益相关者了解如何做出决定以支持他们的行动。

虽然这种问题还暂时不能被解决,但是很多企业正在尝试使用几种方案来解决模型的可解释性的问题。其中一种方法叫做本地可解释的模型诊断说明(Local Interpretable Model-Agnostic Explanations),以下用LIME来简称。这是来自华盛顿大学的一项开放式研究。LIME发现了引导算法作出决策时的几个关键变量,并且以一种非常易读的方式被呈现出来。在检测欺诈的案例中,了解这些信息可以从监管角度提供安全性保障,并且帮助企业了解欺诈的发生方式和原因。

随着研究人员不停地尝试解决可解释性问题,以及深度学习的硬件持续地进步,很多新的创新正在快速涌现。但即使存在这些缺点,在企业中使用该技术的收益还是会很大。 但是,在部署模型之前,你的组织必须有适当的数据平台

图标赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!