这是机器学习和深度学习领域2016年盘点的系列文章: 第一篇介绍了该领域的重要趋势。第二篇介绍了开源机器学习项目。第三篇介绍了业界领先的大型科技公司。
第一篇:机器学习的五方面进展对于偏见的担忧
随着越来越多的组织扩大了在数据分析和自动化决策等领域对机器学习技术的使用,人们对这种技术可能存在的偏见更加担忧。2016年,有媒体报道在刑事判决过程中所用的预测模型存在种族偏见,机动车保费报价存在价格歧视,图像识别应用习得“白色”是美丽的特征,谷歌的word2vec算法被发现存在成见。
2016年有两本畅销书探讨了这个问题。其一为Cathy O’Neil所著的《Weapons of Math Destruction》(数学这一毁灭性武器),该书有望获得美国国家图书奖。在华尔街日报的采访中,Jo Craven McGinty将O’Neil的观点总结为:“算法本身不存在偏见,但开发算法的人也许有偏见。”
第二本书由Ariel Ezrachi和Maurice Stucke撰写,名为《Virtual Competition》(虚拟竞争),着重探讨了机器学习和算法决策导致价格歧视的原因和这里面存在的阴谋。Burton Malkiel在他的书评中提到,这本书“呈现出作者针对互联网世界的深入理解和优异的研究成果。博学的作者通过相关判例法,以及经济与行为心理学领域的研究文献证明了自己的论点。”
该领域大部分数据科学家均对自己工作成果中隐含的偏见深表担忧。毕竟偏见本身也是一种错误,有偏见的算法属于不准确的算法。然而雇佣这些数据科学家的组织可能无法针对偏见的检测和纠正投入测试和验证所需的足够资源。更重要的是,负责业务的人员通常会夸大自家预测式模型的准确度和精确性,或者错误地鼓吹不恰当的应用领域。
在欧洲,GDPR(译注:General Data Protection Regulation,通用数据保护规则)为使用机器学习技术的组织提供了激励措施,鼓励他们更严肃地对待可能存在的偏见。我们也许能在2017年听到有关GDPR的更多消息。
说到GDPR,从2018年开始,采用机器学习技术实现自动化决策的组织必须准备好随时向受到决策影响的主体,以及管控机构解释决策的由来。因此从2016年开始,就有越来越多的组织开始关注可解释机器学习算法的研发。
— MIT计算机科学与人工智能实验室公布了神经网络研发中取得的进展,可以对预测的结果提供解释。
— 在国际人工智能联合会议上,David Gunning就最新成果的可解释性进行了总结。
— MIT在Innovation Showcase活动中选择了机器学习领域初创公司Rulex成为入围选手,Rulex实现了一种名为Switching Neural Networks的技术,可用于了解分类和回归规则集的可解释性。
— 在O’Reilly Radar活动中,Marco Tulio Ribeiro、Sameer Singh以及Carlos Guestrin介绍了本地可解释的模型无关解释(LIME),这种技术可以对任何机器学习分类器的预测进行解释。
— 华尔街日报也报道了Capital One开发出能解释决策背后原因的机器学习技术所做的努力。
在Nautilus杂志中,Aaron M. Bornstein问到:人工智能是否会永远这样“神秘”下去?这方面目前存在若干问题,包括缺乏对“可解释性”含义的明确界定。
“审查过程中的可解释性”和“功能的可解释性”必须明确加以区分。评估机动车时我们不会拆解出发动机和各种零件分别进行评估,只须坐进去试驾就够了。因此某种程度上我们只能通过最终的行为结果对机器学习模型进行评估,而非分别评估其中的不同组件。
在财富杂志九月份的一篇文章中,Roger Parloff解释了为什么深度学习技术会突然之间改变我们的生活。神经网络和深度学习并非新技术,最近这些技术才得以广泛运用主要是出于三个原因:
— 运算能力便宜了,并且会更加便宜,相关讨论请参阅下文有关超级计算的章节。
— 深度学习技术在“认知”应用程序,例如图像分类、语音识别,以及语言翻译等领域取得了不错的效果。
— 研究人员发现了设计和训练深度学习模型的新方法。
2016年,深度学习驱动的认知应用程序领域还将达成全新里程碑:
— 微软团队开发了一套能像人类一样识别谈话内容的系统。该团队曾使用卷积(Convolutional)和长短期记忆(LSTM)神经网络开发出Microsoft Cognitive Toolkit(CNTK)。
— 在Google Research博客上,Google Brain团队公布了Google Neural Machine Translation System,这个基于深度学习的系统目前每天被用于处理1800万次翻译请求。
— TechCrunch的Ken Weiner报道了深度学习驱动的图像识别领域最新进展,以及所能产生的影响。
风险投资家正在积极投资能够运用深度学习技术的初创公司,尤其是能通过认知解决方案在市场中脱颖而出的公司:
— Affectiva,使用深度学习技术识别数字化视频中的面部表情,获得了Fenox Venture Capital提供的1400万美元D轮投资。
— Clarifai,提供深度学习驱动的图像和视频识别服务的初创公司,得到了Menlo Ventures提供的一系列总额3000万美元的B轮投资。
— Zebra Medical Vision,一家通过深度学习技术识别医学影象,诊断骨骼、大脑、心血管系统、肝脏,以及肺部疾病的以色列初创公司公布了获得Intermountain Health提供的1200万美元风险投资。
越来越多初创公司组成的新兴生态正在通过深度学习构建自己的业务,例如:
— Deep Genomics,这家多伦多公司使用深度学习技术研究疾病、疾病的突变,以及基因疗法。
— 网络安全初创公司Deep Instinct使用深度学习技术预测、阻止、检测针对企业计算系统的威胁。
— Ditto Labs使用深度学习技术识别社交媒体所发布图片中包含的品牌和徽标。
— Enlitic提供了基于深度学习的病患分流、疾病筛查和临床支持,借此提高医学专家的生产力。
— Gridspace提供了基于深度学习技术的谈话识别系统。
— Indico提供了对社交媒体中文字和图片进行分析的深度学习工具。
自然语言处理领域的初创公司Idibon资金耗尽并关闭,这一迹象表明深度学习技术的商业化开发也并非全都是炒作和泡沫。随着财力雄厚的大型供应商逐渐涉足这一领域,我们将看到再DL工具市场方面出现进一步的合并。对刚进入这一领域的企业来说,专用应用程序可能是他们最大的机会,借此他们可以针对那些众所周知的问题提供相关领域的技能和打包式的解决方案。
为了让深度学习变得更实用,我们需要极为强大的运算能力。2016年,硬件供应商公布了专为机器学习和深度学习打造的,更强大的新平台。
虽然目前主流的做法是通过GPU进行加速,但在深度学习领域,GPU与FPGA的优缺点也引发了广泛的争议。Anand Joshi介绍了FPGA所面临的挑战。The Next Platform的Nicole Hemsoth介绍了同时利用两种方式进行加速的混合做法所蕴含的潜力。2016年,微软也公布了将会使用Altera FPGA,而百度称自己更倾向于选择标准化的Xilinx FPGA。
2016年的NVIDIA犹如一头猛兽,过去的一年里市值翻了三倍。该公司发布了DGX-1,一款面向深度学习的超级计算机。DGX-1包含八颗Tesla P100 GPU,每颗的运算速度均比NVIDIA之前的评测基准快12倍。只须12.9万美元即可获得能与装备有250颗CPU的服务器相等程度的运算能力。
NVIDIA还发布了深度学习SDK,其中包含有关深度学习的基元、数学库、多GPU通信工具、CUDA工具包和DIGITS,以及一个模型训练系统。该系统可支持主流的深度学习框架,如Caffe、CNTK、TensorFlow以及Theano。
DGX-1的早期用户包括BenevolentAI、PartnersHealthCare、阿贡和橡树岭实验室、纽约大学、斯坦福大学、多伦多大学、SAP、Fidelity Labs、百度,以及瑞士国家超算中心。Nicole Hemsoth介绍了NVIDIA通过深度学习超级计算机为癌症研究所提供的支持。
克雷也发布了Urika-GX,这是一种预装Hortonworks Data Platform、Cray Graph Engine、OpenStack管理工具,以及Apache Mesos的超级计算装置,可搭载Intel Xeon Broadwell处理器、22TB内存、35TB本地SSD存储,以及克雷的高性能网络互联接口。克雷在第三季度可交付单机架16、32或48节点的配置,预计2017年将能交付更大规模的配置。
Wired有关谷歌深度学习芯片的头条报道:英特尔该惊慌失措了看起来很有先见之明。英特尔收购了仅成立28个月的深度学习软硬件解决方案初创公司Nervana Systems,根据Re/code的报道,收购价格高达4.08亿美元。技术媒体按照惯例发布的有关“独角兽”的报告自然蜂拥而至。
此外英特尔还收购了Movidius,这家公司将深度学习芯片装入了存储卡中。
机器学习的用例与云平台密不可分。工作负载具备即席性,面向具体项目,模型的训练需要在短时间内投入大量运算能力。负责得出推论的工作负载则体现出截然不同的模式,也正是因为如此这般的原因,负责训练和推论的工作负载应该分别选择最适合的平台。
在年初发布了没人愿意使用的深度学习项目DSSTNE作为烟雾弹后,AWS宣布将通过MXNet实现深度学习的标准化。此外AWS还新发布了三款托管式机器学习服务:
— 用于图像识别的Rekognition
— 用于文字到语音转换的Polly
— 对话聊天机器人开发平台Lex
2014年,AWS成为市面上首家提供GPU加速云服务的云平台。2016年,AWS提供了最多包含16颗Tesla K8- GPU的P2实例。
通过在2015年以CNTK的形式发布,微软将自己的深度学习框架更名为Microsoft Cognitive Toolkit,并发布了2.0版,其中新增了Python API以及诸多其他改进。该公司还通过Azure发布了22种认知API,涵盖视觉、语音、语言、知识,以及搜索。此外微软还发布了适用于Azure HDInsight的Spark托管服务,并继续对Azure机器学习服务进行着完善。
微软还发布了Azure N系列计算实例,该系列由NVIDIA GPU驱动,并已于12月正式上市。
Azure是微软高级分析整体战略中的一环,具体内容我们还将在第三篇中介绍。
谷歌于二月发布了TensorFlow Serving,根据Noah Fiedel在Google Research Blog上的解释,这是一种开源的推论引擎,可用于处理训练后模型的部署并可对整个生命周期进行管理。
谷歌于春末发布了自行构建的专有深度学习芯片Tensor Processing Unit(TPU)。高性能计算领域专家Karl Freund在福布斯杂志上对谷歌的公告进行了解读。Freund认为TPU主要会被用于推论,而非模型的训练,换句话说,它取代的是CPU而非GPU。
为了推动Google Cloud Machine Learning继续发展,谷歌于10月组建了一个专门的团队,并宣布了有关该服务的一系列改进:
— Google Cloud Jobs API为企业提供了查找、匹配求职者,提供工作建议的能力,目前处于有限Alpha预览阶段。
— Cloud Vision API已能运行于谷歌自己的Tensor Processing Unit,价格降低了80%。
— Cloud Translation API将发布标准版和高级版两个版本。
— Cloud Natural Language API已完工并可正式上市。
2017年,Google Compute Engine和Google Cloud Machine Learning将可使用GPU加速实例,详见这里。
2016年,IBM对假新闻的涌现做出了巨大贡献。
6月的Spark Summit活动中,IBM大张旗鼓地公布了一款名为IBM Data Science Experience的服务。但很多老练的观察家发现这则消息让人费解,他们的媒体通稿中描述了一种适用于Apache Spark,使用Jupyter IDE的托管服务,但当时IBM已经有适用于Apache Spark且使用了Jupyter IDE的托管服务了。
11月,IBM低调地发布了另一个服务,并且没有提供新闻通稿,这也完全可以理解,毕竟没什么值得炫耀的。果不其然,这又是一个使用Jupyter IDE的Spark服务,但同时又包含了R服务和Rstudio,以及一些仓促写就的“社区”文档和“精心策划”的数据来源,据称已经可以在数百个地区免费使用了。真了不起。
IBM在机器学习方面还有其他重大举措,该公司重新发布了原有的SPSS服务,只不过这次改名为Watson Machine Learning。分析师们纷纷为这个服务鼓掌喝彩,但是竟然没人真正登录上去看看他们发布的到底是啥。
当然,IBM称对于该服务的完善他们制订了宏伟的计划。IBM能有计划还真是棒。我们每个人都渴望更大规模,更好的产品,但是也要注意,尽管IBM非常善于“重塑”被人开发出来的成果,但该公司在历史上还从未开发出任何一款在商业上获得成功的高级分析软件产品。
IBM Cloud是IBM宏伟战略的组成部分,所以我打算在第三篇中详细谈一谈。第二篇:开源项目的发展
目前市场上有上千种开源项目,本文无法一一涉及。我们会通过对数据科学家进行的调查结果,以及OpenHub公布的开发活跃度,根据使用率选择最主要的项目来介绍。本文仅介绍非盈利机构提供的,以及虽然获得了商业投资,但并不提供软件许可的项目。
R和Python依然是开放式数据科学领域最主要的工具。Python与R之间的争议虽然还在继续,但也在不断达成新的共识,因此数据科学家可能需要考虑同时学习这两者。R在统计库方面更有优势,所提供的机器学习技术在配合小规模数据使用时更为灵活。Python更适合于应用程序的开发,并且Python的开源许可对商业化应用程序开发工作的限制更少。
毫无疑问,深度学习框架领域充满了活力,TensorFlow、Microsoft Cognitive以及MXNet远远领先于Caffe和Torch等更加成熟的产品。值得注意的是,2014年发布的深度学习工具现在看来已经显得老迈了。
2016年,R用户社区还在扩张。R在O’Reilly 2016年度数据科学家薪资调查中仅次于SQL位居第二,在KDNuggets投票中位居第一,在Rexer调查中也居首位。R在IEEE Spectrum评价中位居第五。
R的功能也在飞速增加。4月,微软的Andrie de Vries称作为R的最主要程序包仓库,CRAN中已包含超过8,000个程序包。到12月中旬,程序包总数已达到9,737个。CRAN中机器学习程序包的数量和功能均在显著增长。
Linux基金会的合作项目:R Consortium在2016年也取得了一些进展。随着IBM和ESRI的加入,该项目的成员现已包括Alteryx、Avant、DataCamp、谷歌、Ketchum Trading、Mango Solutions、微软、Oracle、Rstudio,以及TIBCO。目前共有三个工作组和八个已获注资的项目。
Hadley Wickham今年过得不错。作为R项目最主要的贡献者之一,Wickham与人合著了《R for Data Science》并于9月发布了tidyverse 1.0.0。在The tidy tools manifesto中,Wickham介绍了tidy API的四大基本原则。
《Applied Predictive Modeling》一书的作者兼机器学习caret程序包的开发者Max Kuhn于11月加入了Rstudio。Rstudio还曾从微软挖角聘请了Joseph Rickert。
AT&T Labs用R完成了一些让人印象深刻的成果,包括使用Hadoop和其他数据平台为堆外(Out-of-core)处理开发的分布式后端。在UseR!大会上,Simon Urbanek进行了简单的总结。
今年在R领域进行的各种有趣分析无法一一列举。David Robinson对唐纳德·特朗普推文的分析令很多人产生了共鸣,通过使用tidyverse、tidytext和twitteR,Robinson已经能够区分推文内容到底是特朗普自己发布的,还是手下员工用他的账号发布的。
在Revolutions博客上,微软的David Smith调查了R社区内女性角色的增长。
在2016年度 KDNuggets投票中,被调查的数据科学家中46%称自己在过去12个月里曾将Python用于分析、数据挖掘、数据科学,或机器学习项目。而这一比例在2015年为**30%,当时仅次于R。在2016年度O’Reilly数据科学家薪资调查中,Python位居第三,仅次于SQL和R。
Python软件基金会(PSF)扩大了资助的范围和金额。PSF为全球推广Python教育和培训的组织提供了大量小额资助,并为Python in Education网站设计、改进程序包生态(见下文)、Python 3.6 Beta 1发布、重要的Python会议等项目提供了大额资助。
Python Packaging Authority发布了Warehouse项目,并以此取代原有的Python Packaging Index(PyPI)。该项目的目标包括更新视觉识别系统、提高程序包的可发现性,以及改进对程序包用户和维护者的支持。
PSF在12月发布了Python 3.6.0和Python 2.7.13。Scikit-learn团队发布的0.18版本中包含大量改进和Bug修复,在这之后很快他们还发布了维护发布版本的0.18.1。
机器学习领域很多重要的Python开发者均通过Python API的形式对外提供程序包,例如Spark、TensorFlow、H2O以及Theano。下文将分别进行介绍。
Continuum Analytics预计今年将针对Python提供商业支持,并提供商业性的软件许可扩展,这些将在第三篇文章中介绍。
具备机器学习能力的Apache项目共有十个。当然其中Spark的用户数、活跃贡献者人数、提交数,以及增加的代码行数最多。在开发活跃度方面Flink紧随其后位居第二,不过大部分Flink粉丝最关注的是其基于事件的流功能,而非机器学习能力。
具备机器学习能力的顶级Apache项目共有四个:Spark、Flink、Mahout,以及OpenNLP。Apache Spark
Spark团队提供了主要发行版Spark 2.0以及六个维护版本。这些版本中有关Spark机器学习能力的重要改进包括通过DataFrames API、PySpark和SparkR提供的更多算法,以及保存和加载机器学习模型与管道的能力。基于DataFrames的API现已成为Spark中主要的机器学习接口,不过该团队还将继续支持基于RDD的API。
Spark的图形引擎GraphX没什么变化。Spark 2.0包含了对Spark的SQL以及流能力的很多其他改进。
2016年,第三方为Spark Packages增加了24个机器学习程序包。
Spark用户社区还在继续扩张。Databricks报告称Spark Summit与会者人数增加了30%,Spark Meetup成员数增加了240%。Databricks的年度用户报告称在生产环境中使用Spark机器学习库的受访者人数增加了18%,而2015年这一比例为13%。2016年度 KDNuggets投票中接受调查的数据科学家中有22%称他们在使用Spark,2016年度O’Reilly数据科学家薪资调查称,21%的受访者在使用Spark。
从Databricks的调查中还可以发现,61%的用户在公有云中使用Spark,这一比例在2015年为51%。截止2016年12月,各大主要公有云供应商(AWS、微软、IBM、谷歌)均提供了Spark服务,此外还有Databricks、Qubole、Altiscale,以及Domino Data为数据科学家提供的增值托管式服务。Apache Flink
dataArtisans的Mike Winters回顾了Flink在2016年取得的成就,但并未使用“机器学习”这个词。这是因为Flink的机器学习库依然非常有限,很明显,Flick最吸引用户的依然是流运行时。
虽然使用预测模型对数据流进行评分已经出现不少用例,但现实世界中很少有通过数据流对预测模型进行训练的用例。机器学习模型只有在用户量大到一定程度后才会显得有用,但只有当创建数据的过程处于稳定状态后才可能获得更多用户。如果某个过程已经处于稳定状态,到底是使用一批静态数据或使用流式数据进行训练将显得无关紧要,此时归于同一数学领域的最新事件将成为“上一条”事件。如果最新事件导致模型产生较大改动,那么这样的过程并不算处于稳定状态,因而我们无法依赖这样的模型对未来事件进行预测。
Flink目前尚不支持导入PMML模型,而这样一个相对简单的改进将使得用户能够使用其他地方建立的模型通过流式数据进行预测。目前大部分流引擎均已支持这样的能力。
有些用例中Flink基于事件的流更胜过Spark的微批。然而对我来说,大部分情况下面对所要解决的问题,Flink都是一个优雅的解决方案。Apache Mahout
Mahout团队发布了四个Double-dot版本。重要改进包括Samsara数学环境以及支持使用Flink作为后端。大部分单机和MapReduce算法已被弃用,仅剩针对Spark、H2O和Flink提供的矩阵运算库。Apache OpenNLP
OpenNLP是一种处理自然语言文本的机器学习工具包。该工具还没死,只不过正在休眠。孵化器项目
2016年,有两个机器学习项目进入了Apache孵化器,目前尚未“毕业”,因而截止年底孵化器中还留有六个进行中的项目:SystemML、PredictionIO、MADLib、SINGA、Hivemall,以及SAMOA。SystemML和Hivemall是最有希望在2017年“结业”的选手。机器学习项目
本节将介绍能支持各类算法,如分类、回归、聚类以及关联的常规用途机器学习平台。根据使用量和开发活跃度,下文将涉及H2O、XGBoost以及Weka。
还有另外三个项目值得一提,它们提供了图形用户界面,因而对业务用户更有吸引力。KNIME和RapidMiner除了提供商业许可版本,还提供了开源版软件;我们会在这一系列文章的第三篇进行介绍。Orange是源自斯洛文尼亚卢布尔雅那大学生物信息学实验室、计算机与信息科学学院的一个项目。
Vowpal Wabbit尤为值得一提。Kaggleists以快速高效的学习算法而知名,VW目前的用户体量太小,无法实现全面的覆盖。该项目目前已被并入微软研究院,很期待看到微软能通过该项目发展出什么有趣的东西。H2O
H2O是商业化风投公司H2O.ai的开源机器学习项目(我们将在第三篇介绍H2O.ai的业务成果)。
2016年,H2O团队更新了Sparkling Water,借此改善与Spark 2.0的兼容性。Sparkling Water可以帮助数据科学家将Spark的数据摄入和ETL能力与H2O机器学习算法结合在一起。该团队还发布了首版Steam,该组件可支持大规模模型管理和部署,此外还发布了用于深度学习的Deep Water预览版。
2017年,H2O.ai计划提供自动化机器学习能力,并发布生产用版本的Deep Water,届时将支持TensorFlow、MXNet以及Caffe作为后端。
根据H2O.ai的介绍,H2O的用户数量在2016年增加了超过一倍。XGBoost
华盛顿大学分布式机器学习平台(DMLC)下的XGBoost项目是一种优化的分布式梯度提升库,主要被对缩放能力和精确度有极高要求的顶尖数据科学家所使用。2016年上半年,Tianqi Chen和Carlos Guestrin发布了论文介绍了该算法。机器学习领域初创公司DataRobot和Dataiku在2016年将XGBoost加入了自己的平台。Weka
Weka是一系列由Java编写的机器学习算法,由新西兰怀卡托大学开发,通过GPU许可发布。Pentaho和RapidMiner在自己的商业化产品中包含了该软件。
本篇谈及Weka是因为该技术依然被少数重量级数据科学家使用着,在Kdnuggets的年度投票中,11%被调查者称他们在使用该软件,然而统计发现过去几年来,该软件的用户数正在飞速减少,开发工作也几乎停摆,也许该项目如其名称一般,将步那只不能飞翔的鸟类后尘。深度学习框架
本节主要介绍深度学习方面的软件。很多常规用途的机器学习程序包也支持深度学习,本节主要介绍专门为深度学习开发的程序包。
在2015年底面世后,谷歌的TensorFlow和微软的Cognitive Toolkit从零开始一举跃升为该领域的领军产品。虽然在亚马逊和其他厂商的支持下,MXNet也取得了强劲的增长,但Theano和Keras主要活跃在Python的世界中。与此同时,其他更老也更成熟的框架,例如Caffe、DL4J和Torch已逐渐被后浪拍死在沙滩上。
有钱能使鬼推磨,商业化支持很重要。得到谷歌、微软、亚马逊支持的项目无疑能在2017年取得更大的进展。TensorFlow
无论从用户数量或开发活跃度来看,TensorFlow都是领先的深度学习框架。谷歌在2015年发布的这一深度学习平台以创纪录的速度从默默无闻发展为领军产品。
四月,谷歌发布了TensorFlow 0.8,该版本开始支持分布式处理。开发团队在2016年还发布了另外四个版本。
同样是在四月,谷歌的人工智能研究部门DeepMind宣布计划从Torch切换至TensorFlow。
谷歌于九月在TensorFlow中发布了自己的首个图像字幕模型。Google Brain团队称该模型在ImageNet 2012评测中准确识别出94%的图像。
12月,Constellation Research评选了TensorFlow获得企业软件领域2016年度创新奖,并赞赏了该技术在谷歌服务中的广泛运用和强有力的开发者社区。Microsoft Cognitive Toolkit
2016年,微软将自己的深度学习框架更名为Microsoft Cognitive Toolkit(MCT),并发布了2.0 Beta版,根据VentureBeat的Jordan Novet报道,新版本支持全新Python API并包含大量其他改进。
在12月初举行的神经信息处理系统(NIPS)大会上,Cray宣布已在包含超过1,000个NVIDIA Tesla P100 GPU加速器的Cray XC50超级计算机上成功运行了MCT。
此外微软和NVIDIA也宣布将通过合作支持在Azure或用户本地环境的Tesla GPU上运行MCT,并将支持在使用Pascal GPU的NVIDIA DGX-1超级计算机上运行。Theano
Theano是蒙特利尔大学Montreal Institute for Learning Algorithms旗下的项目,这是一种适用于计算密集型科学调查的Python库。该项目可供用户使用多维数组有效地定义、优化、评估数学表达式(参见这里)。与CNTK和TensorFlow类似,Theano已成为神经网络的代表性符号。
该团队于3月发布了Theano 0.8,该版本为多种GPU提供了支持。2016年还发布了另外两个Double-dot版本,增加了对CuDNN v.5的支持并修复了多个Bug。MXNet
MXNet是一种可缩放的深度学习库,也是华盛顿大学分布式机器学习平台(DMLC)下的另一个项目。该产品可运行于CPU、GPU、群集、桌面,以及手机上,可支持Python、R、Scala、Julia、Matlab以及Javascript API。
对MXNet来说,2016年的第一大新闻是被Amazon Web Services 选用。Craig Matsumoto对此有报道,Serdar Yegulalp对此进行了介绍,Eric David进行了深入解读,Martin Heller给出了评论。Keras
Keras是一种运行在TensorFlow或Theano之上的高级神经网络库。该项目最初由谷歌的Francois Chollet创建,2016年Keras有超过200个活跃的贡献者。
在赫芬顿邮报中,Chollet介绍了Keras与其他深度学习框架的不同之处。简单来说:Keras可以将深度学习架构从计算后端中抽象出来,因此可以轻松地从Theano移植到TensorFlow。DL4J
本节内容根据Skymind CEO Chris Nicholson的评论有所更新。
Deeplearning4j(DL4J)是商业风投公司Skymind的项目。这是一种开源的分布式深度学习库,使用Java和Scala编写。通过与Hadoop和Spark的集成,DL4J可运行在分布式GPU和CPU上。Skymind的评测结果远远胜过Caffe、TensorFlow和Torch。
虽然亚马逊、谷歌和微软都在自己的云平台上推广深度学习技术,Skymind的目标是将深度学习技术带到标准企业架构中,为希望在本地训练模型的企业提供帮助。对此我将信将疑,但这无疑是一种可靠的战略。Skymind在9月接受了一大笔种子轮投资,应该足够他们撑过这段时间了。对于在Xeon服务器上运行的深度学习框架,英特尔肯定是喜闻乐见的,也许这也是一种可能的出路。
Skymind提出将使用Keras作为Python API,这样他们的项目才能更容易被数据科学家使用。Caffe
Caffe是Berkeley Vision and Learning Center(BVLC)的一个项目,这是一种以开源BSD许可方式发布的深度学习框架。以BVLC在视觉和图像识别领域的成果为基础,Caffe的核心优势在于能够对卷积神经网络(CNN)建模。Caffe使用C++编写,用户可通过Python API或命令行接口与Caffe交互。Caffe中训练的深度学习模型可通过编译在大部分设备,包括Windows上运行。
但是Caffe在2016年似乎没搞出什么大新闻。第三篇:机器学习的公司状态
本部分将介绍大型科技公司在机器学习和深度学习领域的举措,这些行业领军公司在软件开发和市场营销方面往往有更充沛的预算。本文要介绍的大型公司包括:
—SAS,分析预测技术领域软件收入最高的企业,具备一种独一无二,自成一派的业务模式。
— 诸如IBM、微软、Oracle、SAP以及Teradata等公司,在数据仓库市场上占据优势地位,除Teradata之外其他几家公司均提供了获得广泛应用的商业智能软件。这些公司具备为现有客户群开发、营销,以及交叉销售各类机器学习软件所需的财务优势,只要愿意,就能在市场中产生极大的反响。
—戴尔和HPE作为高级分析市场的新手,已在2016年黯然退场。
第一篇曾介绍过谷歌和Amazon Web Services。虽然这两家公司目前在业务分析领域尚无太大建树,但正在向着这个方向发力。为了涉足这个市场,谷歌今年已经设立了Google Cloud Machine Learning这一独立产品组,亚马逊也已提供了一个名为QuickSight的业务分析服务。
熟悉我的读者都知道,我更喜欢开源软件,大部分数据科学家也是如此。在本篇将要介绍的诸多公司中,IBM和微软已经对开源模式做出了大量承诺,包括直接向开源软件项目提交贡献。这样的举措值得鼓励。Teradata开始对Presto SQL进行投入,这一行为值得为之鼓掌。Oracle和SAP在自己的解决方案中使用了开源软件,但并未作出太大贡献。SAS拥抱开源的姿态总给人造成一种“视死如归”的感觉。
根据IDC调查,在高级和预测式分析软件市场中,SAS的软件许可收入居于首位。该公司有一大批统计学、精算师、生命科学家,以及其他在工作中需要严重依赖统计分析结果的用户。
乍看起来,SAS正在极力从基于服务器的计算软件供应商向着最新的分布式架构和云计算时代转型。过去十年来,为改善自家产品的性能和缩放性,该公司公布了多项举措,但结果有好有坏。4月,SAS公布了Viya,这是该公司第三次企图为分布式MPP架构提供高级分析软件。
SAS Viya是什么?与SAS以往提供的高性能软件有何不同?宣传册里有介绍:
云就绪,弹性,可缩放
SAS Viya的开发充分考虑到私有和公有云环境的弹性和可缩放性。内存中分析运算已针对更自由的环境进行优化,但也可通过调整融入受到各种限制的环境中。弹性处理能力可自动适应不同需求和可用资源的数量,并可按需对计算容量进行扩大或缩小。弹性缩放能力使得用户能够快速针对不同使用场景进行实验,并对更大数量的流数据应用更复杂的方法。
嗯,任何软件都是“云就绪”的,就好像无论在本地或云中运行,Linux实例始终就Linux实例。当然在将任何软件部署到虚拟装置,例如Amazon Machine Image中之后,任何软件都将具备弹性,SAS 9.4也不例外。虽然SAS在2014年将其称之为“云就绪”,但就算更老版本的SAS也可以部署在AWS中,尽管SAS并不为其提供官方支持。
然而如果你想构建这样的软件实例,还必须具备软件许可。对于Python、R或Spark这样的开源软件来说,许可完全不是一个问题,想搭建几个实例都行,完全不需要担心是否会违反许可协议。商业化软件就复杂多了,必须为想要运行的实例支付许可费用。一些供应商,例如HPE和Teradata曾经尝试通过自己的云平台与Amazon Web Services进行竞争,并最终悲惨地失败了。其他一些厂商,例如Oracle则选择与AWS合作在云平台提供自己的软件,例如使用捆绑的托管式服务,或选择“自带许可(Bring Your Own License,BYOL)”模式。
换句话说,如果没有灵活的许可模式,就无法用商业化软件获得弹性计算能力。但灵活的许可模式会对SAS这样的供应商造成一个问题:如果客户只为自己使用的东西付费,毫无疑问他们最终支付的费用会远远少于常规许可方式的费用。这是因为大部分商业化软件的客户实际上是过度许可的:会为大量自己根本没有使用的软件付费。整个软件行业在本地部署软件许可费用的收入减少幅度远大于从云订阅中所获得收入的增速。云环境真正实现了“付出更少,做的更多”。
底线是:除非Viya提供更灵活的定价模式,否则没人会关心它的“云就绪,弹性,可缩放”。
如果想找点乐子,下次当你的SAS客户代表鼓吹Viya的弹性时,不妨问问对方这软件每使用一小时,软件许可需要花多少钱,然后欣赏一下对方纠结的表情吧。
在接受福布斯的采访时,SAS CEO Jim Goodnight提到了Viya的优势:
我们已经面向大数据做好了准备…(我们)刚刚发布了全新架构Viya的第一个版本,主要面向大规模并行计算领域,可将数据分散到数十台服务器上,随后使用这些服务器的所有处理器内核并行处理数据。也许同一时间可以并行通过500个内核处理这些数据,这种能力使得我们的产品可以应对某些非常非常大规模,以前根本无法解决的问题,例如逻辑回归。
也许有人可以为G博士提供更充分的论据。顺便要提一下,在大规模并行(MPP)环境中运行的商业化逻辑回归软件早在1989年就已问世。目前有很多软件包提供了分布式逻辑回归功能,包括SAS五年前发布的软件包。
在高性能分析领域,Viya也许会比SAS的前几次突破实现更好的效果。然而他们所面临的障碍本身也不大,SAS迫切需要证明他们高成本专有分布式框架比Apache Spark更优秀,而Spark正在快速成为企业大数据平台的新标准。
虽然SAS的多个产品均支持机器学习技术,但缺乏深度学习能力。SAS营销团队针对深度学习制作了一些有用的内容,但仔细看看这些内容你会发现,根本没有什么能真正提供深度学习能力的产品。没错,我知道SAS Enterprise Miner支持多层感知器(Multilayer perceptron),但SAS不支持GPU、Xeon Phi、Intel Nervana,或任何其他能够让你不用等到老就能完成深度神经网络训练任务的高性能架构。
如果你认为用一台服务器运行一款18岁高龄的产品就足以胜任你的深度学习项目,那你说的一定是SAS。然而要注意,NVIDIA的DGX-1,这款借助GPU加速的深度学习硬件设备具备250台传统服务器运算能力的强大性能,这是有原因的:你真的需要这么强大的运算能力。
SAS的其他业务似乎发展的挺顺利。庞大的现有客户群所产生的续订、升级,以及超售行为可以让他们在2016年实现比较低的个位数收入增长率,考虑到IBM、Oracle,以及Teradata的业务下滑,这样的成绩不算很差。
根据IDC最新的全球软件市场份额报告,本节介绍的五家公司在业务分析软件方面每年至少赚到十亿美元销售额。然而他们的大部分收入来自数据仓库和商业智能软件,其实都沿袭了SAS在预测分析领域的收入模式。
然而“软件许可收入”是一种容易造成误导的指标,因为现在开源软件的应用越来越普遍。例如IBM、微软,以及Oracle都在大量使用开源的机器学习软件对自家的数据仓库和商业智能平台进行扩展,而这些领域都是他们的强项。IBM使用Spark作为自己众多产品的基础。微软也已将R集成在SQL Server和PowerBI中,并积极地向自己的企业客户推广R。Oracle也采取了类似做法。
与SAS不同,日渐衰弱的科技巨头IBM从未给自家的旗舰级高级分析软件SPSS开发过任何专有的分布式框架。相反,这家公司选择使用数据库内引擎(DB2、Netezza和Oracle)以及开源框架(MapReduce和Spark)。
IBM对Apache Spark有贡献,并将其用在自己的很多产品中,此外还对Apache SystemML有贡献。IBM Research开发了SystemML的核心,并在2015年将其捐献给Apache。IBM还通过各种教育和培训对Spark社区做出了大量贡献。
2016年,IBM依然以2007年收购而来的SPSS Statistics和SPSS Modeler为主要营销目标。SPSS Modeler的Release 18版本于3月发布,包含诸多改进,例如为DB2提供了对机器学习的支持,以及在BigInsights中提供了针对IBM General Parallel File System(GPFS)的支持。然而没几个数据科学家关心这些,貌似只有150多个企业的CIO依然笃信没人会因为买了IBM的产品而被炒鱿鱼。
第一篇文章曾经提过,IBM的机器学习产品正在逐渐迁入IBM的云平台,用莎士比亚的名言代表我的想法吧:无事生非(Much Ado About Nothing)。
微软今年在机器学习和深度学习领域收获不错。正如在第一和第二篇文章中提到的,2016年,微软通过Azure发布了一系列涵盖视觉、语音、知识,以及搜索的认知API,并通过Azure HDInsight提供了Spark托管服务,同时还完善了Azure机器学习,并以Microsoft Cognitive Toolkit为名发布了2.0版深度学习框架。
这才只是开始。
1月,微软发布了Microsoft R Server,该产品源自微软2015年收购的Revolution Analytics。Microsoft R Server包含一套增强的R发行版,一个可缩放的后端,以及其他集成工具。这一年里,微软发布了R Server的两个重大版本,第8版中增加了与Spark的Push-down集成,第9版更新了适用于Spark 2.0的Spark集成,并增加了MicrosoftML,这是一个适用于机器学习的新版R软件包。
微软3月发布的SQL Server 2016内含SQL Server R Services。在Revolutions博客上,David Smith报道了此次发布的新版,同时Tomaž Kaštrun解释了SQL Server中的R服务所能实现的用途。
11月,经过进一步预览后,微软正式发布了适用于Azure HDInsight的R Server,这是一种专门针对HDInsight打造的,可横向缩放,能与Spark群集集成的R。
微软还为Azure提供了一个Linux版本的Data Science Virtual Machine(DSVM)。这种针对数据科学家提供的虚拟机以前只能运行Windows实例,DSVM内含Revolution R Open、Anaconda、Visual Studio Community Edition、PowerBI Desktop、SQL Server Express以及Azure SDK。
PowerBI是一套功能强大的微软数据可视化工具,该工具于8月开始支持R。ComputerWorld的R用户Sharon Machlis对此感到极为激动。此外Revolutions博客对此也进行了介绍。
R Tools for Visual Studio在3月发布了公开预览版,并于9月正式发布。同样在9月,微软还发布了Microsoft R客户端,这是一款免费的数据科学家工具,可配合Microsoft R Open和ScaleR分布式后端运行。
微软数据科学家Gopi Krishna Kumar、Hang Zhang以及Jacob Spoelstra联手开发了一种适用于数据科学家的方法论,并在9月举行的2016年度微软机器学习和数据科学峰会中进行了介绍。David Smith对此有报道。发明者们将该方法称之为Team Data Science Process,提供了一种可使用诸如Git等系统管理项目内容的标准化目录结构,此外还包含为整个过程提供支持的开源工具。
除此之外,雷德蒙特这一年在其他方面都较为平淡。
对于严重依赖Oracle产品的用户,Oracle提供了一系列极为强大的机器学习工具,包括:
— Oracle Data Mining(ODM),一种可作为原生SQL函数在Oracle Database中运行的机器学习算法套件。
— Oracle Data Miner,适用于ODM的客户端应用程序,并提供了适用于业务用户的界面。
— Oracle R Distribution(ORD),一个增强的免费R发行版。
— Oracle R Enterprise(ORE),Oracle R Distribution程序包,提供了将R与Oracle Database集成的工具。
— Oracle R Advanced Analytics for Hadoop(ORAAH),一系列包含原生算法和Spark接口的R binding。
Oracle宣称ORAAH的原生算法比Spark速度更快,但ORAAH只有两种算法,所以也没人会在乎。Oracle有一家合作的OEM厂商Cloudera,因此这个版本的Spark至少也算是一个比较重要的版本。
除了上文列出的这些产品,Oracle在2016年貌似也没别的什么重大产品发布。
SAP发布了新版的预测式分析产品,并将其更名为SAP Business Objects Predictive Analytics 3.0。该产品包含两套相互独立的自动化功能,一套名为Predictive Factory,另一套名为HANA Automated Predictive Library。Predictive Factory与SAS Factory Miner类似,是一种脚本工具,可以帮助数据科学家创建模型管道,并对其执行进行调度,但该工具无法对数据科学流程本身实现自动化。HANA Automated Predictive Library是一系列可包含在SQL脚本中的函数调用。
HANA Automated Predictive Library是一系列可包含在SQL脚本中的函数调用,但该产品可能只适合SAP HANA的狂热用户,并不适合其他人。
SAP在2014年收购了KXEN以及该公司旗下的InfiniteInsight软件。根据Gartner的调查,该公司的客户满意度已跌至谷底,SAP也已落后于所有其他高级分析产品供应商。以前的InfiniteInsight用户开始产生两个阵营:(a)IT部门已经开始大量投资SAP产品的用户,以及(b)其他所有用户。前者似乎对这些软件的依赖性很强,而SAP已经开始将其集成于自家产品中;后者则在争先恐后地逃离。
日渐衰败的数据仓库供应商Teradata认为自己可以提供极为强大的分析能力。实际上,该公司的大部分收入来自数据仓库业务,在这个领域,诸如Gartner等分析师给出了较高的评价。
也许可以说Teradata在整个栈的底层有着居高临下的地位。
Teradata的高管们(如果可以这样称呼他们的话)彻底忽视了Hadoop和云计算的影响力。相反,他们笃定地认为Teradata这个品牌是IT高管们的挚爱,用户还会大批大批地购买他们的设备。这种狭隘的世界观导致该公司现在的市值已缩水至五年前的三分之一。他们的产品销量已经连续十季度下滑,并连着七个季度遭遇两位数的下滑。
经历了低靡的一季度后,Teradata的董事会炒掉了接受了CEO Mike Koehler的辞呈,并由董事会长期成员Victor Lund接任CEO职务。9月的Teradata合作伙伴大会上,Lund宣布了Teradata会将自己重新定位为一家“分析解决方案”公司。
这还怎么与SAS友好地“在一起”?作为Teradata在高级分析软件方面的主要合作伙伴,SAS也将自己定位为一家“分析解决方案”公司。当然,不同之处在于,SAS在提供这种解决方案方面已经有很久远的历史,并与用户企业的高管建立了一定的“街头信誉”,毕竟他们的业务解决方案还是挺成熟的,包含实用的软件和自己的知识产权,而Teradata除了“改变世界的伟大想法”和PowerPoint幻灯片,似乎什么都没有。
给Teradata的管理层支个招:嘴上说要向着价值链的上游进军,并不意味着你就有这样的能力。
其他方面,该公司宣布Aster终于可以支持Spark了,但早在两年前就没人在乎这事啦。Teradata还宣布Aster的分析功能已经可以部署到Hadoop。Hadoop上的Aster就是一把无刃还无柄的刀,这个商业化的机器学习库可是要与无数开源的库血拼的。Aster还要与Teradata的另一个合作伙伴Fuzzy Logix竞争,该公司的dbLytix库比Teradata库的功能丰富六倍,还更成熟。
如果有人提议押赌这套“解决方案”并解绑Aster,也许可以挽回Teradata的颓势,但一定要考虑地够周密。