算法已在多大程度上影响我们的生活?购物网站用算法来为你推荐商品,点评网站用算法来帮你选择餐馆,GPS 系统用算法来帮你选择好的路线,公司用算法来选择求职者……当机器最终学会如何学习时,将会发生什么?
不同于传统算法,现在悄然主导我们生活的是“能够学习的机器”,它们通过学习我们琐碎的数据,来执行任务;它们甚至在我们还没提出要求,就能完成我们想做的事。
什么是终极算法?
机器学习五大学派,每个学派都有自己的主算法,能帮助人们解决特定的问题。而如果整合所有这些算法的优点,就有可能找到一种“终极算法”,该算法可以获得过去、现在和未来的所有知识,这也必将创造新的人类文明。
你为什么必须了解终极算法?
不论你身处什么行业、做什么工作,了解终极算法都将带给你崭新的科学世界观,预测以后的科技发展,布局未来,占位未来!
佩德罗 · 多明戈斯(Pedro Domingos),美国华盛顿大学计算机科学教授,加州大学欧文分校信息与计算机科学博士,在机器学习与数据挖掘方面著有200多部专业著作和数百篇论文。国际机器学习学会联合创始人,《机器学习》杂志编委会成员,JAIR 前副主编。美国人工智能协会院士(AAAI Fellow,国际人工智能界的最 高荣誉),荣获 SIGKDD 创新大奖(数据科学领域的最 高奖项)、斯隆奖(Sloan Fellowship)、美国国家科学基金会成就奖(NSF CAREER Award)、富布赖特奖学金、IBM 学院奖以及多个论文奖项。
作为一位机器学习领域研习10年以上的专业技术人员,我当初入行的时候没有想到,短短的10年间,这项技术会如此快速地改变众多行业,并影响全球数十亿用户生活的方方面面。在今天,当你用今日头条浏览新闻资讯的时候,当你用网易云音乐查看推荐歌单的时候,当你在百度搜索信息的时候,当你在互联网金融平台申请借款的时候,甚至在你调戏 Siri 和小冰的时候,其实都是其背后的机器学习算法在云端服务器中为你默默服务。但对于这样一种重要技术,市面上一直缺少一本适合普通读者的入门科普读物,而众多的专业书籍要求读者具备一定的高等数学和计算机基础算法知识,并不适合科普的需要。直到中信出版社的朋友将这本书的翻译稿推荐给我时,我欣慰地发现,这正是想了解一点机器学习的普通读者所需要的啊。本书的作者多明戈斯是华盛顿大学的终身教授,也是一位在机器学习领域具有20年研究经历的资深科学家。多明戈斯一直致力于融合各种机器学习算法的优势,提出一种可以解决所有应用问题的通用算法,即终极算法。在这本书里,作者详细地阐述了他的思路。其实我个人在阅读本书的过程中,始终对“终极算法”的提法充满怀疑。在我看来,机器学习作为人工智能领域的主流技术,在现实社会中一直以技术工具的面目为人所知。不同的技术流派和相应算法往往可以很好地解决一些问题,却对另一些问题一筹莫展。所谓的终极算法真的存在吗?如果存在,有价值吗?
可以拿内燃机举个例子,就我这个外行来说,也知道存在活塞式发动机、涡喷发动机、涡轴发动机、涡扇发动机、涡桨发动机、冲压发动机等不同种类的内燃机。不同的内燃机特性迥异,适用的工况也不尽相同。小到家用小汽车,大到导弹驱逐舰,人类制造的各种机动设备,都可以根据自己的效率需求、动力需求、寿命需求,乃至启动速度等多种需求维度选择发动机种类。如果有人非要搞个终极内燃机,并企图用这种内燃机替代现存的各类内燃机,为所有大大小小、需求不同的机动设备提供统一动力,估计大概率是要失败的。这种通用的终极内燃机如果能搞出来,在大部分领域肯定竞争不过各领域的专用内燃机,或者成本太高,或者能效太低。
带着这种疑问,我通篇读下来之后才发现作者的另一层用意。诚如作者所说,很多普通人可能没有意识到自己的生活中机器学习算法的影响已经无处不在,机器学习已经在逐渐接管现实世界。大众对这样一种技术的认知程度和该技术的重要性相比显得远远不够,在不远的未来,了解机器学习并有能力利用机器学习改进自己工作的人在职业发展上会具备巨大的优势。“不要和人工智能对抗,要让人工智能为你服务”是作者诚挚的忠告。而要利用好机器学习这个工具,并不一定需要读一个计算机博士学位,但有必要了解一些基本的概念,了解各种技术的优缺点和能力边界。正如一位称职的驾驶员不必了解具体怎么制造汽车发动机,但是对发动机的工作原理和种类还是需要略知一二的。因此,相比一板一眼地介绍机器学习的典型算法,作者设计了一个更引人入胜的套路:先抛出一个“是否存在一种终极算法”的问题,然后带着读者一章一章地回顾机器学习发展史上的重要流派和代表算法。每回顾一派,就鼓励读者思考终极算法应该如何借鉴这类算法的优点。好奇的普通读者带着疑问读完本书后,不论其是否相信终极算法的存在,至少对各类算法都会有一定的印象。以讨论终极算法为名,行科普之实,到这一步,我觉得作者的目的已经达到一半了。
另外,在文末作者还提到,无论终极算法是否存在,他希望这个大胆的问题能够激发部分读者的好奇,甚至被这个问题吸引成为机器学习的专业研究人员。确实,每一种学科都需要至高的理想驱动向前,就如同物理的大一统理论,当无数杰出的天才为一个终极问题孜孜以求时,就算这个问题本身在这些人的有生之年可能没有答案,但是这个学科一定会因为这些伟大的探索历程取得辉煌的进步。我想,这也许是作者因为对机器学习的热爱夹带的另一个私货吧。
作为今日头条的一位算法架构师,我倒是希望头条用户都能陷入作者的“圈套”,带着好奇心,好好读读这本书。如果大多数用户都能了解一些机器学习的基础知识,应该就能够更好地和推荐算法互动,不断把算法调教得更好,更符合自己真正的兴趣,而不会因为算法一开始推荐的内容不好就放弃这个产品。诚如作者所说,也许在未来,对应人类的心理学,也会出现机器心理学,了解一点机器人的心理,会让你和机器的互动更有效率,也会让机器更快地成为你忠实、不知疲倦的助手。
曹欢欢
今日头条首席算法构架师
你也许不知道,但机器学习就在你身边。当你把查询信息输入搜索引擎时,它确定该向你显示哪些搜索结果(包括显示哪些广告)。当你打开邮箱时,大部分垃圾邮件你无法看到,因为计算机已经把这些垃圾邮件过滤了。登录亚马逊网站购买一本书,或登录网飞(Netflix)公司网站观看视频,机器学习系统会推荐一些你可能喜欢的产品。脸书(Facebook)利用机器学习决定该向你展示哪些更新,推特(Twitter)也同样会决定显示哪些文章。你使用计算机的任何时候,都有可能涉及机器学习。
传统上认为,让计算机完成某件事情的唯一方法(从把两个数相加到驾驶飞机),就是非常详细地记录某个算法并解释其如何运行。但机器学习算法就不一样:通过从数据中推断,它们自己会弄明白做事方法。掌握的数据越多,它们的工作就越顺利。现在我们不用给计算机编程,它们自己给自己编程。
机器学习不仅存在于网络空间,它还存在于你每天的生活中:从你醒来到入睡,每时每刻无所不在。
早上7点你的收音机闹钟响起,播放的是你之前从未听过的歌曲,但你的确很喜欢这首歌。Pandora 电台(可免费根据你的喜好播放歌曲)的优势在于,根据你听的音乐,电台掌握了你的品位,就像你自己的 radiojock 账号一样。这些歌曲本身可能借助机器学习来播放。接下来你吃早餐,阅读早报。早报在几个小时前印好,利用学习算法,印刷过程经过仔细调整,以免报纸出现折痕。你房间的温度刚刚好,电费明显少了很多,因为你安装了 Nest 智能温控器。
你开车去上班,车持续调整燃油喷射和排气再循环,以达到最佳的油耗。你利用一个交通预报系统(Inrix)来缩短高峰时段上下班的时间,这当然能减缓你的压力。上班时,机器学习帮你克服信息超载。你利用数据立方体来汇总大量数据,从每个角度观察该立方体,获取最有用的信息。你要决定是采用布局方案A,还是采用布局方案 B,以便为网站带来更多的业务。网络学习系统会尝试两种布局方案,并给予反馈。你得对潜在供应商的网站进行调查,但网站的语言是外语。没关系,谷歌会自动为你翻译。E–mail 会自动分类并归入相应的文件夹,只把最重要的信息留在邮箱里,非常方便。文字处理软件帮你查找语法和拼写错误。你为即将到来的行程查找到一个航班,但决定推迟购买机票,因为必应旅行(Bing Travel)预测票价很快会下降。也许你没有意识到以上这些,要不是机器学习帮助你,你可能要马不停蹄地亲自做很多事情。
你在休息时间查看自己的共同基金,大部分基金利用学习算法来选股,其中的某些基金完全由学习系统运作。午餐时间到了,你走在大街上,想找个吃饭的地方,这时候用手机上的 Yelp 点评应用程序来帮助你。你的手机充满了学习算法,它们努力工作,改正拼写错误、理解口头指令、减少传输误差、识别条形码,还有其他很多事情。手机甚至可以预测你接下来会做什么,然后依此给出建议。例如,当你吃完午餐后,它会小心翼翼地提示你,下午和外地来访者的会面要推迟,因为她的航班延误了。
下班时夜幕已降临,你走向自己的车,机器学习会保证你的安全,监测停车场监控摄像头的录像,如果探测到可疑人的行动,它会提示不在场的安保人员。在回家路上,你在超市门口停车,走向超市货物通道,通道借助学习算法进行布置:该摆放哪些货物,通道末尾该展示哪些产品,洋葱番茄辣酱是否该放在调味酱区域,或是放在墨西哥玉米片旁边。你用信用卡付款。学习算法会向你发送信用卡支付提示,并在得到你的确认后完成支付。另外一个算法持续寻找可疑交易,如果它觉得你的卡号被盗,则会提示你。还有一种算法尝试评估你对这张卡的满意度,如果你是理想的客户但对服务不太满意,银行会在你决定换卡之前,为你提供更贴心的服务。
你回到家,走到信箱旁,发现有朋友的一封来信,这是通过能阅读手写地址的学习算法派送的。当然也会有垃圾来信,由另外的学习算法进行选择。你停留了一会儿,呼吸夜晚清新凉爽的空气。你所在城市的犯罪率明显下降了,因为警察开始使用统计算法来预测哪里的犯罪率最高,并在那里集中巡警力量。你和家人共享晚餐。市长出现在新闻里,你为他投票,因为选举那天,学习算法确定你为“关键未投票选民”之后,他亲自给你打了电话。吃完晚餐,你观看球赛,两支球队都借助统计学习来挑选队员。你也可能和孩子们在 Xbox 上玩游戏,Kinecta 学习算法确定你在哪里、在做什么。你在睡前吃药,医生通过学习算法的辅助来设定和检测吃药的最佳时间。医生也可能利用机器学习来帮你诊断疾病,例如,分析X射线结果并弄明白一系列非正常症状。
机器学习参与了你人生的每个阶段。如果你为了参加 SAT 大学入学考试(美国学术能力评估测试)而在网上学习,某学习算法会给你的练习短文打分。如果你申请商学院,且最近要参加 GMAT(经企管理研究生入学考试),其中的一个文章打分工具就是一个学习系统。可能当你求职时,某学习算法会从虚拟文件中挑选出你的简历,并告诉未来的雇主:这位是很不错的人选,看看吧。最近公司给你加薪可能还多亏另外的学习算法。如果想买套房子,Zillow.com 网站会估算你看中的每套房的价值,接着房子就有了着落。之后申请住房贷款,某学习算法会研究你的申请,并建议是否可以通过申请。最重要的是,如果你使用在线约会服务,机器学习甚至可能帮你找到人生挚爱。
社会在不断变化,学习算法也是如此。机器学习正在重塑科学、技术、商业、政治以及战争。卫星、DNA(脱氧核糖核酸)测序仪以及粒子加速器以前所未有的精细程度探索自然,同时,学习算法将庞大的数据转变成新的科学知识。企业从未像现在这样了解自己的用户。在美国大选中,拥有最佳选举模型的候选人奥巴马最终战胜了对手罗姆尼,获得了竞选胜利。无人驾驶汽车、轮船、飞机分别在陆地、海面、空中进行生产前测试。没有人把你的喜好编入亚马逊的推荐系统,学习算法通过汇总你过去的购买经历就能确定你的喜好。谷歌的无人驾驶汽车通过自学,懂得如何在公路上平稳行驶,没有哪个工程师会编写算法,一步一步指导它该怎么走、如何从 A 地到达 B 地——这也没必要,因为配有学习算法的汽车能通过观察司机的操作来掌握开车技能。
机器学习是“太阳底下的新鲜事”:一种能够构建自我的技术。从远古祖先学会打磨石头开始,人类就一直在设计工具,无论这些工具是手工完成的,还是大批量生产的。学习算法本身也属于工具,可以用它们来设计其他工具。“计算机毫无用处,”毕加索说,“它们只能给你提供答案。”计算机并没有创造性,它们只能做你让它们做的事。如果你告诉它们要做的事涉及创造力,那么就要用到机器学习。学习算法就像技艺精湛的工匠,它生产的每个产品都不一样,而且专门根据顾客的需要精细定制。但是不像把石头变成砖、把金子变成珠宝,学习算法是把数据变成算法。它们掌握的数据越多,算法也就越精准。
现代人希望让世界来适应自己,而不是改变自己来适应世界。机器学习是100万年传奇中最新的篇章:有了它,不费吹灰之力,世界就能感知你想要的东西,并依此做出改变。就像身处魔法林,在你通过时,周围的环境(今天虚拟,明天现实)会进行自我重组。你在树木和灌木中选出的路线会变成一条路,迷路的地方还会出现指路标志。
这些看似有魔力的技术十分有用,因为机器学习的核心就是预测:预测我们想要什么,预测我们行为的结果,预测如何能实现我们的目标,预测世界将如何改变。从前,我们依赖巫医和占卜师进行预测,但他们太不可靠;科学的预测就更值得信赖,但也仅限于我们能系统观察和易于模仿的事物,大数据和机器学习却大大超出这个范围。我们可通过独立的思维来预测一些常见的事情,包括接球和与人对话,但有些事情,即便我们很努力,也无法预测。可预测与难以预测之间的巨大鸿沟,可以交给机器学习来填补。
矛盾的是,尽管学习算法在自然和人类行为领域开辟了新天地,但它们仍笼罩在神秘之中。媒体每天都报道涉及机器学习的新闻:苹果公司发布 Siri 个人助理,IBM 沃森(IBM 的超级计算机)在《危险边缘》游戏中战胜了人类,塔吉特(Target)能在未成年妈妈的父母发现之前通知她怀孕,美国国家安全局在寻找信息连接点……在这些新闻事件中,学习算法如何起作用仍不得而知。计算机“吞入”数以万亿的字节,并神奇地产生新的观点,关于大数据的书籍甚至也避谈“这个过程到底发生了什么”。我们一般认为学习算法就是找到两个事件之间的联结点,例如,用谷歌搜索“感冒药”和患感冒之间的联系。然而,寻找联结点与机器学习的关系就像是砖与房子的关系,房子是由砖组成的,但一堆砖头肯定不能称之为“房子”。
当一项新技术同机器学习一样流行且具有革命性时,不弄明白其中的奥妙实在太可惜。模棱两可会导致误差和滥用。亚马逊的算法能断定当今世界人们在读什么书,这一点比谁都强。美国国家安全局的算法能断定你是否为潜在恐怖分子。气候模型可以判定大气中二氧化碳的安全水平。选股模型比我们当中的多数人更能推动经济发展。你无法控制自己理解不了的东西,这也是追求幸福的公民、专家或普通人需要了解机器学习的原因。
本书的第一个目标就是揭示机器学习的秘密。只有工程师和机修工有必要知道汽车发动机如何运作,但每位司机都必须明白转动方向盘会改变汽车的方向、踩刹车会让车停下。当今极少有人知道学习算法对应的原理是什么,更不用说如何使用学习算法。心理学家丹 · 诺曼(Don Norman)创造了“概念模型”(conceptualmodel)这个新词,代指为了有效利用某项技术而需粗略掌握的知识。本书就将介绍机器学习的概念模型。
并不是所有算法的工作原理都相同,这些差异会产生不同的结果,比如亚马逊和网飞的推荐系统。假设这两个系统试着根据“你喜欢的东西”来对你进行引导,亚马逊很有可能会把你带到你之前常浏览的书籍类别,网飞则可能会把你带到你不熟悉且似乎有点奇怪的区域,并引导你爱上那里。在本书当中,我们会看到诸如亚马逊、网飞之类的公司使用的各式各样的算法。与亚马逊相比,网飞公司的算法对你的爱好理解得更深(尽管还是很有限),然而具有讽刺意味的是,这并非意味着亚马逊也应该利用这个算法。网飞的商业模式是依靠晦涩的电影、电视节目的长尾效应来推动需求,这些电影和节目的成本很低。它一般不推荐大片,因为你的会员订阅费可能有限。亚马逊则没有这样的问题:尽管擅长利用长尾效应,但它同样乐意把更昂贵的热销商品卖给你,这也会简化其物流工作。对于那些奇怪的产品,如果是订阅会员可免费享用的,我们可能会乐意去尝试,而如果需要另外掏钱,我们去选择它们的可能性就小得多。
每年都会出现上百种新的算法,但它们都是基于几个相似的基本思路。为了明白机器学习如何改变世界,你有必要理解这些思路。本书就将对此进行介绍。学习算法并不是那么深奥难懂,除了运用在计算机上,对于我们来说很重要的问题都可以通过学习算法找到答案,比如:我们如何学习?有没有更好的方法?我们能预测什么?我们能信任所学的知识吗?对这些问题,机器学习的各个学派有不同的答案。
机器学习主要有5个学派,我们会对每个学派分别介绍:符号学派将学习看作逆向演绎,并从哲学、心理学、逻辑学中寻求洞见;联结学派对大脑进行逆向分析,灵感来源于神经科学和物理学;进化学派在计算机上模拟进化,并利用遗传学和进化生物学知识;贝叶斯学派认为学习是一种概率推理形式,理论根基在于统计学;类推学派通过对相似性判断的外推来进行学习,并受心理学和数学最优化的影响。在构建机器学习的目标推动下,我们将回顾过去100年的思想史,并以新的观点来看待这段历史。
机器学习的5个学派都有自己的主算法,利用这种万能学习算法,原则上,你可以通过任何领域的数据来挖掘知识:符号学派的主算法是逆向演绎,联结学派的主算法是反向传播,进化学派的主算法是遗传编程,贝叶斯学派的主算法是贝叶斯推理,类推学派的主算法是支持向量机。在实践中,这些算法可能在有些工作中可用,而在其他工作中不可用。我们真正想要寻找的是能够综合这5种算法的终极算法。虽然有些人认为这难以实现,但对机器学习领域的人来说,这个梦想赋予我们力量,促使我们夜以继日地工作。
如果存在终极算法,那么它可以通过数据学得包括过去的、现在的以及未来的所有知识。创造终极算法将是科学历史上最伟大的进步之一。它可以加速各类知识的进步,并以我们现在甚至无法想象的方式改变世界。终极算法与机器学习的关系就像标准模型和粒子物理学或中心法则与分子生物学的关系:该统一原理能理解人类当今知道的一切,并为未来数十年或者数百年的进步奠定基础。今天我们面临许多难题,比如制造家用机器人和治愈癌症,终极算法就是解决这些难题的关键。
以癌症为例。治愈癌症十分困难,因为它往往是一种综合疾病。肿瘤可由各种原因诱发,且在转移时会发生突变。杀死肿瘤细胞最可靠的方法是对其基因进行排序,弄明白哪些药物可以抵抗癌细胞(这种方法不会对人造成伤害,患者必须提供基因和用药史),甚至为你专门研制一种新药。没有哪个医生能够掌握该过程所需的所有知识。对于机器学习来说,这却是再合适不过的任务。实际上,与亚马逊和网飞每天所做的搜索工作相比,它的工作是为你找到正确的疗法,而不是合适的书籍或者电影,而且它的工作更为复杂,也更具挑战。遗憾的是,虽然当今的学习算法能以超出人类水平的精确度来诊断疾病,但治愈癌症仍远远超出它们的理解范围。如果我们可以找到终极算法,这将不再是难题。
因此,本书的第二个目标就是帮你创造终极算法。你可能会认为这需要高深的数学运算和严谨的理论方面的工作,正相反,它需要暂时放下数学奥秘,来观看各种学习行为包罗万象的模型。对外行人来说,他们就像从远方赶到终极算法这片森林,从某些角度看,他们比专家更适合创造终极算法,因为专家对某些学科已经过于投入。一旦我们有了概念性的解决方法,就能补充数学上的细节,但这不是本书的目标和重点。我们之所以谈论每个学派,是为了收集它们的观点,并找到其适用之处。请记住,没有哪个盲人能了解整头大象。我们会尤其关注哪个学派能对治疗癌症做出贡献,也关注该学派的缺失。然后,我们会将所有观点集中,一步步地变成解决方案——这个解决方案可能还不是终极算法,但已是我们能找到的最接近终极算法的方案。希望它能解放你的大脑,让你大胆想象。当你阅读本书时,如果觉得某些章节读起来困难,可以随意略读甚至跳过它们。本书的概要才是重中之重,当明白所有学派的观点之后,如果你重读那些困难的章节,收获可能会比之前更多。
我研究机器学习已经有20余年了。我对机器学习的兴趣因一本书而起,大四时我在书店看到这本书名很奇怪的书——《人工智能》(Articial Intelligence)。那本书只有一个章节是关于机器学习的,但读那个章节时,我立即确定,学习是实现人工智能的关键,而且当时技术水平如此原始,我也许能做点什么。所以我搁置了读 MBA(工商管理硕士)的计划,到加利福尼亚欧文分校攻读博士。机器学习当时是一个小众且鲜为人知的领域,研究人员寥寥无几,但加利福尼亚大学却拥有一个巨大的研究团队。一些同学中途放弃了,因为他们看不到机器学习的未来,而我坚持了下来。对我来说,没有什么能比教计算机学习更有吸引力的了:如果我们做到这一点,其他问题就会迎刃而解。5年后我毕业了,那时数据挖掘技术十分流行,我开始写这本书。我的博士论文结合了符号学派和类推学派的观点。过去10年,我一直在整合符号学派和贝叶斯学派的观点,最近又在尝试整合它们与联结学派的观点。是时候进行下一步研究,并尝试综合这5个范式了。
写这本书时,我的脑海里浮现出各式各样但又有相似之处的读者。
围绕大数据以及机器学习的讨论充满争议,如果你对此感到好奇,且怀疑有比论文上看到的更为深层次的东西,那么这本书就是你进行革命的指南。
如果你的主要兴趣是机器学习的商业用途,那么本书至少能通过6种方法帮助你:成为分析学中更精明的消费者;充分利用你的数据专家;减少许多数据挖掘项目的隐患;看看如果不买手写编码软件,你能让什么进行自动操作;降低信息系统的僵硬度;期待正朝你走来的新技术。我见过太多浪费大量时间和金钱去解决难题的人,他们使用了错误的学习算法,或者误解了学习算法的含义。要避免这些惨败,实际上,你只需要阅读这本书。
如果你是普通人或者决策者,关注由大数据和机器学习引发的社会和政治问题,那么本书将为你提供该技术的入门知识:什么是机器学习,机器学习能干什么、不能干什么。本书没有让你觉得乏味的复杂细节。从隐私问题到未来的工作,以及机器人化引起战争的道德观,我们会看到真正的问题所在,以及如何正确思考。
如果你是科学家或者工程师,那么机器学习肯定是你不想错过的有力武器。在大数据时代(即便是中型数据时代),陈旧的、靠得住的统计工具并不会让你走得更远。你需要的是机器学习的非线性技术来精确模仿多种现象,它会带来全新的、科学的世界观。今天,“范式转移”被人们用得过于随意,但我可以毫不夸张地说,本书要讲的内容就是和“范式转移”相关。
如果你是机器学习专家,那么你可能对本书的大部分内容已经相当熟悉,但你仍会发现其中有许多新颖的看法、经典的观点,以及有用的例子和类比。很大程度上,我希望本书能提出与机器学习相关的、新的看法,甚至能让你开始思考新的方向。我们身边到处是容易达成的目标,我们理应追寻这种目标,但我们也不应忽略不远处就有更大的目标(关于这一点,我希望你们能原谅我诗意地用“终极算法”来指通用型学习算法)。
如果你是学生,无论你多大,是考虑该选什么专业的高中生,还是决定该研究什么领域的本科生,或者是考虑转行、经验丰富的专家,我希望本书能让你对这个令人着迷的领域感兴趣。当今世界极度缺乏机器学习专家,如果你决定加入这一行列,你不仅能得到令人激动的时刻和丰厚的物质回报,还有服务社会的大好机会。如果你已经在研究并学习主算法,我希望本书能帮你了解它的历史。如果你在旅途中偶然发现本书,也值得你用心阅读。
最后要强调一点,如果你渴望奇迹,那么机器学习对你来说就是一场精神盛宴。我诚挚地邀请你一同前往。
我们生活在算法的时代。一两代人以前,提到“算法”这个词,可能多数人会脑中一片空白。当今,文明社会的每个角落都存在算法,日常生活的每分每秒也都和算法有关。算法不仅存在于你的手机或笔记本电脑,还存在于你的汽车、房子、家电以及玩具当中。当人们进出银行时,银行系统就是由各种算法交织而成的庞大集合体。算法安排航班,也驾驶飞机。算法能经营工厂、进行交易、运输货物、处理现金收益,还能保存记录。如果所有算法都突然停止运转,那么就是人类的世界末日。
算法就是一系列指令,告诉计算机该做什么。计算机是由几十亿个微小开关(称为晶体管)组成的,而算法能在一秒内打开并关闭这些开关几十亿次。最简单的算法是触动开关。一个晶体管的状态就是一个比特信息:如果开关打开,信息就是1;如果开关关闭,信息就是0。银行的计算机的某个比特信息会显示你的账户是否已透支。美国社会保障总署的计算机的某个比特信息表明你是活着还是已死亡。第二简单的算法是:把两个比特结合起来。克劳德 · 香农以“信息论之父”而为人所知,他第一个意识到晶体管的活动就是在运算,因为晶体管开了又关,是对其他晶体管的回应(这是他在麻省理工学院的硕士论文——有史以来最有意义的硕士论文)。如果 A 晶体管只有在 B 和 C 晶体管都打开时才打开,那么这时它就是在做小型的逻辑运算。如果 A 晶体管在 B 和 C 晶体管其中一个打开时才打开,就是另外一种小型逻辑运算。如果 A 晶体管在 B 晶体管任何关闭的时候打开,或者反过来,这又是第三种运算。信不信由你,所有算法,无论多复杂,都能分解为这三种逻辑运算:且,或,非。利用不同的符号来代替“且”“或”“非”运算,简单的算法就可以用图表来表示。例如,如果发烧可由感冒或者疟疾引起,那么你应该用泰诺来治疗发烧和头疼,可以用图1–1表示。
图1–1
通过结合许多这样的逻辑运算,我们可以进行极其复杂的逻辑推理。人们往往认为计算机只和数字有关,其实并非如此,它完全关乎逻辑。数字和算术都是由逻辑构成的,而计算机的所有其他部分也是如此。想把两个数相加?可以由晶体管的组合体来完成。想赢得《危险边缘》智力比赛?也可以由晶体管的组合体来完成(当然,这个组合体庞大得多)。
即便如此,为了做不同的事而制造新的计算机代价过于昂贵。当然,现代计算机是各种晶体管的大集合,能做许多不同的事,这取决于哪些晶体管被激活。米开朗琪罗说过,他所做的一切,就是从大理石石块中看出雕像,然后将多余的石头刻掉,直到雕像的形状显现出来。同样,算法排除计算机中多余的晶体管,直到出现想要的功能,无论是客机的自动驾驶仪,还是皮克斯的新电影,原理都是这样。
一种算法不仅是简单的一套指令,这些指令必须精确且不能模糊,这样计算机才能够执行。例如,食谱并不算一种算法,因为食谱没有明确给出做事的顺序,或者具体每一步是怎样的。一勺白糖到底是几克?每个尝试新食谱的人都知道,跟着食谱做,可能会做出很美味的食物,也可能会做得一塌糊涂。相比之下,算法总能得出同样的结果。即便食谱明确指出需要半盎司白糖,计算机也不知道如何执行,因为计算机不知道什么是白糖、什么是盎司。如果我们想对厨用机器人编程,让它来做蛋糕,我们要通过视频教它如何辨认白糖、如何拿起勺子等(我们现在仍在努力)。计算机必须知道如何执行算法,直到打开及关闭指定的晶体管。因此,食谱离算法还很远。
另一方面,下面是玩井字棋的算法:
如果你或对手有两粒连子,占据剩下的角落。
否则,如果两边有两个连子的走法,就那样走。
否则,如果正中央是空的,走正中央。
否则,如果你的对手走到角落,占据他的对角。
否则,如果有空白的角落,占据它。
否则,占据任意空白的角落。
这个算法有很大的优点,那就是它绝对不会输。当然,它仍忽略了许多细节,比如在计算机的记忆中,棋盘如何表示,而棋的走法又如何改变这种表示方法。例如,每个角落我们有两个比特,如果中间是空的,值就是00;如果有一个圈,值就变成01;如果有一个叉,值就变成10。即便如此,这也足够精确、清晰,能让有能力的编程员来填补被忽略的空白。它还有一个好处,就是不用我们自己指定算法,细到单个晶体管。在构建数据存储块时,我们可以使用之前存在的算法,而且有很多这样的算法供选择。
算法是一套严格的标准。人们常说,你没法真正了解某样东西,直到你能用一种算法来将其表达出来(理查德 · 费曼曾说,“如果我无法创造某样东西,那么也就无法理解它”)。方程式对物理学家和工程师来说就是谋生工具,而这也仅仅是一种特殊算法。例如,牛顿第二定律,可以说是有史以来最重要的等式,告诉你用物体的质量乘以其加速度,可以算出作用在物体上的力。该定律还隐含地告诉你,加速度等于作用力除以质量,要弄明白这一点,只需一个运算步骤。在科学的任何领域,如果某个理论无法用算法表示,那么它就不是很严谨(更别提你无法用计算机来解决这个问题,因为你能让计算机替你做的事实在太有限)。科学家提出理论,工程师制造设备,计算机科学家提出算法,这和理论及设备都有关。
设计算法并没有那么简单。这个过程充满陷阱,什么事都不能想当然。如果你的一些构建已经出错,就得找其他方法。设计算法最重要的一点就是,你得用一种计算机能理解的语言来将算法记录下来,比如 Java 或者 Python(从这个角度看,就是一个程序)。接下来,你得对其进行纠错:找出每个误差并修正,直到计算机能够运行程序,而不至于搞砸。一旦你有了能完成你心愿的程序,就轻松多了。计算机会以飞快的速度,按我们的要求办事,而且毫无怨言。世界上的每个人都能享用你的创作成果。如果你愿意,这个成果可以一文不收;当然,如果你解决的问题足够有意义,这个成果也可以让你成为亿万富翁。程序员(创造算法并将其编码的人)是一个“小神灵”,能任意创造不同的世界。甚至你也可以说《圣经 · 创世记》里的神也是“程序员”:语言(而不是统治权)才是他创造世界的工具。语言构成了这个世界。当今时代,坐在沙发上利用笔记本电脑,你就可以成为一个“神”。你完全可以想象一个世界,并实现它。
有朝一日,计算机科学家会互相依赖各自的成果,然后为新事物创造算法。这些算法会与其他算法相结合,目的是利用其他算法的成果,反过来产生能服务更多算法的成果。每一秒钟,数十亿计算机里的数十亿晶体管会打开关闭数十亿次。算法形成新型生态系统,它将生生不息,具有无可比拟的生命多样性。
然而,不可避免地,在这个“伊甸园”里也会有狡猾的人存在,人们称之为“复杂性怪兽”。和九头蛇一样,这个复杂性怪兽有很多头,其中一个就是空间复杂性,即为了储存在计算机内存中,一个算法所需信息的比特数量。如果计算机无法提供该算法所需的内存,那么这个算法就没用,必须忽略。接着是邪恶的同类——时间复杂性:该算法运行多长时间,也就是说,在产生想要的结果之前,算法利用及重新利用晶体管的步骤有多少。如果算法运行时间太久,我们等不了,那么这个算法也没用。复杂怪兽最恐怖的一面就是人类的复杂性。当算法变得很复杂以致人类大脑已无法理解,当算法不同部分的交互过多且过于深入时,误差就会悄然潜入。我们找不到这些误差,也就无法纠正它们,算法也就不会做我们想做的事。即便我们让它运行起来,它也会停下来。对使用它的人来说,它没必要那么复杂,而且它和其他算法也合作得不好,这为日后埋下隐患。
每位计算机科学家每天都在和“复杂性怪兽”做斗争。如果科学家输了这场斗争,复杂性就会渗入我们的生活。你可能已经注意到,很多这样的斗争科学家已经输了。即便如此,我们也会继续构建我们的算法之塔,并迎接越来越大的挑战。每一代新的算法都要在之前的基础上构建,除了这代算法的复杂性,它们还面临之前算法的复杂性。塔会变得越来越高,会覆盖整个世界,但它也会变得越来越脆弱,像一座纸片做的房子,随时都会倒塌。算法里的微小误差可能导致价值10亿美元的火箭爆炸,或者可能导致停电,造成数百万美元的损失。算法以意想不到的方式进行交互,股票市场就会崩溃。
如果程序员是“小神”,复杂性怪兽就是魔鬼。慢慢地,魔鬼会赢得战争。
总得有个更好的方法来与魔鬼做斗争。
每个算法都会有输入和输出:数据输入计算机,算法会利用数据完成接下来的事,然后结果就出来了。机器学习则颠倒了这个顺序:输入数据和想要的结果,输出的则是算法,即把数据转换成结果的算法。学习算法能够制作其他算法。通过机器学习,计算机就会自己编写程序,就用不到我们了。
哇!
计算机会自己编写程序。现在看来这是一个强大的想法,甚至可能有点吓人。如果计算机开始自己编程,那么我们将如何控制它们?我们会看到,人类可以很好地控制它们。可能会有人当即反对,这听起来太美好了,不像真的。当然,编写算法需要智力、创造力、问题解决能力,这些都是计算机没有的。如何把机器学习与魔法区分开来?的确,今天为止,人们能编写许多计算机无法学习的程序。可令人更为惊讶的是,计算机却能学习人们无法编写出来的程序。我们会开车、会辨认字迹,但这些技能都是潜意识发挥出来的,无法向计算机解释这些事情是如何完成的。但是,如果我们把关于这些事情的足够多的例子交给学习算法,该算法会很乐意弄明白怎样独立完成这些事情,这时我们就可以放手让算法去做了。邮局正是通过这种方法来识别邮政编码,自动驾驶汽车也是这样才得以实现在路上跑。
解释机器学习的力量的最好方法,也许就是将其与其他低技术含量的活动进行类比。工业社会,商品由工厂制造,这也意味着工程师必须弄明白商品如何通过零件组装起来、这些零件如何生产等,细到生产原料。这是一项大工程。计算机是人类发明的最复杂的产品,计算机设计、工厂生产、程序运行都涉及大量的工作。还有另外一种方法能让我们得到一些想要的东西:让自然规律去塑造它们。在农业当中,我们播种,确保种子有足够的水分和营养,然后收割成熟的作物。为什么技术不能这样?完全可以,而这也是机器学习的承诺。学习算法是种子,数据是土壤,被掌握的程序是成熟的作物。机器学习专家就像农民,播下种子,灌溉,施肥,留意作物的生长状况,事事亲力亲为,而不是退居一旁。
一旦我们这样看待机器学习,随即也会发生两件事:
第一,我们掌握的数据越多,我们能学的也越多。没有数据?什么也学不到。大数据?很多东西可以学习。这也是机器学习无处不在的原因,因为有飞速增长的数据。如果你在超市购买机器学习,其包装上可能会写着“只需添加数据”。
第二,机器学习是一把剑,利用这把剑可以杀死复杂性怪兽。只要有足够的数据,一段只有几百行代码的程序可以轻易生成拥有上百万行代码的程序,而且它可以为解决不同问题不停产生不同的程序。这可以显著降低程序员工作的复杂度。当然,就像对付九头蛇,我们砍掉它的头,会立即长出新头,但长出的头会变小,而且头的生长也需要时间,因此我们仍有可能胜出。
我们可以把机器学习当作逆运算,正如开平方是平方的逆运算、整合是分化的逆运算。正如我们会问“什么数的平方是16”,或者“导数为 x+1 的函数是什么”,我们也会问“什么算法会得出该结果”。我们很快会看到,怎样将这个观点运用到具体的学习算法中。
有些学习算法学习知识,有的则学习技能。“所有人都会死”是知识,骑单车是技能。在机器学习中,知识往往以统计模型的形式出现,因为多数知识都是可以统计的:所有人都会死,但只有4%是美国人。技能往往以程序的形式出现:如果马路向左弯曲,那么向左转动车头;如果一只鹿跳到你面前,那么立刻刹车(很遗憾,在写这本书时,谷歌的自动驾驶汽车仍会把被风吹起的塑料袋和鹿弄混)。通常,这些程序都很简单,复杂的是它们的核心知识。如果你能判断哪些邮件是垃圾邮件,那么你也就能判断该删除哪些邮件。如果你能在象棋游戏中判断这盘棋自己的优势在哪里,那么你也就懂得该怎么走(能让你处于最有利地位的一步)。
机器学习有许多不同的形式,也会涉及许多不同的名字:模式识别、统计建模、数据挖掘、知识发现、预测分析、数据科学、适应系统、自组织系统等。这些概念供不同群体使用,拥有不同的联系。有些有很长的半衰期,有些则较短。在本书中,我用“机器学习”一词泛指所有这些概念。
机器学习有时会和人工智能(AI)混淆。严格来讲,机器学习是人工智能的子域,但机器学习发展得如此壮大且成功,现已超越以前它引以为傲的母领域。人工智能的目标是教会计算机完成现在人类做得更好的事,而机器学习可以说就是其中最重要的事:没有学习,计算机就永远无法跟上人类的步伐;有了学习,一切都与时俱进。
在信息处理这个生态系统中,学习算法是顶级掠食者。数据库、网络爬虫、索引器等相当于食草动物,耐心地对无限领域中的数据进行蚕食。统计算法、线上分析处理等则相当于食肉动物。食草动物有必要存在,因为没有它们,其他动物无法存活,但顶级掠食者有更为刺激的生活。数据爬虫就像一头牛,网页相当于它的草原,每个网页就是一根草。当网络爬虫进行破坏行动时,网站的副本就会保存在其硬盘当中。索引器接着做一个页面的列表,每个词都会出现在页面当中,这很像一本书后的索引。数据库就像大象,又大又重,永远不会被忽略。在这些动物当中,耐心的野兽飞快运转统计和分析算法,压缩并进行选择,将数据变为信息。学习算法将这些信息吞下、消化,然后将其变成知识。
机器学习专家在计算机科学家中就是一种精英式的“神职”。许多计算机科学家,尤其是更老的那一代,并不如他们想的那样能很好地理解机器学习。这是因为,计算机科学通常需要的是准确思维,但机器学习需要的是统计思维。例如,如果有条规定是“垃圾邮件标记的正确率是99%”,这并不意味存在缺陷,而可能意味这是你的最好水平,已经很好用了。这种思维上的差别很大程度上也解释了为什么微软能赶上网景公司,但想赶上谷歌却困难得多。说到底,浏览器只是一个标准的软件,而搜索引擎则需要不同的思维模式。
之所以说机器学习研究者是超级计算机迷的另外一个原因,就是当今世界急需他们,但他们寥寥无几。按照计算机科学严格的标准,这样的人数量就更少了。蒂姆 · 奥莱利认为,“数据科学家”是硅谷最热门的职业。根据麦肯锡全球研究院估计,截至2018年,仅美国就需要再培养14万~19万机器学习专家才够用,另外还需要150万有数据头脑的经理。机器学习的应用爆发得如此突然,连教育都无法跟上其步伐,同时,人才奇缺也是因为这门学科在人们看来很难而令人望而生畏。教科书很可能会让你感到数学很难,然而,这个困难表面看起来很大,其实并不是。机器学习所有的重要观点可以不用通过数学表示出来。当你读这本书时,甚至可能会发现,你发明了自己的学习算法,而且看不到一个方程式的影子。
工业革命使手工业自动化,信息革命解放了脑力劳动,而机器学习则使自动化本身自动化。没有机器学习,程序员会成为阻挠进步的障碍。有了机器学习,进步的步伐就会加快。如果你是一个懒惰又不那么聪明的计算机科学家,机器学习就是理想的职业,因为学习算法会完成所有事情,功劳却是你的。从另一方面讲,学习算法会让我们失业,这也只是我们应受的惩罚。
将自动化带入新的高度,机器学习革命会带来广泛的经济及社会变革,正如互联网、个人计算机、汽车以及蒸汽机在当时对社会和经济的影响那样。这些变革已经明显存在的领域就是商业。
为什么谷歌比雅虎要有价值得多?它们都是用户登录最多的网站,都靠在网页上登广告赚钱。它们都用拍卖的方式销售广告,用机器学习来预测用户点击某广告的概率(概率越大,广告价值越大),但谷歌的机器学习就比雅虎要好很多。这不是它们市场价值差异巨大的唯一原因,却是主要原因。如果没有达到预测的点击量,对广告商来说就是浪费机会,对网站来说是收益损失。谷歌每年的收入是500亿美元,预测点击率每上升1%,就可能意味着每年为公司带来额外5亿美元的收入。难怪谷歌是机器学习的铁杆粉丝,雅虎和其他公司也在奋起直追。
网络营销仅仅是巨大变革中的一种表现形式。无论什么市场,生产商和用户在交易发生之前,都需要进行联系。在互联网出现之前,交易的主要障碍就是实地交易。你只能从当地的书店购买书籍,而当地书店的书架空间又有限。但当你可以随时把所有书下载到电子阅读器时,问题就变成了可供选择的书太多。你怎么浏览书店里上百万不同名字的书?同样的问题也出现在其他信息产品当中:视频、音乐、新闻、推特文章、博客、网页。这个问题还会出现在能够远程购买的产品和服务当中:鞋子、鲜花、小配件、酒店房间、辅导、投资。人们在找工作或挑日子时,也会遇到选择过多的问题。你们如何找到彼此?这是信息时代的定义问题,而机器学习就是问题解决方案的主要部分。
当公司不断发展壮大后,它会经历三个阶段:
第一阶段的所有事都由人工完成——夫妻店的店主亲自了解其顾客,他们依照顾客类型订购、展示、推荐产品。这很不错,但规模不大。
第二阶段是最辛苦的时期,公司变得越来越大,需要用到计算机。公司招来程序员、顾问,买来数据库管理器,程序员编写了成百万行的代码来使公司所有能自动化的功能自动化。更多的人享受到服务,但也有麻烦:决定是在粗略的人口统计类别的基础上做出来的,计算机程序也过于死板,无法与人类无限的才能相匹配。
经过一段时间进入第三阶段,没有足够的程序员和顾问满足公司的需要,因此公司不可避免地向机器学习寻求帮助。亚马逊无法通过计算机程序将所有用户的喜好熟练地进行编码,脸书也不知道如何编写这样的程序,能选择最好的更新内容展示给每位用户。沃尔玛每天销售百万件商品,还要做数十亿个选择。如果沃尔玛的程序员努力编写出能够做所有选择的程序,这些选择就不用人来做了。相反,这些公司所做的工作是,它们在收集到如山的数据后,让学习算法尽情学习,然后预测顾客想要什么产品。
学习算法就是“媒人”:它们让生产商和顾客找到对方,克服信息过载。如果这些算法足够智能,你就能取得两全其美的结果:从宏观来讲,选择广、成本低;从微观来讲,能够了解顾客的个性化需求。学习算法并不是完美的,决定的最后一步通常还得由人来做,但学习算法很智能,为人们减少了需要做的选择。
回顾过去,我们看到,从计算机到互联网再到机器学习的进步是必然的:计算机使互联网成为可能,这个过程产生大量数据以及无限选择这个问题。单单互联网还不足以把“一个尺寸满足所有”的需求转向追求无限多样化的长尾效应。网飞公司的库存里可能有10万种不同名字的 DVD(数字多功能光盘),但如果顾客不懂得如何找到自己喜欢的,他们就会默认选择最流行的 DVD。只有网飞公司有了学习算法之后,才能帮助它了解顾客的喜好,并推荐 DVD,长尾效应也才得以真正实现。
一旦必然的事情发生,机器学习成为媒介,那么其力量也开始慢慢积聚。谷歌的算法很大程度上决定你会找到什么信息,亚马逊决定你会买到什么产品,全球最大的婚恋网站默契网(Match.com)决定你的约会对象是谁。最好的选择权仍在你手里——从算法给你展示的所有选项中挑选,但99.9%的选择由算法做出。当下,一家公司的成败取决于学习算法对其产品的喜爱程度,而整个经济体的成功——是否每个人都能得到自己需要的物美价廉的产品,则取决于学习算法的好用程度。
公司确保学习算法喜爱其产品的最佳方法就是,让公司自己运行算法。谁有最佳算法、数据最多,谁就能赢。新型网络效应占据上风:谁有最多的用户,谁就能积累最多的数据,谁有最多的数据,谁就能学到最好的模型,谁学到最好的模型,谁就能吸引最多的用户,这是一种良性循环(如果你在竞争,就会变成恶性循环)。把搜索引擎从谷歌转换到必应,可能会比把应用系统从 Windows 切换到 Mac 要简单,但在实际操作中,你不会这么做,因为谷歌拥有领先优势及更大的市场份额,比必应更懂得你想要什么,虽然必应的技术也不错。可惜的是,必应刚进入搜索行业,没有什么数据资源,而谷歌却拥有十余年的机器学习经验。
你可能会认为,过一段时间,更多的数据结果意味着更多的重复,但数据的饱和点还未出现,长尾效应持续起作用。如果你看亚马逊或网飞公司为你提供的推荐产品,很明显,这些推荐项仍很粗略,而谷歌的搜索结果也有很大的优化空间。每个产品的特性、网页的每个角落都有很大的潜力,能通过机器学习得到改善。网页底部的链接应该是红色的还是蓝色的?两个颜色都试试,看看哪个颜色的点击率会更高。还有,最好让机器学习持续运行,不断调整网页的所有方面。
所有拥有众多选择和大量数据的市场都会发生这样的动态循环。比赛正在进行,谁学得最快,谁就赢了。随着越来越好地了解用户需求,这个比赛不会停止:企业可以将机器学习应用到企业运作的每个方面,只要有足够的数据,只要数据能够从计算机、通信设备以及更廉价、更普适的传感器源源不断地输出。“数据是新型石油”是目前的流行说法,既然是石油,提炼石油就是一笔大生意。和其他公司一样,IBM 已制定经济增长战略,为企业提供分析服务。业界将数据看作战略资产:我有什么数据,而竞争对手却没有?我要怎么利用这些数据?竞争对手有什么数据,而我却没有?
同样的道理,没有数据库的银行无法和有数据库的银行竞争,没有机器学习的企业也无法跟上使用机器学习的企业。虽然第一家公司的专家写了上千条规则,预测用户的喜好,但是第二家公司的算法却能学习数十亿条规则,一整套规则都可用于每位用户。这就相当于长矛对机关枪。机器学习是很棒的新技术,但这并不是商业界拥护它的原因——人们之所以拥护它,是因为别无选择。
机器学习是“打了类固醇”的科学方法,也遵循同样的过程:产生假设、验证、放弃或完善。科学家可能会花费毕生精力来提出或验证几百个假设,而机器学习系统却能在一秒钟内做完这些事。机器学习使科学的发现过程自动化。因此,并不奇怪,这既是商业领域的革命,也是科学领域的革命。
为了取得进步,科学的每个领域都需要足够的数据,以与其研究现象的复杂性相对应。这是物理成为第一个腾飞学科的原因:第谷·布拉赫对星球位置的记录,以及伽利略对钟摆摆动、斜面的观察,已经足以推导出牛顿定律。这也是为什么虽然分子生物学这个学科比神经科学年轻,但是已超越神经科学:DNA(脱氧核糖核酸)微阵列以及高通量测序技术提供了大量的数据,而神经科学家对此只能可望而不可即。这也是为什么社会科学研究是一场艰苦卓绝的斗争:你拥有的只是100人的样本和每个人的十几个测量值,你能模拟的也只是某个规模很有限的现象,甚至这个现象可能不是孤立存在的,还受到其他现象的影响,这就意味你仍然没有彻底了解它。
有个好消息,那就是之前缺乏数据的学科现在拥有很多数据。用不着让50名睡眼惺忪的本科生到实验室完成任务并付给他们报酬,心理学家通过在亚马逊“土耳其机器人”上发布实验任务,就可以找到满足他们数量要求的实验对象(这个网站对更多样化的样本也有帮助)。虽然回想起来越来越困难,但也只是10年前,研究社交网络的社会学家哀叹说,他们无法得到成员超过几百人的社交网络。现在有了脸书,有超过10亿用户。大部分用户会发布有关他们生活的很多细节,就像地球社会生活的实时直播。在神经科学领域,神经连接组学和功能性磁共振成像让人们对大脑有了十分详细的了解。在分子生物学领域,基因和蛋白质的数据库数量以指数级速度增长。甚至更为“年长”的学科,如物理学和解剖学也在不断进步,因为粒子加速器和数字巡天领域的数据在源源不断输出。
如果你不将大数据变成知识,它将毫无用处,可是世界上没有那么多科学家来完成这件事。埃德温 · 哈勃通过钻研照相底片发现新的星系,但史隆数字巡天计划中,多达5亿的天体肯定不是这样被辨认出来的。这就像在沙滩上用手来数沙粒的数目。你可以记录规则,把星系从星星及干扰物(如鸟、飞机、超人)区分开来,但得出的星系并不是那么准确。相比之下,天体图像目录编辑和分析工具(SKICAT)项目使用了学习算法。底片包括标记了正确类别的天体,从这些底片出发,学习算法可以明白每个分类的特点,并将其应用到没有标记的底片当中。甚至更理想的是,学习算法能够将那些对人类来说难以标记的天体进行分类,这些天体正是该项调查计划的主要内容。
有了大数据和机器学习,你就能弄明白比之前复杂很多的现象。在多数领域,科学家一般只使用种类很有限的模型,例如线性回归模型,在这个模型当中,你用来适应数据的曲线总是一条直线。遗憾的是,世界上的大多数现象都是非线性的(或者说这也是一件幸事,如果是线性的,生活会变得非常乏味。实际上,那样就不会存在生命了)。机器学习打开了广阔、全新的非线性模型世界。这就好比在只有几缕月光照射的房间,打开了明亮的灯。
在生物学领域,学习算法的研究成果包括:DNA 分子中基因的位置;在蛋白质合成前,多余的核糖核酸在哪里进行绞接;蛋白质如何折叠成各自的特有形状;不同条件如何对基因的表达造成影响。用不着在实验室对新药进行测试,机器学习就可以预测这些药物是否有效,只有最有效的药品才会受到测试。学习算法还会剔除那些可能产生严重副作用(甚至导致癌症)的药物,备选药物无须在经过人体试验被证明无效后才被禁止使用,从而避免了代价昂贵的失败。
然而,最大的挑战就是将所有这些数据组合成一个整体。导致你患心脏病的因素有哪些?这些因素如何相互影响?牛顿需要的只是三个运动定律和一个万有引力定律,但一个细胞、一个有机体、一个社会的完整模型却无法由一个人来发现。虽然随着知识的增长,科学家的分工变得越来越细,但是没有人能够将所有知识整合到一起,因为知识太多了。虽然科学家们会合作,但语言是传播速度非常缓慢的介质。虽然科学家们想努力追上别人的研究,但出版物的数量如此之多,他们的距离被拉得越来越远。通常是,重做一项实验比找到该实验的报告还要容易。机器学习在这时就会起作用,它能根据相关信息搜索文献,将某领域的行话翻译到另一个领域,并建立联系,而科学家们在过去都没有意识到。渐渐地,机器学习成为一个巨大的中心,通过这个中心,某领域里发明的建模技术将会被引入其他领域。
如果计算机没有被发明出来,20世纪下半叶的科学将停滞不前。这可能不会很快在科学家当中表现出来,因为他们专注于所有仍可努力实现、有限的进步,但进步的空间真的太小了。同样,如果没有机器学习,许多科学在未来10年将会面临收益递减。
为了预见科学的未来,看看曼彻斯特大学生物技术研究院的实验室,在那里,一个名叫亚当的机器人正在努力工作,目的是找到哪些基因在酵母中对哪些酶进行编码。亚当有一个酵母新陈代谢的模型,还掌握了基本的基因及蛋白质知识。它提出假设,设计实验验证假设,进行实地实验,分析结果,提出新的假设,直到它满意为止。当下,人类科学家仍然在独立检查亚当的结果,然后才会相信这些结果,但在未来,他们就会交给机器人科学家来验证彼此的假设。
在2012年的美国总统选举中,机器学习决定了谁能当上总统。通常决定总统选举的因素包括经济、候选人的亲民度等,但这些因素没有起到作用,而选举的结果主要受到几个“摇摆州”的影响。米特 · 罗姆尼的竞选采用的是传统的投票策略,将选民分成几大类,然后选择是否把每个类别作为目标。尼尔 · 纽豪斯(罗姆尼的民意调查专家)说道:“如果我们能在俄亥俄州赢得无党派人士,那么这场竞赛我们就赢了。”虽然罗姆尼获得了7%无党派人士的支持,但他仍失去了这个州,在竞选中失利。
相比之下,奥巴马总统雇用了拉伊德 · 贾尼(机器学习专家,他是奥巴马竞选中的首席科学家)。贾尼研究的是如何整合最伟大的分析运算,并将其应用到政治史中。他们将所有选民的信息整合成单个数据库,然后将该数据库和他们能在社交网络、市场营销等领域找到的资源结合起来。之后着手对每个选民做四种预测:(1)支持奥巴马的可能性有多大;(2)会不会参加民意调查;(3)会不会回应竞选宣传并照做;(4)对特定问题进行对话之后,他们会不会改变选举决定。基于这些选民的例子,奥巴马团队每个晚上进行66000场选举模拟,并用这些结果指导奥巴马竞选的志愿者大军:该给谁打电话,该拜访谁,该说什么。
在政界、商界以及战争中,最糟糕的事情莫过于,你不明白对手的行动,而知道该怎么做时,为时已晚。这就是发生在罗姆尼竞选中的事情,他们能看到对手的团队在特定镇的特定电台花钱做宣传,却不知道这是为什么,他们能预测的实在太少。最后,奥巴马除了北卡罗来纳州以外,赢得了每个州,而且与最可靠的民意调查专家的预测相比,他赢得了更多。反过来,最可靠的民意调查专家(例如内特 · 希尔)使用的是最复杂的预测技术,预测结果却没有奥巴马竞选团队的结果准确,因为他们的资源比较少。但他们比那些所谓的权威人士要准确很多,因为那些人的预测只是基于他们自己的专业知识。
也许你会认为,2012年的美国总统竞选只是机缘巧合:大多数选举结果并不那么接近,机器学习无法成为决定因素。但未来机器学习会让更多的选举结果更接近。在政界,正如在所有领域那样,学习就像一场掰手腕比赛。在卡尔 · 罗夫(前直销商和数据挖掘工程师)的年代,共和党是领先的。到了2012年,共和党开始掉队,但现在他们又追上来了。我们不知道下一轮选举谁会领先,但我们知道两个党派为了赢得选举都很努力。这也就意味着,应该更好地了解选民,根据候选人的情况进行宣传,甚至根据实际情况选择候选人。在选举期间以及每轮选举之间,这适用于整个党纲:在硬数据的基础上,如果详细的选民模式表明该党派现在的纲领是失败的,那么该党派就应改变它。因此,把主要选举活动放到一边,民意调查中候选人的差距会变得越来越小,而且很快会消失。其他条件不变,拥有更好选民模式的候选人会赢得选举,而选民也会因此得到更好的服务。
政治家最伟大的才能之一,就是能够了解其选民个人或者选民团体,然后直接与他们对话,比尔 · 克林顿就是其中的一个典范。机器学习的作用就是,让每位选民都觉得克林顿对待他们亲力亲为、非常用心。尽管他们心目中的这些小小克林顿与真的克林顿相差太远了,但优势在于“小克林顿”的数量众多,哪怕比尔 · 克林顿根本无法了解美国的每位选民是怎么想的(虽然他确实想知道)。学习算法是最强大的政治家推销商。
当然,就像企业一样,政治家能把机器学习掌握的信息用好,也可能会用得很糟糕。例如,对不同的选民,他们可能会给出不一致的承诺,但选民、媒体、监督组织也会自己进行数据挖掘,并揭露做得太过分的政治家。竞选活动不仅仅是候选人之间的较量,还涉及民主进程中的所有参与者。
更大范围的结果就是,民主会更好地得到实现,因为选民与政治家之间交流的范围会飞速扩大。在当今这个高速互联网时代,民意代表从你身上获取的信息数量仍像19世纪时一样有限:每两年会有100比特左右的信息,数量正好对应一张选票。这些信息会由民意信息来补充,或许偶尔还会有电子邮件和市民大会的信息,但还是少得可怜。大数据和机器学习正改变这种等式关系。在未来,只要选民模式准确,当选官员就可以每天询问选民上千次想要什么,然后根据询问结果来办事,不用在现实中纠缠选民。
在网络空间之外,学习算法是保护国家的壁垒。每天,国外袭击者都会企图闯进五角大楼、国防承包商以及其他公司和政府机构的计算机。他们的计谋不断变化,能抵抗昨天袭击的方法,今天就已经不管用了。编写代码来侦查并阻止每场袭击,可能会和马其诺防线一样有效,五角大楼的网络司令部十分了解这一点。但如果是恐怖分子的第一次袭击,而且也没有之前的例子供机器学习来参考,那么机器学习就会遇到问题。学习算法会构建正常行为的模型(这样的模型数量很多),标出异常行为,然后召集来“骑兵”(系统管理员)。如果网络战争发生,人类就是总指挥,算法就是步兵。人类速度太慢、数量太少,很快就会被机器人大军歼灭。我们需要自己的机器人军队,而机器学习就像机器人中的西点军校。
网络战争是不对称战争的一个例子,一方的传统军事实力比不上另一方,但仍然可以给对方造成严重伤害。少数恐怖分子只用美工刀就可以撞到双子塔,并让几千名无辜者遇难。当今美国安全最大的威胁就是不对称战争,而且抵抗所有威胁的有效武器就是信息。如果敌人躲不了,那么他也活不了。好消息就是我们有大量信息,但也有坏消息。
美国国家安全局已经对数据产生无限大的胃口,也因此声名狼藉。据估计,每天美国国家安全局窃听着全球10亿多个通话,还有其他通信。但是,抛开隐私问题,它也没有让上百万员工来窃听这些通话、偷看邮件,甚至也不会记录谁和谁通话。绝大多数通话是没有嫌疑的,而专门编写程序来找出有嫌疑的通话又很困难。过去,美国国家安全局利用关键词配对方法,但要应付这个方法也很容易(例如,把爆炸袭击称作“结婚”,把炸弹称作“结婚蛋糕”)。21世纪,这些事就可以交给机器学习。保密是安全局的标志,但安全局局长已经向美国国会证明,通话记录挖掘已经阻止了几十起恐怖威胁。
恐怖分子可隐藏在足球比赛的人群中,但学习算法能辨认他们的相貌。恐怖分子可以在国外制造爆炸事件,但学习算法能找出他们。学习算法还可以做更加精细的事情:将机器人与事件连接起来,这些事件单个看起来并无危害,但集中起来可能就预示着不祥。这种方法本可以阻止“9·11”事件的发生。有一个进一步的转折:一旦确定的程序部署下来,坏人可能会改变其活动,以扰乱该程序。这与自然世界不同,自然世界总是以同样的方式运转。要解决这个问题,就要将机器学习与博弈论相结合,这是我已经在做的工作:别只想着打击对手当前想做的事,要学会巧妙地回避对手对你的学习算法的损害。正如博弈论那样,把各种措施的成本和利益考虑在内,这也有助于找到隐私与安全之间的平衡点。
不列颠之战期间,英国空军阻止了纳粹德国空军的进攻,尽管后者人数比前者多很多。德国飞行员不明白,为什么无论走到哪里,他们总会碰上英国空军。英国有一个秘密武器:雷达,可以在德国飞机越境进入英国领空时,就探测到它们。机器学习就像装了雷达,能够预知未来。别只是回击对手的行动,要预测他们的行动,并先发制人。
一个更确切的例子就是人们熟知的“预知执法”。通过预测犯罪倾向,战略性地将巡逻队集中在最可能需要的地方,同时采取其他预防措施,这样一座城市的警力就能有效地完成更大范围的工作。在许多方面,执法过程就像不对称战争,会用到许多相似的学习算法,无论是在侦查诈骗、揭露犯罪网络,还是普通传统的打击执法中。
机器学习在战争中也将扮演越来越重要的角色。学习算法能有助于驱散战争迷雾,筛选侦察图像,处理后续报告,并整合信息,为指挥官提供战争形势分析。学习算法可以武装军用机器人的大脑,帮助其保持方位,适应地形,把敌机和民用机区别开来,以及进行制导。美国国防部高级研究计划局(DARPA)的领头狗(AlphaDog)能为士兵搬运设备。遥控飞机在学习算法的作用下可自主飞行。虽然它们仍受到人类飞行员的部分控制,但未来的趋势是一个飞行员监控越来越多的遥控飞机群。在未来的军队里,学习算法的数量会大大超过士兵的人数,这将减少许多士兵的伤亡。
科技潮流奔涌而来并迅猛向前。机器学习不同寻常的一点就是,在经历所有这些变革以及繁荣和破产之后,它开始逐渐强大。它遇到的第一个大的打击是在金融领域,预测股票的起伏波动,起于20世纪80年代。接下来的一波是挖掘企业数据库,在20世纪90年代中开始发展壮大,尤其是在直接营销、客户关系管理、资信评分以及诈骗侦查等领域。接着是网络和电子商务,在这些领域中,自动个性化很快流行起来。当互联网泡沫暂时削弱这种趋势时,将机器学习应用到网页搜索和广告投放的做法开始腾飞起来。不管怎样,“9·11”恐怖袭击后机器学习被应用到打击恐怖主义的战争中。网络2.0带来一连串的新应用,包括挖掘社交网络、搜索哪些博客谈到你的产品。同时,各个领域的科学家也逐渐转向大规模建模,由分子生物学家和天文学家打头阵。人们勉强留意到了房地产泡沫,而其主要影响就是使人才从华尔街转移到硅谷,并受到欢迎。2011年,“大数据”的概念流行起来,机器学习被明确归入全球经济未来的中心。当今,似乎没有哪个人类钻研的领域不受到机器学习的影响,甚至包括看起来没有多大关系的领域(如音乐、体育、品酒)。
尽管机器学习发展很明显,但这也仅仅是未来的预告。虽然它有用,但实际上当今在工业上起作用的学习算法的生成还是受到了很大限制。如果现在实验室的算法能在各领域的前线使用,比尔 · 盖茨说机器学习的突破产生的价值将相当于10家微软,其实这个说法有点保守了。如果这些观点让研究人员真正觉得眼前一片光明,而且收到效果,那么机器学习带来的就不仅仅是新的文明时代,还是地球生命进化的新阶段。
怎样才能实现这个目标?学习算法如何运行?现在它们不能做什么?它们的下一代会是怎样的?机器学习革命将以什么方式呈现?你得抓住哪些机遇,提防哪些危险?这些就是这本书要讲的内容。
阅读全文: http://gitbook.cn/gitchat/geekbook/5a409c8cf59ac3165704787b