机器学习的乐趣与辛劳

很少有人能够发现机器学习在企业应用中的巨大潜能。我非常幸运地在第一份工作的前几个月里,就感受到了机器学习所带来的潜在利益。1995年,信用卡发行方开始使用神经网络模型进行信用卡诈骗的实时监测。一旦信用卡被使用,交易数据则会从销售网点系统传至信用卡发行方所授权的系统,在该系统内,利用神经网络模型进行欺诈概率的判断。如果判断出欺诈的可能性非常高,则会立即拒绝交易。我是开发此种模型的专家,我所交付的第一批模型中,有些就应用于南美银行。模型部署好的第一天,就识别出了之前未探测到的诈骗信息,并已达数百万美元。这可真是令人大开眼界啊。从那时候开始,我便意识到了机器学习在各种应用中的巨大价值,例如,需求预测,故障和异常检测,广告定向,网络评价以及类似于科塔娜的虚拟助手等。通过将机器学习技术嵌入至企业系统中,可以改善客户体验,降低发生系统性故障的风险,增加收入以及能够显著地节约成本。

但是,建立机器学习系统是一个漫长,耗时而且极易出错的过程。即使现如今我们能够处理分析非常庞大的数据集,并且能够以较高的交易速率进行部署,但仍有几个瓶颈问题有待解决:

  • 机器学习系统的开发需要精深的专业知识。虽然机器学习的核心原理已经广为人知,但杰出的数据科学家们仍像二十年前刚工作那般认真刻苦地进行着研究。
  • 从业者们不得不使用各种工具进行数据的收集,清理,整合和分析。这些工具往往入门难,并且综合性差。部署和维护商业性机器学习软件的成本也是较高的。
  • 建立与验证模型需要大量的实验。数据专家们往往受限于计算机的性能和存储容量,因为他们需要运行大量的实验数据,而且还会产生大量的新数据。
  • 软件工具不支持组织实验运行的可扩展性试验与方法。团队合作的实验,以及变量和脚本,都是通过人工进行共享,点对点的。所以,评估和调试统计型模型仍是一大挑战。

数据专家们进行机器学习技术的实验时,能够在此种限制条件下编写定制程序,完成无差别的重任。但是部署阶段则非常困难。将机器学习模型部署到一个关键性的商务程序中,例如实时诈骗防护,或者广告定向等,都需要非常复杂的工程技术:

  • 比较具有代表性的就是,如今线下开发的机器学习模型需要用C++,C#或者Java等开发语言重新实现。
  • 交易数据通道需要重新探究。线下模型中的数据转化和变量都需要被重新编码和编译。
  • 重新实现必然会产生故障,需要验证模型是否能够如最初设计的运行。
  • 必须为模型建立一个带有合适监测器,权值和注册信息的定制容器。
  • 高级部署需要A/B测试,用以并行评估可择模型。还需要一个控制模型进出的开关机制,最好可以避免重新编译和部署整个应用。
  • 必须通过统计测试,验证候选版本的产品模型能如原始设计一样工作。
  • 必须记录系统所作出的自动化决策,以及商务产出,以便于改善机器学习模型的监测功能。
  • 必须具有高可用性的服务,以及端点和端点周围区域的灾难恢复服务。

当服务需要满足更高的交易速率以及/或者低延迟时,则需要更新硬件,还需将服务部署至新机器并向外扩展。

所有的这些都需要经过比较耗时并工程较为密集的步骤。人力和物力的消耗也比较大。端到端的工程建设,以及机器学习技术应用产品的维护,则需要水平较高的技术团队,但很少有组织或企业能够建立并维持这种团队。

微软机器学习云平台Azure则可以解决这些问题:

  • Azure提供的是全托管式的云服务,不需要安装软件,也没有硬件需要管理,更无需考虑系统版本和开发环境等。
  • 只需要使用浏览器,数据专家们则可以登录Azure,开始机器学习模型的开发,没有地域以及设备的限制。Azure几乎可以存储无限量的文件数据。
  • ML Studio,是一个机器学习技术的整合性开发环境。可以根据简单的数据流图建立实验数据,具有简便的模板拖拽和连接功能。数据专家避免了大量的重复性劳动,可以集中精力于实验的设计和迭代。
  • 提供许多实验范本,入门学习较为方便简单。
  • 内置许多由微软研究院开发的多种优秀算法,支持自定义重新编码 。Azure上有超过350种开源R包,可以安全地使用。
  • 数据流图具有可自动并行运行的并行通道,专家们可以执行复杂的实验,无计算约束地进行并行比较。
  • 实验程序可以随时分享,让其他人能够接着完成未完成的工作。

Azure 易于云上开展大规模的产品部署。预先测试过的机器学习模型能够与评分工作流合并,仅仅几步操作,就能生成一个名为REST的新型云托管API(应用程序编程接口)。其具有低延迟响应的特点,并且无需重新实现,也没有端口,这大大优于传统的数据分析软件。互联网上的任何信息,无论是来自笔记本,网站,还是移动设备,可穿戴设备,它们都会被发送至这个新生成的API,并得到预测结果。例如,一位数据专家创建了一个诈骗监测API,输入为交易信息,输出为低/中 /高级别的风险指示。此种API会在云端激活,随时准备好接受调用。API后端具有可伸缩性,所以,当交易频率起伏较大时,Azure的服务器能够自行处理负载量。实际上,Azure并没有限制数据专家们创建和部署的机器学习API的数量,而且,这一切都独立于其设计的。对于工程设计和信息技术来说,通过使用那些REST API,整合一个新的机器学习模型,以及在部署之前对多重模型进行并行测试,都变得较为容易了。而且还具有明显地高灵活性,低成本的特点。Azure在产品中提供了一些调整和管理API的机制,包括测量可用性,延迟和性能的机制。对于企业来说,更快,更低成本,更简易地建立一套稳健,高可用性和高可靠性的机器学习系统会带来巨大的商业利益。

相关推荐