最近这段时间,机器学习吸引了媒体和从业者大量的关注。的确,机器学习是一种。但是,尽管众人对这个话题喋喋不休,尽管风投为机器学习提供了许多资金,尽管谷歌让这个领域变得令人瞩目——在核心的技术领袖圈之外,机器学习仍然很少能获得正确的理解。
新智元(微信ID:AI_era)原创,译者:王婉婷 作者:Gurjeet Singh 来源:data-informed
这就导致了对于机器学习这一变革性技术的未来的低估,而从商者也会因此无缘于了解他们应该为机器学习时代做好怎样的准备。
让我们讨论一下这把剑的两面吧——也就是它的潜力与陷阱。先从定义开始。
机器学习是一种算法,可以从数据中进行学习并作出预测。通常来说,运用这种技术时,越多的数据就能带来越好的结果。机器学习并不需要明确的规则来生成结果。它不需要人工建构的“如果这样的话,那么就那样”之类的结构,而是根据数据自行决定这一切。
机器学习的变革性作用,以及为何它现在如此重要,是因为我们来到了数据、运算能力以及算法复杂度的转折点。
这三个方面的进展汇合,造就了机器学习的一鸣惊人。这似乎有一些像妄想——为了能够在现在发生这样的事,在过去已经筹备了相当长的时间。让我们仔细看看这三个方面:
数据
新数据库技术的出现(比如Hadoop)已经让获取海量数据的成本降低到令人吃惊的程度,以至于企业不再需要选择什么数据需要保留、什么数据需要删除,而是简单地存储一切数据。如果数据的价值在今天还不太明显,不久之后也许人们就会渐渐地意识到这一点。这为对于数据始终贪得无厌的机器学习算法提供了大量的“养分”。
运算能力
运算能力方面的进展仍然在以让人惊讶的速度持续着。摩尔定律失效的预言已经过去了许多年,而Intel、IBM、Nvidia以及其他机构的研究人员们接二连三地不断创新,让摩尔定律一直保持成立、没有失效。要解决大问题?没问题,加上几十或者几百个核,根据需求来就好。不过,这也有极限,因为不是所有问题都能被这样暴力破解。
算法复杂度
有趣的是,算法复杂度是与数据和运算相关的。由于这两个领域的进展,更彻底地探索复杂算法成为了可能。例如拓扑数据分析——它需要运算能力发展到能够从许多运算角(algorithmic angles)来看待大量数据集。
机器学习的变革性在于,它大幅地降低了高性能结果的运算时间。研究人员们已经在图像识别问题上花费了数十年的时间,但Google转向机器学习算法后仅仅几个季度就高效地在这个问题上做到了完美的表现。考虑到Google拥有的素材数量和团队的熟练程度,几乎没有人有可能在这个领域再胜过Google。
这一类的创新在不少企业都发生着,特别是那些雇佣了绝大多数机器学习人才的公司,包括Google、Facebook、Amazon、Apple、IBM、GE,以及高度专注于颠覆特定应用或是行业的一些初创公司。
这些公司在机器学习方面投资甚巨,这是因为投资能带来指数级的增长回报。在一个机器学习带来的指数级增长的世界中,即使只是少了10%的增长也会导致落于人后。而太晚开始的话,就算能和其他人保持一样的增长速度也无济于事。
虽然卓越的执行会获得指数级增长的回报,现实中将会有一系列不连续的事件,让增长曲线无法保持平滑。一家企业如何处理这些不连续的事件将会决定成王败寇。
这些不连续的事件就是机器学习的另一面——那些会导致这种技术充满竞争力的优势滑铁卢的元素。
这里列举了一些:
技术债
机器学习系统并不是能自我复制(self-replicating)或者自我优化(self-optimizing)的软件应用。因此,随着时间流逝,它们会积累越来越多的技术债。技术债有许多种表现形式,包括纠缠(entanglement)、隐藏反馈循环(hidden feedback loops)、依赖于未充分使用的数据(underutilized data dependencies)、管道丛林(pipeline jungles)、未申明的访问者(undeclared customers)等等。技术债会在无意中导致不希望的结果,带来脆弱(brittleness)以及混淆(obfuscation)。所有这一切都会对系统产生影响,让系统无法达到最优状态。
理解技术债的细节是技术团队的责任。
理解技术债的概念和影响是管理团队的责任。
关于机器学习技术债的细节,请在新智元微信公众号后台回复xxxx,阅读新智元翻译的、来自谷歌的技术债详细介绍:【Google 年度顶级论文】机器学习系统,隐藏多少技术债?(论文下载)。
黑盒
某些算法是黑盒——这是指难以理解在算法中发生了什么,特别是对于单独的数据点来说。这并不总是会成为一个问题,但是,它对于一个组织而言很多时候都代表了真实存在的挑战,无论是从文化上还是从技术上来说都是这样。如果选用的算法是一个黑盒,而世界的变化超出了模型的预测能力,那么缺乏足够的理解会让整个系统陷入怀疑论的危机。无法解释模型为何失败,从接收机器学习算法程度的角度来说,可以让一个组织在这一方面倒退许多年。
算法选择
虽然这有一些老生常谈,不过在机器学习领域的确没有“上帝”一样万能的算法。没有算法能在文本分析、模式匹配、分词、异常侦测、以及特征生成上都做得一样好。
的确,有几十种强力的算法和数千种这些算法的高度调整(highly tuned)版本,每一种都有它自己独有的优点和缺点。最终,不同的算法会服务于不同的目的。比如,你的逻辑回归模型(LRM)看待数据世界的方式与你的支持向量机(SVM)有很大的差异。这意味着,作为一个数据科学家或者是一个计算机科学家,你有时会放下LRM、转而用起SVM——它们是为不同的工作而服务的。但是它们之前的区别并不只是类似于不同尺寸的扳手,并且放下LRM、转向SVM在上手时是非常消耗时间的。
选用正确的算法对于保持一个组织的良好运作来说是非常重要的,就和了解使用什么时候应该使用净现值(NPV)、什么时候应该使用内部收益率(IRR)一样。
人类的偏差
与算法选择相关的一个概念是人类偏差(human bias)。无论如何,机器学习算法都是复杂的数学公式,而精通某种特定的算法会让从业者对这种算法产生依赖——通常是严重的依赖。这种趋势让人想起一句古老的谚语,“当你除了锤子一无所有时,所有东西看上去都像钉子”。如果你的机器学习团队中,所有人都毕业于同一个学校的同一期,有可能他们用的都是同样的一些算法。向你的组织中注入算法多样性会为组织带来明显的益处。
避免陷阱
因为技术债的存在,领导层需要确保厉害的软件工程师与厉害的数学家同在。缺少其中一方将会失去平衡,在未来导致很多问题。招募双方。
对于黑盒问题,你需要仰赖数百年来的统计学知识来解释模型中每一个决策背后的原因。这种要求非常严苛,但当你需要知道为什么算法最后做出了一个决策时,经历这样的时间是非常重要的。这对于创造一种机器学习文化而言至关重要。人们需要信任这个系统,而统计学可以提供沟通人类与算法的桥梁。
面对算法选择的挑战,答案是部署越来越多种类的算法,于是你不必再从中选择。计算机的性能已经足够做到这一点,已经有可以对于数据集用多种算法并行处理的框架。好好利用。
最后,如果你部署了多种机器学习算法,人类偏差问题应当迎刃而解——特别是如果你采用了让过程自动化的技术,用数据来自动找出最适应的算法。
前方的机遇
机器学习将无愧于它得到的炒作。明白情况的人都会对它的变革性——对于任何职业、工作流程和商务处理来说都是这样——保持高度的信心。
率先迈向机器学习的组织将会获得相应的回报。但是理解机器学习的潜力和风险是非常重要的,因为对于机器学习领域的熟悉程度仍然不足。现在正是时候针对这一技术深挖、学习、雇佣、以及投资,等到明天的话,也许你的竞争对手就已经开始来势汹汹地扩张了。
·氧分子网(http://www.yangfenzi.com)延伸阅读:
2016 年人工智能最吸引眼球的事件莫过于谷歌旗下的 DeepMind 依靠人工智能算法的阿尔法狗在围棋比赛中大胜人类顶尖选手。但要算商业价值的落地,2016 年人工智能的赢家则非 Nvidia(英伟达)莫属。这家全球领先的显卡公司最新的季度财报(截至 2016 年 10 月 30 号)显示该公司的营收比去年同期增长 54%,尤其是在数据中心业务方面有了两倍多的增长。该公司的股票在过去的一年中也增长了 4 倍多,稳坐了标普 500 的榜首。
Nvidia 在人工智能芯片市场的真实统治力,可能比股票市场上的亮眼成绩更为显著。尽管市场上也存在其他深度学习训练(training)和预测(Inference)的解决方案,但试问各家 AI 企业,无论其内部的模型训练,还是销售给最终客户的智能产品,绝大多数还是采用了 Nvidia 的 GPGPU 方案。在 Nvidia 不断从各个角度(服务器、PC、嵌入式、汽车、训练专用和预测专用)推陈出新的时候,其他各家竞争公司基本上还处在尝试初次产品化的过程中。据我粗略估计,Nvidia 在人工智能芯片领域,领先最接近的竞争者至少有 2 年的时间。
今天 Nvidia 在人工智能领域的优势绝对不是一日之功。事实上整个深度神经网络技术在过去三年的崛起,除了大规模数据(如 ImageNet)提供了训练深度网络的基础条件,通用图形运算单元(GPGPU)技术提供的强大运算能力也功不可没。如果没有 Nvidia 的 CUDA 平台,科学界证实深度学习巨大潜力的时间不知道还要推迟多久。更难能可贵的是,GPGPU 技术使得在 PC 级别的计算机上进行高密度的高性能运算成本大幅降低,以至于一个普通科研人员的台式电脑都有可能部署上万个并行处理内核。这使得深度学习技术迅速地在科技界发展和普及起来。可以这么说,如果没有 GPGPU,坚持研究了二十多年神经网络算法的 Yann LeCun 和 Hinton 教授们,恐怕还得继续在学术界被继续埋不少年。
而是什么原因使得一家以提供 3D 游戏渲染的显卡公司,在这个重要的历史节点,扮演了救世主的角色呢?
本文基于我个人的经历和观察,提供一些相关的线索和理解。在这个过程中有两个关键性的人物,分别是英伟达的 CEO 黄仁勋(Jen-Hsun Huang),以及英伟达的前首席科学家 David Kirk。
Nvidia 的 CEO Jen-Hsun Huang(黄仁勋)大名鼎鼎,在硅谷可能是最有成就的华裔企业家。关于 David Kirk 的官方报道却很少,在 Nvidia Research 的网站上可以看到他从 1997 年到 2009 年担任 Nvidia 的首席科学家(Chief Scientist),是美国工程院院士,目前是 Nvidia fellow。事实上了解 Nvidia 历史的人都知道,这家 1993 年创建的公司,真正的拳头产品 GeForce 系列就是 1999 年上市并且打响了国际声誉的。也就是说,David Kirk 任职期间,他带领 NV 创造了至今仍是全世界最畅销的独立显卡产品。
对于高性能运算以及人工智能领域的学者来说,David Kirk 最伟大的功绩则是他促成了 GPU 通用化,推广了 CUDA 平台以及 OpenCL 标准。在摩尔定律面临时钟频率无法继续进步的时代,GPGPU 这种低成本大规模的 SIMD 并行处理架构,让很多普通人的计算机变成了超级电脑,也让本该寿终正寝的摩尔定律继续发光发热。他发明的 GPGPU 科技,给历经苦难的神经网络技术,铺垫了一条通往苦尽甘来的道路,也成就了人工智能当前大发展的局面。
我有幸于 2008 年在 Nvidia Research 作实习生。那时我还是一枚计算机视觉专业的博士候选人。当时从事人工智能研究专业的博士生,日子过得可不像今天的师弟师妹们那么痛快。整个领域整体还处在不靠谱的状态,也没有专门针对计算机视觉而设计的专用芯片。学生时期的我,为了实现视觉信号实时处理,钻研过嵌入式 CPU、DSP、FPGA 等方案。这些方案要么性能不足,要么开发流程复杂不便。我甚至尝试过同时使用十几台服务器并行处理一路实时视频流的视觉理解(也真是土豪极了)。2007 年 Nvidia 推出了 CUDA beta 版,我在 EPSON 实验室自己摸索着用一块普通的游戏显卡,把一个视角转换功能(使得一台投影仪在任意形状和颜色的背景上显示出理想画面)的性能,相比最好的台式机 CPU 解决方案,提高了整整 50 倍。从此以后我就认定了 GPGPU 是人工智能的重要解决方案,我的科研人生就此走上了康庄大道。EPSON 的实习结束后,我申请了 Nvidia Research lab 的实习生,希望深入研究一下 GPGPU 在计算机视觉信号处理中的应用。
很幸运的是,我实习期间的名义导师就是 Nvidia 首席科学家 David Kirk。不过由于 Kirk 先生太忙,整个实习期间我和他其实也只见面交流了几次而已。Kirk 先生教导学生的方式挺有意思。我进公司第一次见到导师,问我的任务是什么。Kirk 先生说你有两个任务:第一个任务是花两周的时间想清楚自己想解决什么问题;第二个任务就是用实习剩下的时间完成那个任务(这不就是放羊吗?)。Kirk 先生一方面组织科研,一方面花很多时间研究公司未来的产品策略,近在咫尺却实在没有时间指导学生,于是就委托了远在明尼苏达的 Michael Garland 博士和佛吉尼亚的 David Luebke 教授远程指导在硅谷实习的我。
Nvidia 的 CEO Jen-Hsun Huang 工作很忙,但是他对于研究院的工作极其感兴趣。我亲眼目睹黄总在实验室和研究员们讨论问题时的认真和耐心。2008 年夏天有个专为实习生安排的 demo 展示会。没想到那天 Jen-Hsun 也来参观,并且很耐心地巡视实习生作品。6 年之后的 2014 年,当我在 Nvidia 北京办公室代表我的创业公司再次见到 Jen-Hsun 时,他竟然一口叫出了我的名字并回忆起当年我给他做的展示。这样的记忆力和洞察力,让我印象深刻。
那几年,David Kirk 的主要精力都在试图把原来只用来作 3d 渲染加速的 GPU 技术通用化,让更多的应用分享到大规模 SIMD 运算阵列的性能优势。在一次聊天中,Kirk 跟我说他从 2003 年就开始琢磨这个问题:那时 Intel 刚刚推出了四核的 CPU 处理器,NV 就已经推出包含了 100 多个 SIMD 内核的 GPU 了。Intel 的处理器可以通过多线程技术被所有计算机应用分享;但是 GPU 基本上还是只能通过 OpenGL/DirectX 等高等绘图渲染接口,或者使用极度麻烦的 Shader Program 接口跟用户交互。如果能够提供合适的编程模型,把丰富的 GPU 并行运算资源给开发者分享出来,那么每一个用户的 GPU,都可以变成一台上百核的大规模高性能计算机。
让每一台个人电脑变成一座大规模超级计算机!
这个想法虽好,但是需求在哪里呢?普通吃瓜群众,为什么要花钱(即使是几百块美元)去购买一台超级计算机呢?除此以外,全世界所有的计算机软件工程师几十年来已经适应了在 CPU 上编写程序,该怎么去培养懂得在超级计算机上编写并行处理程序的软件工程师呢?毕竟,理想是理想,现实是现实。但是 David Kirk 先生,竟然就说服了 Jen-Hsun,投入很多资源研发出了能够让 GPU 变得通用化的 CUDA 技术。等到这个技术成熟以后,David Kirk 又向 CEO 提出要求:NV 未来所有的产品,每一颗 GPU,无论是卖到哪个产品线的,都必须支持 CUDA!
David Kirk 的理由是这样的:如果仅仅是数据中心版本的 GPU 支持 CUDA,那么只会有很少的工程师拥有合适的硬件来学习和研发 CUDA 程序;如果普通消费者的显卡不支持 CUDA 程序,那么这种技术永远不可能变成一种普惠的、能够影响大多数人的成果。因此要么不干,要么就彻底地大干特干。
即便是今天回想起来,这仍然是一个风险极高、形同疯狂的决定。要知道,那个年代的 Nvidia,几乎 100% 的收入都来自电脑游戏或者美工设计等传统应用。这意味着面对这些尚没有高性能运算需求的传统客户,Nvidia 都必须在硬件产品的设计中增加相关的 CUDA 逻辑电路,这使得芯片面积增大、散热增加、成本上升、故障几率增加;同时,对于每一款产品,相关的软件驱动都必须保障对 CUDA 的完美支持。要知道,CUDA 本身的升级换代,使得对过去每一款硬件产品的兼容性支持变成了海量工作(我想 NV 至少有几百名驱动程序工程师哭晕在厕所)。最要命的是,谁也说不清这些额外的工作,除了要成就把每一台 PC 都变成超级计算机这样遥远的科学理想,到底对消费者有什么具体的价值。
很显然,这样的决定如果放在一般的把风险控制和短期利益看得很重的公司,是绝无可能发生的。但 Jen-Hsun Huang 不是一位普通的 CEO。他支持了这个伟大的、同时也伴随巨大风险的决定。于是,2007 年,从 Nvidia 的 Tesla 架构(内部代码 G80)开始,NV 出的每一款 GPU 芯片(除了 Tegra1-4 等移动嵌入式系列),都完全支持 GPGPU 的 CUDA 架构。
和今天 Nvidia 的繁荣景象不同,2008 年的 Nvidia 处在水深火热中。一方面 CPU 大咖 AMD 收购了 NV 的老对手 ATI,形成了 CPU 整合 GPU 的新解决方案;一方面 Intel 中断和 Nvidia 之前在集成显卡方面的合作,把三维图形加速功能集成进了自家的芯片组。面对两大 CPU 巨头的合力夹击,NV 的局面异常紧张,只剩下高性能的独立显卡一条路。然而屋漏偏逢连夜雨,NV 主打的高端笔记本独显产品 8600M 系列出现了和散热有关的品质问题,很多采用了这款显卡的笔记本电脑(所有的主流品牌包括苹果的 MacBook Pro)出现了黑屏甚至是烧机等故障。这时,NV 除了面临用户和股民们潮水般的谴责和质疑,还要面对整机厂商的诉讼和赔偿要求。
对于重大的产品品质事故,当时在公司内外部都流传着这么一种质疑:虽然事故的直接原因是芯片制造商台积电(NV 是一家 fabless 的芯片公司,也就是只设计芯片,把芯片生产外包给其他公司)采用的一种没有经过长期充分验证的封装材料导致芯片散热出现问题。但是如果不是每个芯片都支持 CUDA,那么散热的压力原本可以轻松一点,制造部门也就没有必要铤而走险采纳台积电的不成熟方案。
与此同时,竞争公司 Intel 和 AMD 的攻击一波一波来袭。Intel 计划推出的 GPCPU 方案 Larrabee 采用了大规模支持 x86 指令集的阵列,号称能让 Legacy Software 顺利运行(后来该方案在 2010 年由于性能不如预期等原因被 Intel 取消);AMD 则在竞争激烈的游戏显卡市场推出游戏性能强大并且功耗和散热更优的纯粹 GPU 产品直接竞争。一时间,Nvidia 颇有些四面楚歌的感觉。在 2007 到 2008 年度,NV 的股价从最高 37 美元跌落到最低 6 美元左右。
而就在 2009 年 1 月,David Kirk 离职了。他离职后去了 UIUC 和 Wen-mei W. Hwu 教授一起开了一门关于 CUDA 的编程课。我也应他们的要求帮他们的教科书写了一点东西。那时我听到一些谣言,说 Jen-Hsun Huang 后悔支持 CUDA 了。不过接替 Kirk 的是斯坦福大学计算机系主任 Bill Dally 教授。Dally 教授是并行运算领域的大牛级专家,而且是 Kirk 在加州理工的校友。这个人事任命消息使得我确信之前听到的传闻都是谣言。Dally 是增强版的 Kirk,Nvidia 并没有放弃让每一台 PC 成为超级计算机的理想。
从 2009 年的 GTC 开始,CUDA、高性能科学运算和个人超级计算机变成了一家游戏显卡公司最显著的主题。来自计算机视觉、自然语言处理、语音识别、生物、医疗、天文地理、脑神经科学,甚至是社会科学的研究者们,基于 CUDA,在他们的个人电脑上不断挖掘出惊人的计算力。这些成果发表在各个领域的各种重要期刊上,推动着这些领域的快速发展。2011 年,我在谷歌的同事们发起了一个叫做 Google Brain 的项目,大量地使用 GPGPU 技术把深度神经网络技术应用在几个重要的人工智能应用领域里。2012 年的 CVPR,他们探索出只用一个模型就可以在不同图片中区分 10 万种物体的检测算法,并成为 CVPR 最佳论文。在我看来,这一年是人工智能技术发展的分水岭。从此这个领域的进展真的可以用日新月异来形容。2013 年,我离开山景城的谷歌研究院,回到北京创立了格灵深瞳,中国最早的一批人工智能公司。
今天,格灵深瞳的所有产品(硬件部分)都采用了 Nvidia 的 GPGPU 处理器。格灵深瞳能够有今天的机遇,离不开这家令人尊敬的显卡公司,离不开 Jen-Hsun、David Kirk 这些有远见和魄力的企业家和科学家。
有人说是深度学习技术成全了 NV 的 GPGPU,要不然 NV 这么多年对科学运算大规模的投入可能就打水漂了。其实我认为,反而是 GPGPU 技术,成全了深度学习技术。数据运算的能力,对于人工智能领域,就像空气和水对生命的重要性一样。
2015 年夏天在广州的一个活动上,我很高兴地再次遇见了 David Kirk。那时他已经全职回到了 Nvidia 工作。人工智能领域经过几十年的发展,道路曲折坎坷。很幸运我们这个领域总是被一些有远见的人预见和引导。远见很重要,但坚持理想,让远见落地变成现实是需要勇气与魄力的。