随着我们进入2017年下半年,是时候看看那些使用数据科学和机器学习的公司面临的共同挑战。假设你的公司已经在大规模收集数据,需要用到分析工具,而且你已经认识到数据科学可以发挥重大作用(包括改善决策或企业经营、增加收入等等),并进行了优先排序。收集数据和识别感兴趣的问题并非小事,但假设你已经在这些方面起了个好头,那么还剩下哪些挑战呢?
数据科学是一个宽泛的话题,所以我要说明一下:本文主要探讨的是督导式机器学习的使用现状。
一切从(训练)数据开始
假设你有一支处理数据摄取和整合的团队,以及一支维护数据平台(“真相来源”)的团队,新的数据来源不断出现,由领域专家负责找出这些数据来源。而且,由于我们主要探讨督导式学习,因此,训练数据的缺乏依然是机器学习项目的首要瓶颈,这一点毫不意外。
在迅速创建庞大的训练数据集(或者加强现有的训练数据集)方面,有一些很好的研究项目和工具。斯坦福大学的研究人员已经证明,弱监督和数据编程可以用来训练模型,不必使用大量手工标记的训练数据。深度学习研究人员对生成式模型的初步研究,已经在无督导式学习的计算机视觉和其他领域取得了可喜的成果。
“思考特性而不是算法”,这是在机器学习背景下评估数据的另一个有用方法。友情提示:数据扩充可能改善你的现有模型,在某些情况下,甚至有助于缓解冷启动问题。大部分数据科学家可能已经利用开源数据或者通过第三方数据提供商,来扩充他们的现有数据集,但我发现,数据扩充有时会遭到忽视。人们觉得,获取外部数据、使之规范化、并利用这些数据进行实验,这不像开发模型和算法那么具有吸引力。
从原型到产品
让数据科学项目实现产品化,这是许多用例的目标。为了使这一过程更有效率,近来出现了一个新的工作角色——机器学习工程师。还有一套新的工具用于推进从原型到产品的转变,帮助追踪与分析产品有关的背景和元数据。
机器学习在产品中的应用还处于早期阶段,最佳实践才刚刚开始出现。随着高级分析模型的普及,有几点需要考虑,包括:
- 部署环境:你可能需要与已有的日志或A/B测试基础设施进行整合。除了把稳定、高性能的模型部署到服务器以外,部署环境还越来越多地包括,如何以及何时把模型部署到边缘侧(移动设备是常见的例子)。把模型部署到边缘设备的新工具和策略已经出现。
- 规模,延迟,新鲜度:需要用多少数据来训练模型 模型推导的响应时间应该是多少 重新训练模型和更新数据集的频率应该是多少 后者说明你拥有可重复的数据管道。
- 偏差:如果你的训练数据不具有代表性,那么你将得到不理想(甚至不公正)的结果。在某些情况下,你也许可以利用倾向得分或其他方法,相应地调整数据集。
- 监控模型:我认为人们低估了监控模型的重要性。在这个方面,学过统计学的人拥有竞争优势。想知道模型何时退化以及退化了多少,这可能很棘手。概念漂移也许是一个因素。就分类器而言,一个策略是把模型预测的类别分布与预测类别的观测分布进行比较。你也可以设立不同于机器学习模型评估指标的商业目标。比如,一个推荐系统的任务可能是帮助发现“隐藏或长尾”内容。
- 关键应用程序:与普通的消费者应用程序相比,在关键环境中部署的模型必须更加稳定。另外,这类环境中的机器学习应用程序必须能够数月“连续”运行(不会发生内存泄漏等故障)。
- 隐私和安全:通常来说,如果你能让用户和企业相信他们的数据是安全的,那么他们可能更愿意共享数据。如上文所述,用额外特征进行扩充的数据往往会带来更好的结果。对于在欧盟经商的企业而言,一个迫在眉睫的问题是,《一般数据保护条例》(GDPR)将于2018年5月生效。在其他领域,对抗性机器学习和安全性机器学习(包括能够处理加密数据)的实践研究开始出现。
模型开发
媒体对模型和算法开发的报道越来越多,但如果你同数据科学家交谈,他们中的大多数人都会告诉你,训练数据的匮乏以及数据科学的产品化是更加紧迫的问题。通常来说,市面上已有足够多的简单明了的用例,让你可以开发你喜欢的(基本或高级的)算法,并在以后进行调整或替换。
由于工具使算法的应用变得容易,因此,先回想一下如何评估机器学习模型的结果,这很有必要。尽管如此,不要忽视了你的业务指标和目标,因为它们未必与调试得最好或表现得最好的模型完全相符。关注与公正和透明有关的事情进展,研究人员和企业正开始检查、解决这方面的问题。对隐私的担忧,加之设备的激增,催生了不依赖于集中式数据集的技术。
深度学习正逐渐变成数据科学家必须了解的算法。深度学习最初用于计算机视觉和语音识别,现在开始涉及数据科学家能想到的各种数据类型和问题。其中的挑战包括,选择适当的网络结构(结构工程是新的特征工程),超参数调整,以及描述问题和转换数据以适合深度学习。(巧合的是,今年我见过的最有趣的大型数据产品之一,并不是基于深度学习。)
很多时候,用户更喜欢可解释的模型(某些情况下,黑盒模型不被人们所接受)。考虑到基本机制易于理解,可解释的模型也更容易改进。随着深度学习的兴起,企业开始使用那些能解释模型预测原理的工具,以及能解释模型从何而来(通过追踪学习算法和训练数据)的工具。
工具
我不想列出一个工具清单,因为可列举的工具实在太多了。帮助我们摄取、整合、处理、准备和存储数据以及部署模型的工具都非常重要。以下是对机器学习工具的几点看法:
- Python和R是最流行的机器学习编程语言。对于那些想使用深度学习技术的人来说,Keras是最受欢迎的入门级语言。
- 虽然笔记本电脑似乎是不错的模型开发工具,但集成开发环境(IDE)在R用户中深受欢迎。
- 通用机器学习和深度学习的库有很多,其中一些更善于推进从原型到产品的转变。
- 推进从单机到集群的扩展是重要的考虑事项。在这方面,Apache Spark是使用广泛的执行框架。经过一系列的数据整理后,你的数据集往往适合部署到稳定的单一服务器上。
- 供应商开始支持协作和版本控制。
- 最后,你可能需要数据科学工具来无缝整合现有的生态系统和数据平台。
企业如果想评估哪些问题、哪些用例适合于运用机器学习,眼下就是一个很好的时机。我总结了一些近期的趋势和尚未解决的瓶颈,你从中得出的主要结论应该是:现在可以开始使用机器学习了。先从已经拥有一部分数据的问题入手,然后建立出色的模型。
原文发布时间为:2017-10-18
本文作者:佚名
本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。