终极算法:机器学习和人工智能如何重塑世界
內(nèi)容簡介
算法已在多大程度上影響我們的生活?購物網(wǎng)站用算法來為你推薦商品,點評網(wǎng)站用算法來幫你選擇餐館,GPS 系統(tǒng)用算法來幫你選擇好的路線,公司用算法來選擇求職者……當機器最終學(xué)會如何學(xué)習(xí)時,將會發(fā)生什么?
不同于傳統(tǒng)算法,現(xiàn)在悄然主導(dǎo)我們生活的是“能夠?qū)W習(xí)的機器”,它們通過學(xué)習(xí)我們瑣碎的數(shù)據(jù),來執(zhí)行任務(wù);它們甚至在我們還沒提出要求,就能完成我們想做的事。
什么是終極算法?
機器學(xué)習(xí)五大學(xué)派,每個學(xué)派都有自己的主算法,能幫助人們解決特定的問題。而如果整合所有這些算法的優(yōu)點,就有可能找到一種“終極算法”,該算法可以獲得過去、現(xiàn)在和未來的所有知識,這也必將創(chuàng)造新的人類文明。
你為什么必須了解終極算法?
不論你身處什么行業(yè)、做什么工作,了解終極算法都將帶給你嶄新的科學(xué)世界觀,預(yù)測以后的科技發(fā)展,布局未來,占位未來!
作者簡介
佩德羅 · 多明戈斯(Pedro Domingos),美國華盛頓大學(xué)計算機科學(xué)教授,加州大學(xué)歐文分校信息與計算機科學(xué)博士,在機器學(xué)習(xí)與數(shù)據(jù)挖掘方面著有200多部專業(yè)著作和數(shù)百篇論文。國際機器學(xué)習(xí)學(xué)會聯(lián)合創(chuàng)始人,《機器學(xué)習(xí)》雜志編委會成員,JAIR 前副主編。美國人工智能協(xié)會院士(AAAI Fellow,國際人工智能界的最 高榮譽),榮獲 SIGKDD 創(chuàng)新大獎(數(shù)據(jù)科學(xué)領(lǐng)域的最 高獎項)、斯隆獎(Sloan Fellowship)、美國國家科學(xué)基金會成就獎(NSF CAREER Award)、富布賴特獎學(xué)金、IBM 學(xué)院獎以及多個論文獎項。
本書內(nèi)容
推薦序
作為一位機器學(xué)習(xí)領(lǐng)域研習(xí)10年以上的專業(yè)技術(shù)人員,我當初入行的時候沒有想到,短短的10年間,這項技術(shù)會如此快速地改變眾多行業(yè),并影響全球數(shù)十億用戶生活的方方面面。在今天,當你用今日頭條瀏覽新聞資訊的時候,當你用網(wǎng)易云音樂查看推薦歌單的時候,當你在百度搜索信息的時候,當你在互聯(lián)網(wǎng)金融平臺申請借款的時候,甚至在你調(diào)戲 Siri 和小冰的時候,其實都是其背后的機器學(xué)習(xí)算法在云端服務(wù)器中為你默默服務(wù)。但對于這樣一種重要技術(shù),市面上一直缺少一本適合普通讀者的入門科普讀物,而眾多的專業(yè)書籍要求讀者具備一定的高等數(shù)學(xué)和計算機基礎(chǔ)算法知識,并不適合科普的需要。直到中信出版社的朋友將這本書的翻譯稿推薦給我時,我欣慰地發(fā)現(xiàn),這正是想了解一點機器學(xué)習(xí)的普通讀者所需要的啊。本書的作者多明戈斯是華盛頓大學(xué)的終身教授,也是一位在機器學(xué)習(xí)領(lǐng)域具有20年研究經(jīng)歷的資深科學(xué)家。多明戈斯一直致力于融合各種機器學(xué)習(xí)算法的優(yōu)勢,提出一種可以解決所有應(yīng)用問題的通用算法,即終極算法。在這本書里,作者詳細地闡述了他的思路。其實我個人在閱讀本書的過程中,始終對“終極算法”的提法充滿懷疑。在我看來,機器學(xué)習(xí)作為人工智能領(lǐng)域的主流技術(shù),在現(xiàn)實社會中一直以技術(shù)工具的面目為人所知。不同的技術(shù)流派和相應(yīng)算法往往可以很好地解決一些問題,卻對另一些問題一籌莫展。所謂的終極算法真的存在嗎?如果存在,有價值嗎?
可以拿內(nèi)燃機舉個例子,就我這個外行來說,也知道存在活塞式發(fā)動機、渦噴發(fā)動機、渦軸發(fā)動機、渦扇發(fā)動機、渦槳發(fā)動機、沖壓發(fā)動機等不同種類的內(nèi)燃機。不同的內(nèi)燃機特性迥異,適用的工況也不盡相同。小到家用小汽車,大到導(dǎo)彈驅(qū)逐艦,人類制造的各種機動設(shè)備,都可以根據(jù)自己的效率需求、動力需求、壽命需求,乃至啟動速度等多種需求維度選擇發(fā)動機種類。如果有人非要搞個終極內(nèi)燃機,并企圖用這種內(nèi)燃機替代現(xiàn)存的各類內(nèi)燃機,為所有大大小小、需求不同的機動設(shè)備提供統(tǒng)一動力,估計大概率是要失敗的。這種通用的終極內(nèi)燃機如果能搞出來,在大部分領(lǐng)域肯定競爭不過各領(lǐng)域的專用內(nèi)燃機,或者成本太高,或者能效太低。
帶著這種疑問,我通篇讀下來之后才發(fā)現(xiàn)作者的另一層用意。誠如作者所說,很多普通人可能沒有意識到自己的生活中機器學(xué)習(xí)算法的影響已經(jīng)無處不在,機器學(xué)習(xí)已經(jīng)在逐漸接管現(xiàn)實世界。大眾對這樣一種技術(shù)的認知程度和該技術(shù)的重要性相比顯得遠遠不夠,在不遠的未來,了解機器學(xué)習(xí)并有能力利用機器學(xué)習(xí)改進自己工作的人在職業(yè)發(fā)展上會具備巨大的優(yōu)勢。“不要和人工智能對抗,要讓人工智能為你服務(wù)”是作者誠摯的忠告。而要利用好機器學(xué)習(xí)這個工具,并不一定需要讀一個計算機博士學(xué)位,但有必要了解一些基本的概念,了解各種技術(shù)的優(yōu)缺點和能力邊界。正如一位稱職的駕駛員不必了解具體怎么制造汽車發(fā)動機,但是對發(fā)動機的工作原理和種類還是需要略知一二的。因此,相比一板一眼地介紹機器學(xué)習(xí)的典型算法,作者設(shè)計了一個更引人入勝的套路:先拋出一個“是否存在一種終極算法”的問題,然后帶著讀者一章一章地回顧機器學(xué)習(xí)發(fā)展史上的重要流派和代表算法。每回顧一派,就鼓勵讀者思考終極算法應(yīng)該如何借鑒這類算法的優(yōu)點。好奇的普通讀者帶著疑問讀完本書后,不論其是否相信終極算法的存在,至少對各類算法都會有一定的印象。以討論終極算法為名,行科普之實,到這一步,我覺得作者的目的已經(jīng)達到一半了。
另外,在文末作者還提到,無論終極算法是否存在,他希望這個大膽的問題能夠激發(fā)部分讀者的好奇,甚至被這個問題吸引成為機器學(xué)習(xí)的專業(yè)研究人員。確實,每一種學(xué)科都需要至高的理想驅(qū)動向前,就如同物理的大一統(tǒng)理論,當無數(shù)杰出的天才為一個終極問題孜孜以求時,就算這個問題本身在這些人的有生之年可能沒有答案,但是這個學(xué)科一定會因為這些偉大的探索歷程取得輝煌的進步。我想,這也許是作者因為對機器學(xué)習(xí)的熱愛夾帶的另一個私貨吧。
作為今日頭條的一位算法架構(gòu)師,我倒是希望頭條用戶都能陷入作者的“圈套”,帶著好奇心,好好讀讀這本書。如果大多數(shù)用戶都能了解一些機器學(xué)習(xí)的基礎(chǔ)知識,應(yīng)該就能夠更好地和推薦算法互動,不斷把算法調(diào)教得更好,更符合自己真正的興趣,而不會因為算法一開始推薦的內(nèi)容不好就放棄這個產(chǎn)品。誠如作者所說,也許在未來,對應(yīng)人類的心理學(xué),也會出現(xiàn)機器心理學(xué),了解一點機器人的心理,會讓你和機器的互動更有效率,也會讓機器更快地成為你忠實、不知疲倦的助手。
曹歡歡
今日頭條首席算法構(gòu)架師
序
你也許不知道,但機器學(xué)習(xí)就在你身邊。當你把查詢信息輸入搜索引擎時,它確定該向你顯示哪些搜索結(jié)果(包括顯示哪些廣告)。當你打開郵箱時,大部分垃圾郵件你無法看到,因為計算機已經(jīng)把這些垃圾郵件過濾了。登錄亞馬遜網(wǎng)站購買一本書,或登錄網(wǎng)飛(Netflix)公司網(wǎng)站觀看視頻,機器學(xué)習(xí)系統(tǒng)會推薦一些你可能喜歡的產(chǎn)品。臉書(Facebook)利用機器學(xué)習(xí)決定該向你展示哪些更新,推特(Twitter)也同樣會決定顯示哪些文章。你使用計算機的任何時候,都有可能涉及機器學(xué)習(xí)。
傳統(tǒng)上認為,讓計算機完成某件事情的唯一方法(從把兩個數(shù)相加到駕駛飛機),就是非常詳細地記錄某個算法并解釋其如何運行。但機器學(xué)習(xí)算法就不一樣:通過從數(shù)據(jù)中推斷,它們自己會弄明白做事方法。掌握的數(shù)據(jù)越多,它們的工作就越順利。現(xiàn)在我們不用給計算機編程,它們自己給自己編程。
機器學(xué)習(xí)不僅存在于網(wǎng)絡(luò)空間,它還存在于你每天的生活中:從你醒來到入睡,每時每刻無所不在。
早上7點你的收音機鬧鐘響起,播放的是你之前從未聽過的歌曲,但你的確很喜歡這首歌。Pandora 電臺(可免費根據(jù)你的喜好播放歌曲)的優(yōu)勢在于,根據(jù)你聽的音樂,電臺掌握了你的品位,就像你自己的 radiojock 賬號一樣。這些歌曲本身可能借助機器學(xué)習(xí)來播放。接下來你吃早餐,閱讀早報。早報在幾個小時前印好,利用學(xué)習(xí)算法,印刷過程經(jīng)過仔細調(diào)整,以免報紙出現(xiàn)折痕。你房間的溫度剛剛好,電費明顯少了很多,因為你安裝了 Nest 智能溫控器。
你開車去上班,車持續(xù)調(diào)整燃油噴射和排氣再循環(huán),以達到最佳的油耗。你利用一個交通預(yù)報系統(tǒng)(Inrix)來縮短高峰時段上下班的時間,這當然能減緩你的壓力。上班時,機器學(xué)習(xí)幫你克服信息超載。你利用數(shù)據(jù)立方體來匯總大量數(shù)據(jù),從每個角度觀察該立方體,獲取最有用的信息。你要決定是采用布局方案A,還是采用布局方案 B,以便為網(wǎng)站帶來更多的業(yè)務(wù)。網(wǎng)絡(luò)學(xué)習(xí)系統(tǒng)會嘗試兩種布局方案,并給予反饋。你得對潛在供應(yīng)商的網(wǎng)站進行調(diào)查,但網(wǎng)站的語言是外語。沒關(guān)系,谷歌會自動為你翻譯。E–mail 會自動分類并歸入相應(yīng)的文件夾,只把最重要的信息留在郵箱里,非常方便。文字處理軟件幫你查找語法和拼寫錯誤。你為即將到來的行程查找到一個航班,但決定推遲購買機票,因為必應(yīng)旅行(Bing Travel)預(yù)測票價很快會下降。也許你沒有意識到以上這些,要不是機器學(xué)習(xí)幫助你,你可能要馬不停蹄地親自做很多事情。
你在休息時間查看自己的共同基金,大部分基金利用學(xué)習(xí)算法來選股,其中的某些基金完全由學(xué)習(xí)系統(tǒng)運作。午餐時間到了,你走在大街上,想找個吃飯的地方,這時候用手機上的 Yelp 點評應(yīng)用程序來幫助你。你的手機充滿了學(xué)習(xí)算法,它們努力工作,改正拼寫錯誤、理解口頭指令、減少傳輸誤差、識別條形碼,還有其他很多事情。手機甚至可以預(yù)測你接下來會做什么,然后依此給出建議。例如,當你吃完午餐后,它會小心翼翼地提示你,下午和外地來訪者的會面要推遲,因為她的航班延誤了。
下班時夜幕已降臨,你走向自己的車,機器學(xué)習(xí)會保證你的安全,監(jiān)測停車場監(jiān)控攝像頭的錄像,如果探測到可疑人的行動,它會提示不在場的安保人員。在回家路上,你在超市門口停車,走向超市貨物通道,通道借助學(xué)習(xí)算法進行布置:該擺放哪些貨物,通道末尾該展示哪些產(chǎn)品,洋蔥番茄辣醬是否該放在調(diào)味醬區(qū)域,或是放在墨西哥玉米片旁邊。你用信用卡付款。學(xué)習(xí)算法會向你發(fā)送信用卡支付提示,并在得到你的確認后完成支付。另外一個算法持續(xù)尋找可疑交易,如果它覺得你的卡號被盜,則會提示你。還有一種算法嘗試評估你對這張卡的滿意度,如果你是理想的客戶但對服務(wù)不太滿意,銀行會在你決定換卡之前,為你提供更貼心的服務(wù)。
你回到家,走到信箱旁,發(fā)現(xiàn)有朋友的一封來信,這是通過能閱讀手寫地址的學(xué)習(xí)算法派送的。當然也會有垃圾來信,由另外的學(xué)習(xí)算法進行選擇。你停留了一會兒,呼吸夜晚清新涼爽的空氣。你所在城市的犯罪率明顯下降了,因為警察開始使用統(tǒng)計算法來預(yù)測哪里的犯罪率最高,并在那里集中巡警力量。你和家人共享晚餐。市長出現(xiàn)在新聞里,你為他投票,因為選舉那天,學(xué)習(xí)算法確定你為“關(guān)鍵未投票選民”之后,他親自給你打了電話。吃完晚餐,你觀看球賽,兩支球隊都借助統(tǒng)計學(xué)習(xí)來挑選隊員。你也可能和孩子們在 Xbox 上玩游戲,Kinecta 學(xué)習(xí)算法確定你在哪里、在做什么。你在睡前吃藥,醫(yī)生通過學(xué)習(xí)算法的輔助來設(shè)定和檢測吃藥的最佳時間。醫(yī)生也可能利用機器學(xué)習(xí)來幫你診斷疾病,例如,分析X射線結(jié)果并弄明白一系列非正常癥狀。
機器學(xué)習(xí)參與了你人生的每個階段。如果你為了參加 SAT 大學(xué)入學(xué)考試(美國學(xué)術(shù)能力評估測試)而在網(wǎng)上學(xué)習(xí),某學(xué)習(xí)算法會給你的練習(xí)短文打分。如果你申請商學(xué)院,且最近要參加 GMAT(經(jīng)企管理研究生入學(xué)考試),其中的一個文章打分工具就是一個學(xué)習(xí)系統(tǒng)。可能當你求職時,某學(xué)習(xí)算法會從虛擬文件中挑選出你的簡歷,并告訴未來的雇主:這位是很不錯的人選,看看吧。最近公司給你加薪可能還多虧另外的學(xué)習(xí)算法。如果想買套房子,Zillow.com 網(wǎng)站會估算你看中的每套房的價值,接著房子就有了著落。之后申請住房貸款,某學(xué)習(xí)算法會研究你的申請,并建議是否可以通過申請。最重要的是,如果你使用在線約會服務(wù),機器學(xué)習(xí)甚至可能幫你找到人生摯愛。
社會在不斷變化,學(xué)習(xí)算法也是如此。機器學(xué)習(xí)正在重塑科學(xué)、技術(shù)、商業(yè)、政治以及戰(zhàn)爭。衛(wèi)星、DNA(脫氧核糖核酸)測序儀以及粒子加速器以前所未有的精細程度探索自然,同時,學(xué)習(xí)算法將龐大的數(shù)據(jù)轉(zhuǎn)變成新的科學(xué)知識。企業(yè)從未像現(xiàn)在這樣了解自己的用戶。在美國大選中,擁有最佳選舉模型的候選人奧巴馬最終戰(zhàn)勝了對手羅姆尼,獲得了競選勝利。無人駕駛汽車、輪船、飛機分別在陸地、海面、空中進行生產(chǎn)前測試。沒有人把你的喜好編入亞馬遜的推薦系統(tǒng),學(xué)習(xí)算法通過匯總你過去的購買經(jīng)歷就能確定你的喜好。谷歌的無人駕駛汽車通過自學(xué),懂得如何在公路上平穩(wěn)行駛,沒有哪個工程師會編寫算法,一步一步指導(dǎo)它該怎么走、如何從 A 地到達 B 地——這也沒必要,因為配有學(xué)習(xí)算法的汽車能通過觀察司機的操作來掌握開車技能。
機器學(xué)習(xí)是“太陽底下的新鮮事”:一種能夠構(gòu)建自我的技術(shù)。從遠古祖先學(xué)會打磨石頭開始,人類就一直在設(shè)計工具,無論這些工具是手工完成的,還是大批量生產(chǎn)的。學(xué)習(xí)算法本身也屬于工具,可以用它們來設(shè)計其他工具。“計算機毫無用處,”畢加索說,“它們只能給你提供答案。”計算機并沒有創(chuàng)造性,它們只能做你讓它們做的事。如果你告訴它們要做的事涉及創(chuàng)造力,那么就要用到機器學(xué)習(xí)。學(xué)習(xí)算法就像技藝精湛的工匠,它生產(chǎn)的每個產(chǎn)品都不一樣,而且專門根據(jù)顧客的需要精細定制。但是不像把石頭變成磚、把金子變成珠寶,學(xué)習(xí)算法是把數(shù)據(jù)變成算法。它們掌握的數(shù)據(jù)越多,算法也就越精準。
現(xiàn)代人希望讓世界來適應(yīng)自己,而不是改變自己來適應(yīng)世界。機器學(xué)習(xí)是100萬年傳奇中最新的篇章:有了它,不費吹灰之力,世界就能感知你想要的東西,并依此做出改變。就像身處魔法林,在你通過時,周圍的環(huán)境(今天虛擬,明天現(xiàn)實)會進行自我重組。你在樹木和灌木中選出的路線會變成一條路,迷路的地方還會出現(xiàn)指路標志。
這些看似有魔力的技術(shù)十分有用,因為機器學(xué)習(xí)的核心就是預(yù)測:預(yù)測我們想要什么,預(yù)測我們行為的結(jié)果,預(yù)測如何能實現(xiàn)我們的目標,預(yù)測世界將如何改變。從前,我們依賴巫醫(yī)和占卜師進行預(yù)測,但他們太不可靠;科學(xué)的預(yù)測就更值得信賴,但也僅限于我們能系統(tǒng)觀察和易于模仿的事物,大數(shù)據(jù)和機器學(xué)習(xí)卻大大超出這個范圍。我們可通過獨立的思維來預(yù)測一些常見的事情,包括接球和與人對話,但有些事情,即便我們很努力,也無法預(yù)測。可預(yù)測與難以預(yù)測之間的巨大鴻溝,可以交給機器學(xué)習(xí)來填補。
矛盾的是,盡管學(xué)習(xí)算法在自然和人類行為領(lǐng)域開辟了新天地,但它們?nèi)曰\罩在神秘之中。媒體每天都報道涉及機器學(xué)習(xí)的新聞:蘋果公司發(fā)布 Siri 個人助理,IBM 沃森(IBM 的超級計算機)在《危險邊緣》游戲中戰(zhàn)勝了人類,塔吉特(Target)能在未成年媽媽的父母發(fā)現(xiàn)之前通知她懷孕,美國國家安全局在尋找信息連接點……在這些新聞事件中,學(xué)習(xí)算法如何起作用仍不得而知。計算機“吞入”數(shù)以萬億的字節(jié),并神奇地產(chǎn)生新的觀點,關(guān)于大數(shù)據(jù)的書籍甚至也避談“這個過程到底發(fā)生了什么”。我們一般認為學(xué)習(xí)算法就是找到兩個事件之間的聯(lián)結(jié)點,例如,用谷歌搜索“感冒藥”和患感冒之間的聯(lián)系。然而,尋找聯(lián)結(jié)點與機器學(xué)習(xí)的關(guān)系就像是磚與房子的關(guān)系,房子是由磚組成的,但一堆磚頭肯定不能稱之為“房子”。
當一項新技術(shù)同機器學(xué)習(xí)一樣流行且具有革命性時,不弄明白其中的奧妙實在太可惜。模棱兩可會導(dǎo)致誤差和濫用。亞馬遜的算法能斷定當今世界人們在讀什么書,這一點比誰都強。美國國家安全局的算法能斷定你是否為潛在恐怖分子。氣候模型可以判定大氣中二氧化碳的安全水平。選股模型比我們當中的多數(shù)人更能推動經(jīng)濟發(fā)展。你無法控制自己理解不了的東西,這也是追求幸福的公民、專家或普通人需要了解機器學(xué)習(xí)的原因。
本書的第一個目標就是揭示機器學(xué)習(xí)的秘密。只有工程師和機修工有必要知道汽車發(fā)動機如何運作,但每位司機都必須明白轉(zhuǎn)動方向盤會改變汽車的方向、踩剎車會讓車停下。當今極少有人知道學(xué)習(xí)算法對應(yīng)的原理是什么,更不用說如何使用學(xué)習(xí)算法。心理學(xué)家丹 · 諾曼(Don Norman)創(chuàng)造了“概念模型”(conceptualmodel)這個新詞,代指為了有效利用某項技術(shù)而需粗略掌握的知識。本書就將介紹機器學(xué)習(xí)的概念模型。
并不是所有算法的工作原理都相同,這些差異會產(chǎn)生不同的結(jié)果,比如亞馬遜和網(wǎng)飛的推薦系統(tǒng)。假設(shè)這兩個系統(tǒng)試著根據(jù)“你喜歡的東西”來對你進行引導(dǎo),亞馬遜很有可能會把你帶到你之前常瀏覽的書籍類別,網(wǎng)飛則可能會把你帶到你不熟悉且似乎有點奇怪的區(qū)域,并引導(dǎo)你愛上那里。在本書當中,我們會看到諸如亞馬遜、網(wǎng)飛之類的公司使用的各式各樣的算法。與亞馬遜相比,網(wǎng)飛公司的算法對你的愛好理解得更深(盡管還是很有限),然而具有諷刺意味的是,這并非意味著亞馬遜也應(yīng)該利用這個算法。網(wǎng)飛的商業(yè)模式是依靠晦澀的電影、電視節(jié)目的長尾效應(yīng)來推動需求,這些電影和節(jié)目的成本很低。它一般不推薦大片,因為你的會員訂閱費可能有限。亞馬遜則沒有這樣的問題:盡管擅長利用長尾效應(yīng),但它同樣樂意把更昂貴的熱銷商品賣給你,這也會簡化其物流工作。對于那些奇怪的產(chǎn)品,如果是訂閱會員可免費享用的,我們可能會樂意去嘗試,而如果需要另外掏錢,我們?nèi)ミx擇它們的可能性就小得多。
每年都會出現(xiàn)上百種新的算法,但它們都是基于幾個相似的基本思路。為了明白機器學(xué)習(xí)如何改變世界,你有必要理解這些思路。本書就將對此進行介紹。學(xué)習(xí)算法并不是那么深奧難懂,除了運用在計算機上,對于我們來說很重要的問題都可以通過學(xué)習(xí)算法找到答案,比如:我們?nèi)绾螌W(xué)習(xí)?有沒有更好的方法?我們能預(yù)測什么?我們能信任所學(xué)的知識嗎?對這些問題,機器學(xué)習(xí)的各個學(xué)派有不同的答案。
機器學(xué)習(xí)主要有5個學(xué)派,我們會對每個學(xué)派分別介紹:符號學(xué)派將學(xué)習(xí)看作逆向演繹,并從哲學(xué)、心理學(xué)、邏輯學(xué)中尋求洞見;聯(lián)結(jié)學(xué)派對大腦進行逆向分析,靈感來源于神經(jīng)科學(xué)和物理學(xué);進化學(xué)派在計算機上模擬進化,并利用遺傳學(xué)和進化生物學(xué)知識;貝葉斯學(xué)派認為學(xué)習(xí)是一種概率推理形式,理論根基在于統(tǒng)計學(xué);類推學(xué)派通過對相似性判斷的外推來進行學(xué)習(xí),并受心理學(xué)和數(shù)學(xué)最優(yōu)化的影響。在構(gòu)建機器學(xué)習(xí)的目標推動下,我們將回顧過去100年的思想史,并以新的觀點來看待這段歷史。
機器學(xué)習(xí)的5個學(xué)派都有自己的主算法,利用這種萬能學(xué)習(xí)算法,原則上,你可以通過任何領(lǐng)域的數(shù)據(jù)來挖掘知識:符號學(xué)派的主算法是逆向演繹,聯(lián)結(jié)學(xué)派的主算法是反向傳播,進化學(xué)派的主算法是遺傳編程,貝葉斯學(xué)派的主算法是貝葉斯推理,類推學(xué)派的主算法是支持向量機。在實踐中,這些算法可能在有些工作中可用,而在其他工作中不可用。我們真正想要尋找的是能夠綜合這5種算法的終極算法。雖然有些人認為這難以實現(xiàn),但對機器學(xué)習(xí)領(lǐng)域的人來說,這個夢想賦予我們力量,促使我們夜以繼日地工作。
如果存在終極算法,那么它可以通過數(shù)據(jù)學(xué)得包括過去的、現(xiàn)在的以及未來的所有知識。創(chuàng)造終極算法將是科學(xué)歷史上最偉大的進步之一。它可以加速各類知識的進步,并以我們現(xiàn)在甚至無法想象的方式改變世界。終極算法與機器學(xué)習(xí)的關(guān)系就像標準模型和粒子物理學(xué)或中心法則與分子生物學(xué)的關(guān)系:該統(tǒng)一原理能理解人類當今知道的一切,并為未來數(shù)十年或者數(shù)百年的進步奠定基礎(chǔ)。今天我們面臨許多難題,比如制造家用機器人和治愈癌癥,終極算法就是解決這些難題的關(guān)鍵。
以癌癥為例。治愈癌癥十分困難,因為它往往是一種綜合疾病。腫瘤可由各種原因誘發(fā),且在轉(zhuǎn)移時會發(fā)生突變。殺死腫瘤細胞最可靠的方法是對其基因進行排序,弄明白哪些藥物可以抵抗癌細胞(這種方法不會對人造成傷害,患者必須提供基因和用藥史),甚至為你專門研制一種新藥。沒有哪個醫(yī)生能夠掌握該過程所需的所有知識。對于機器學(xué)習(xí)來說,這卻是再合適不過的任務(wù)。實際上,與亞馬遜和網(wǎng)飛每天所做的搜索工作相比,它的工作是為你找到正確的療法,而不是合適的書籍或者電影,而且它的工作更為復(fù)雜,也更具挑戰(zhàn)。遺憾的是,雖然當今的學(xué)習(xí)算法能以超出人類水平的精確度來診斷疾病,但治愈癌癥仍遠遠超出它們的理解范圍。如果我們可以找到終極算法,這將不再是難題。
因此,本書的第二個目標就是幫你創(chuàng)造終極算法。你可能會認為這需要高深的數(shù)學(xué)運算和嚴謹?shù)睦碚摲矫娴墓ぷ?#xff0c;正相反,它需要暫時放下數(shù)學(xué)奧秘,來觀看各種學(xué)習(xí)行為包羅萬象的模型。對外行人來說,他們就像從遠方趕到終極算法這片森林,從某些角度看,他們比專家更適合創(chuàng)造終極算法,因為專家對某些學(xué)科已經(jīng)過于投入。一旦我們有了概念性的解決方法,就能補充數(shù)學(xué)上的細節(jié),但這不是本書的目標和重點。我們之所以談?wù)撁總€學(xué)派,是為了收集它們的觀點,并找到其適用之處。請記住,沒有哪個盲人能了解整頭大象。我們會尤其關(guān)注哪個學(xué)派能對治療癌癥做出貢獻,也關(guān)注該學(xué)派的缺失。然后,我們會將所有觀點集中,一步步地變成解決方案——這個解決方案可能還不是終極算法,但已是我們能找到的最接近終極算法的方案。希望它能解放你的大腦,讓你大膽想象。當你閱讀本書時,如果覺得某些章節(jié)讀起來困難,可以隨意略讀甚至跳過它們。本書的概要才是重中之重,當明白所有學(xué)派的觀點之后,如果你重讀那些困難的章節(jié),收獲可能會比之前更多。
我研究機器學(xué)習(xí)已經(jīng)有20余年了。我對機器學(xué)習(xí)的興趣因一本書而起,大四時我在書店看到這本書名很奇怪的書——《人工智能》(Articial Intelligence)。那本書只有一個章節(jié)是關(guān)于機器學(xué)習(xí)的,但讀那個章節(jié)時,我立即確定,學(xué)習(xí)是實現(xiàn)人工智能的關(guān)鍵,而且當時技術(shù)水平如此原始,我也許能做點什么。所以我擱置了讀 MBA(工商管理碩士)的計劃,到加利福尼亞歐文分校攻讀博士。機器學(xué)習(xí)當時是一個小眾且鮮為人知的領(lǐng)域,研究人員寥寥無幾,但加利福尼亞大學(xué)卻擁有一個巨大的研究團隊。一些同學(xué)中途放棄了,因為他們看不到機器學(xué)習(xí)的未來,而我堅持了下來。對我來說,沒有什么能比教計算機學(xué)習(xí)更有吸引力的了:如果我們做到這一點,其他問題就會迎刃而解。5年后我畢業(yè)了,那時數(shù)據(jù)挖掘技術(shù)十分流行,我開始寫這本書。我的博士論文結(jié)合了符號學(xué)派和類推學(xué)派的觀點。過去10年,我一直在整合符號學(xué)派和貝葉斯學(xué)派的觀點,最近又在嘗試整合它們與聯(lián)結(jié)學(xué)派的觀點。是時候進行下一步研究,并嘗試綜合這5個范式了。
寫這本書時,我的腦海里浮現(xiàn)出各式各樣但又有相似之處的讀者。
圍繞大數(shù)據(jù)以及機器學(xué)習(xí)的討論充滿爭議,如果你對此感到好奇,且懷疑有比論文上看到的更為深層次的東西,那么這本書就是你進行革命的指南。
如果你的主要興趣是機器學(xué)習(xí)的商業(yè)用途,那么本書至少能通過6種方法幫助你:成為分析學(xué)中更精明的消費者;充分利用你的數(shù)據(jù)專家;減少許多數(shù)據(jù)挖掘項目的隱患;看看如果不買手寫編碼軟件,你能讓什么進行自動操作;降低信息系統(tǒng)的僵硬度;期待正朝你走來的新技術(shù)。我見過太多浪費大量時間和金錢去解決難題的人,他們使用了錯誤的學(xué)習(xí)算法,或者誤解了學(xué)習(xí)算法的含義。要避免這些慘敗,實際上,你只需要閱讀這本書。
如果你是普通人或者決策者,關(guān)注由大數(shù)據(jù)和機器學(xué)習(xí)引發(fā)的社會和政治問題,那么本書將為你提供該技術(shù)的入門知識:什么是機器學(xué)習(xí),機器學(xué)習(xí)能干什么、不能干什么。本書沒有讓你覺得乏味的復(fù)雜細節(jié)。從隱私問題到未來的工作,以及機器人化引起戰(zhàn)爭的道德觀,我們會看到真正的問題所在,以及如何正確思考。
如果你是科學(xué)家或者工程師,那么機器學(xué)習(xí)肯定是你不想錯過的有力武器。在大數(shù)據(jù)時代(即便是中型數(shù)據(jù)時代),陳舊的、靠得住的統(tǒng)計工具并不會讓你走得更遠。你需要的是機器學(xué)習(xí)的非線性技術(shù)來精確模仿多種現(xiàn)象,它會帶來全新的、科學(xué)的世界觀。今天,“范式轉(zhuǎn)移”被人們用得過于隨意,但我可以毫不夸張地說,本書要講的內(nèi)容就是和“范式轉(zhuǎn)移”相關(guān)。
如果你是機器學(xué)習(xí)專家,那么你可能對本書的大部分內(nèi)容已經(jīng)相當熟悉,但你仍會發(fā)現(xiàn)其中有許多新穎的看法、經(jīng)典的觀點,以及有用的例子和類比。很大程度上,我希望本書能提出與機器學(xué)習(xí)相關(guān)的、新的看法,甚至能讓你開始思考新的方向。我們身邊到處是容易達成的目標,我們理應(yīng)追尋這種目標,但我們也不應(yīng)忽略不遠處就有更大的目標(關(guān)于這一點,我希望你們能原諒我詩意地用“終極算法”來指通用型學(xué)習(xí)算法)。
如果你是學(xué)生,無論你多大,是考慮該選什么專業(yè)的高中生,還是決定該研究什么領(lǐng)域的本科生,或者是考慮轉(zhuǎn)行、經(jīng)驗豐富的專家,我希望本書能讓你對這個令人著迷的領(lǐng)域感興趣。當今世界極度缺乏機器學(xué)習(xí)專家,如果你決定加入這一行列,你不僅能得到令人激動的時刻和豐厚的物質(zhì)回報,還有服務(wù)社會的大好機會。如果你已經(jīng)在研究并學(xué)習(xí)主算法,我希望本書能幫你了解它的歷史。如果你在旅途中偶然發(fā)現(xiàn)本書,也值得你用心閱讀。
最后要強調(diào)一點,如果你渴望奇跡,那么機器學(xué)習(xí)對你來說就是一場精神盛宴。我誠摯地邀請你一同前往。
第1章 機器學(xué)習(xí)革命(上)
我們生活在算法的時代。一兩代人以前,提到“算法”這個詞,可能多數(shù)人會腦中一片空白。當今,文明社會的每個角落都存在算法,日常生活的每分每秒也都和算法有關(guān)。算法不僅存在于你的手機或筆記本電腦,還存在于你的汽車、房子、家電以及玩具當中。當人們進出銀行時,銀行系統(tǒng)就是由各種算法交織而成的龐大集合體。算法安排航班,也駕駛飛機。算法能經(jīng)營工廠、進行交易、運輸貨物、處理現(xiàn)金收益,還能保存記錄。如果所有算法都突然停止運轉(zhuǎn),那么就是人類的世界末日。
算法就是一系列指令,告訴計算機該做什么。計算機是由幾十億個微小開關(guān)(稱為晶體管)組成的,而算法能在一秒內(nèi)打開并關(guān)閉這些開關(guān)幾十億次。最簡單的算法是觸動開關(guān)。一個晶體管的狀態(tài)就是一個比特信息:如果開關(guān)打開,信息就是1;如果開關(guān)關(guān)閉,信息就是0。銀行的計算機的某個比特信息會顯示你的賬戶是否已透支。美國社會保障總署的計算機的某個比特信息表明你是活著還是已死亡。第二簡單的算法是:把兩個比特結(jié)合起來。克勞德 · 香農(nóng)以“信息論之父”而為人所知,他第一個意識到晶體管的活動就是在運算,因為晶體管開了又關(guān),是對其他晶體管的回應(yīng)(這是他在麻省理工學(xué)院的碩士論文——有史以來最有意義的碩士論文)。如果 A 晶體管只有在 B 和 C 晶體管都打開時才打開,那么這時它就是在做小型的邏輯運算。如果 A 晶體管在 B 和 C 晶體管其中一個打開時才打開,就是另外一種小型邏輯運算。如果 A 晶體管在 B 晶體管任何關(guān)閉的時候打開,或者反過來,這又是第三種運算。信不信由你,所有算法,無論多復(fù)雜,都能分解為這三種邏輯運算:且,或,非。利用不同的符號來代替“且”“或”“非”運算,簡單的算法就可以用圖表來表示。例如,如果發(fā)燒可由感冒或者瘧疾引起,那么你應(yīng)該用泰諾來治療發(fā)燒和頭疼,可以用圖1–1表示。
圖1–1
通過結(jié)合許多這樣的邏輯運算,我們可以進行極其復(fù)雜的邏輯推理。人們往往認為計算機只和數(shù)字有關(guān),其實并非如此,它完全關(guān)乎邏輯。數(shù)字和算術(shù)都是由邏輯構(gòu)成的,而計算機的所有其他部分也是如此。想把兩個數(shù)相加?可以由晶體管的組合體來完成。想贏得《危險邊緣》智力比賽?也可以由晶體管的組合體來完成(當然,這個組合體龐大得多)。
即便如此,為了做不同的事而制造新的計算機代價過于昂貴。當然,現(xiàn)代計算機是各種晶體管的大集合,能做許多不同的事,這取決于哪些晶體管被激活。米開朗琪羅說過,他所做的一切,就是從大理石石塊中看出雕像,然后將多余的石頭刻掉,直到雕像的形狀顯現(xiàn)出來。同樣,算法排除計算機中多余的晶體管,直到出現(xiàn)想要的功能,無論是客機的自動駕駛儀,還是皮克斯的新電影,原理都是這樣。
一種算法不僅是簡單的一套指令,這些指令必須精確且不能模糊,這樣計算機才能夠執(zhí)行。例如,食譜并不算一種算法,因為食譜沒有明確給出做事的順序,或者具體每一步是怎樣的。一勺白糖到底是幾克?每個嘗試新食譜的人都知道,跟著食譜做,可能會做出很美味的食物,也可能會做得一塌糊涂。相比之下,算法總能得出同樣的結(jié)果。即便食譜明確指出需要半盎司白糖,計算機也不知道如何執(zhí)行,因為計算機不知道什么是白糖、什么是盎司。如果我們想對廚用機器人編程,讓它來做蛋糕,我們要通過視頻教它如何辨認白糖、如何拿起勺子等(我們現(xiàn)在仍在努力)。計算機必須知道如何執(zhí)行算法,直到打開及關(guān)閉指定的晶體管。因此,食譜離算法還很遠。
另一方面,下面是玩井字棋的算法:
如果你或?qū)κ钟袃闪_B子,占據(jù)剩下的角落。
否則,如果兩邊有兩個連子的走法,就那樣走。
否則,如果正中央是空的,走正中央。
否則,如果你的對手走到角落,占據(jù)他的對角。
否則,如果有空白的角落,占據(jù)它。
否則,占據(jù)任意空白的角落。
這個算法有很大的優(yōu)點,那就是它絕對不會輸。當然,它仍忽略了許多細節(jié),比如在計算機的記憶中,棋盤如何表示,而棋的走法又如何改變這種表示方法。例如,每個角落我們有兩個比特,如果中間是空的,值就是00;如果有一個圈,值就變成01;如果有一個叉,值就變成10。即便如此,這也足夠精確、清晰,能讓有能力的編程員來填補被忽略的空白。它還有一個好處,就是不用我們自己指定算法,細到單個晶體管。在構(gòu)建數(shù)據(jù)存儲塊時,我們可以使用之前存在的算法,而且有很多這樣的算法供選擇。
算法是一套嚴格的標準。人們常說,你沒法真正了解某樣?xùn)|西,直到你能用一種算法來將其表達出來(理查德 · 費曼曾說,“如果我無法創(chuàng)造某樣?xùn)|西,那么也就無法理解它”)。方程式對物理學(xué)家和工程師來說就是謀生工具,而這也僅僅是一種特殊算法。例如,牛頓第二定律,可以說是有史以來最重要的等式,告訴你用物體的質(zhì)量乘以其加速度,可以算出作用在物體上的力。該定律還隱含地告訴你,加速度等于作用力除以質(zhì)量,要弄明白這一點,只需一個運算步驟。在科學(xué)的任何領(lǐng)域,如果某個理論無法用算法表示,那么它就不是很嚴謹(更別提你無法用計算機來解決這個問題,因為你能讓計算機替你做的事實在太有限)。科學(xué)家提出理論,工程師制造設(shè)備,計算機科學(xué)家提出算法,這和理論及設(shè)備都有關(guān)。
設(shè)計算法并沒有那么簡單。這個過程充滿陷阱,什么事都不能想當然。如果你的一些構(gòu)建已經(jīng)出錯,就得找其他方法。設(shè)計算法最重要的一點就是,你得用一種計算機能理解的語言來將算法記錄下來,比如 Java 或者 Python(從這個角度看,就是一個程序)。接下來,你得對其進行糾錯:找出每個誤差并修正,直到計算機能夠運行程序,而不至于搞砸。一旦你有了能完成你心愿的程序,就輕松多了。計算機會以飛快的速度,按我們的要求辦事,而且毫無怨言。世界上的每個人都能享用你的創(chuàng)作成果。如果你愿意,這個成果可以一文不收;當然,如果你解決的問題足夠有意義,這個成果也可以讓你成為億萬富翁。程序員(創(chuàng)造算法并將其編碼的人)是一個“小神靈”,能任意創(chuàng)造不同的世界。甚至你也可以說《圣經(jīng) · 創(chuàng)世記》里的神也是“程序員”:語言(而不是統(tǒng)治權(quán))才是他創(chuàng)造世界的工具。語言構(gòu)成了這個世界。當今時代,坐在沙發(fā)上利用筆記本電腦,你就可以成為一個“神”。你完全可以想象一個世界,并實現(xiàn)它。
有朝一日,計算機科學(xué)家會互相依賴各自的成果,然后為新事物創(chuàng)造算法。這些算法會與其他算法相結(jié)合,目的是利用其他算法的成果,反過來產(chǎn)生能服務(wù)更多算法的成果。每一秒鐘,數(shù)十億計算機里的數(shù)十億晶體管會打開關(guān)閉數(shù)十億次。算法形成新型生態(tài)系統(tǒng),它將生生不息,具有無可比擬的生命多樣性。
然而,不可避免地,在這個“伊甸園”里也會有狡猾的人存在,人們稱之為“復(fù)雜性怪獸”。和九頭蛇一樣,這個復(fù)雜性怪獸有很多頭,其中一個就是空間復(fù)雜性,即為了儲存在計算機內(nèi)存中,一個算法所需信息的比特數(shù)量。如果計算機無法提供該算法所需的內(nèi)存,那么這個算法就沒用,必須忽略。接著是邪惡的同類——時間復(fù)雜性:該算法運行多長時間,也就是說,在產(chǎn)生想要的結(jié)果之前,算法利用及重新利用晶體管的步驟有多少。如果算法運行時間太久,我們等不了,那么這個算法也沒用。復(fù)雜怪獸最恐怖的一面就是人類的復(fù)雜性。當算法變得很復(fù)雜以致人類大腦已無法理解,當算法不同部分的交互過多且過于深入時,誤差就會悄然潛入。我們找不到這些誤差,也就無法糾正它們,算法也就不會做我們想做的事。即便我們讓它運行起來,它也會停下來。對使用它的人來說,它沒必要那么復(fù)雜,而且它和其他算法也合作得不好,這為日后埋下隱患。
每位計算機科學(xué)家每天都在和“復(fù)雜性怪獸”做斗爭。如果科學(xué)家輸了這場斗爭,復(fù)雜性就會滲入我們的生活。你可能已經(jīng)注意到,很多這樣的斗爭科學(xué)家已經(jīng)輸了。即便如此,我們也會繼續(xù)構(gòu)建我們的算法之塔,并迎接越來越大的挑戰(zhàn)。每一代新的算法都要在之前的基礎(chǔ)上構(gòu)建,除了這代算法的復(fù)雜性,它們還面臨之前算法的復(fù)雜性。塔會變得越來越高,會覆蓋整個世界,但它也會變得越來越脆弱,像一座紙片做的房子,隨時都會倒塌。算法里的微小誤差可能導(dǎo)致價值10億美元的火箭爆炸,或者可能導(dǎo)致停電,造成數(shù)百萬美元的損失。算法以意想不到的方式進行交互,股票市場就會崩潰。
如果程序員是“小神”,復(fù)雜性怪獸就是魔鬼。慢慢地,魔鬼會贏得戰(zhàn)爭。
總得有個更好的方法來與魔鬼做斗爭。
學(xué)習(xí)算法入門
每個算法都會有輸入和輸出:數(shù)據(jù)輸入計算機,算法會利用數(shù)據(jù)完成接下來的事,然后結(jié)果就出來了。機器學(xué)習(xí)則顛倒了這個順序:輸入數(shù)據(jù)和想要的結(jié)果,輸出的則是算法,即把數(shù)據(jù)轉(zhuǎn)換成結(jié)果的算法。學(xué)習(xí)算法能夠制作其他算法。通過機器學(xué)習(xí),計算機就會自己編寫程序,就用不到我們了。
哇!
計算機會自己編寫程序。現(xiàn)在看來這是一個強大的想法,甚至可能有點嚇人。如果計算機開始自己編程,那么我們將如何控制它們?我們會看到,人類可以很好地控制它們。可能會有人當即反對,這聽起來太美好了,不像真的。當然,編寫算法需要智力、創(chuàng)造力、問題解決能力,這些都是計算機沒有的。如何把機器學(xué)習(xí)與魔法區(qū)分開來?的確,今天為止,人們能編寫許多計算機無法學(xué)習(xí)的程序。可令人更為驚訝的是,計算機卻能學(xué)習(xí)人們無法編寫出來的程序。我們會開車、會辨認字跡,但這些技能都是潛意識發(fā)揮出來的,無法向計算機解釋這些事情是如何完成的。但是,如果我們把關(guān)于這些事情的足夠多的例子交給學(xué)習(xí)算法,該算法會很樂意弄明白怎樣獨立完成這些事情,這時我們就可以放手讓算法去做了。郵局正是通過這種方法來識別郵政編碼,自動駕駛汽車也是這樣才得以實現(xiàn)在路上跑。
解釋機器學(xué)習(xí)的力量的最好方法,也許就是將其與其他低技術(shù)含量的活動進行類比。工業(yè)社會,商品由工廠制造,這也意味著工程師必須弄明白商品如何通過零件組裝起來、這些零件如何生產(chǎn)等,細到生產(chǎn)原料。這是一項大工程。計算機是人類發(fā)明的最復(fù)雜的產(chǎn)品,計算機設(shè)計、工廠生產(chǎn)、程序運行都涉及大量的工作。還有另外一種方法能讓我們得到一些想要的東西:讓自然規(guī)律去塑造它們。在農(nóng)業(yè)當中,我們播種,確保種子有足夠的水分和營養(yǎng),然后收割成熟的作物。為什么技術(shù)不能這樣?完全可以,而這也是機器學(xué)習(xí)的承諾。學(xué)習(xí)算法是種子,數(shù)據(jù)是土壤,被掌握的程序是成熟的作物。機器學(xué)習(xí)專家就像農(nóng)民,播下種子,灌溉,施肥,留意作物的生長狀況,事事親力親為,而不是退居一旁。
一旦我們這樣看待機器學(xué)習(xí),隨即也會發(fā)生兩件事:
第一,我們掌握的數(shù)據(jù)越多,我們能學(xué)的也越多。沒有數(shù)據(jù)?什么也學(xué)不到。大數(shù)據(jù)?很多東西可以學(xué)習(xí)。這也是機器學(xué)習(xí)無處不在的原因,因為有飛速增長的數(shù)據(jù)。如果你在超市購買機器學(xué)習(xí),其包裝上可能會寫著“只需添加數(shù)據(jù)”。
第二,機器學(xué)習(xí)是一把劍,利用這把劍可以殺死復(fù)雜性怪獸。只要有足夠的數(shù)據(jù),一段只有幾百行代碼的程序可以輕易生成擁有上百萬行代碼的程序,而且它可以為解決不同問題不停產(chǎn)生不同的程序。這可以顯著降低程序員工作的復(fù)雜度。當然,就像對付九頭蛇,我們砍掉它的頭,會立即長出新頭,但長出的頭會變小,而且頭的生長也需要時間,因此我們?nèi)杂锌赡軇俪觥?/p>
我們可以把機器學(xué)習(xí)當作逆運算,正如開平方是平方的逆運算、整合是分化的逆運算。正如我們會問“什么數(shù)的平方是16”,或者“導(dǎo)數(shù)為 x+1 的函數(shù)是什么”,我們也會問“什么算法會得出該結(jié)果”。我們很快會看到,怎樣將這個觀點運用到具體的學(xué)習(xí)算法中。
有些學(xué)習(xí)算法學(xué)習(xí)知識,有的則學(xué)習(xí)技能。“所有人都會死”是知識,騎單車是技能。在機器學(xué)習(xí)中,知識往往以統(tǒng)計模型的形式出現(xiàn),因為多數(shù)知識都是可以統(tǒng)計的:所有人都會死,但只有4%是美國人。技能往往以程序的形式出現(xiàn):如果馬路向左彎曲,那么向左轉(zhuǎn)動車頭;如果一只鹿跳到你面前,那么立刻剎車(很遺憾,在寫這本書時,谷歌的自動駕駛汽車仍會把被風(fēng)吹起的塑料袋和鹿弄混)。通常,這些程序都很簡單,復(fù)雜的是它們的核心知識。如果你能判斷哪些郵件是垃圾郵件,那么你也就能判斷該刪除哪些郵件。如果你能在象棋游戲中判斷這盤棋自己的優(yōu)勢在哪里,那么你也就懂得該怎么走(能讓你處于最有利地位的一步)。
機器學(xué)習(xí)有許多不同的形式,也會涉及許多不同的名字:模式識別、統(tǒng)計建模、數(shù)據(jù)挖掘、知識發(fā)現(xiàn)、預(yù)測分析、數(shù)據(jù)科學(xué)、適應(yīng)系統(tǒng)、自組織系統(tǒng)等。這些概念供不同群體使用,擁有不同的聯(lián)系。有些有很長的半衰期,有些則較短。在本書中,我用“機器學(xué)習(xí)”一詞泛指所有這些概念。
機器學(xué)習(xí)有時會和人工智能(AI)混淆。嚴格來講,機器學(xué)習(xí)是人工智能的子域,但機器學(xué)習(xí)發(fā)展得如此壯大且成功,現(xiàn)已超越以前它引以為傲的母領(lǐng)域。人工智能的目標是教會計算機完成現(xiàn)在人類做得更好的事,而機器學(xué)習(xí)可以說就是其中最重要的事:沒有學(xué)習(xí),計算機就永遠無法跟上人類的步伐;有了學(xué)習(xí),一切都與時俱進。
在信息處理這個生態(tài)系統(tǒng)中,學(xué)習(xí)算法是頂級掠食者。數(shù)據(jù)庫、網(wǎng)絡(luò)爬蟲、索引器等相當于食草動物,耐心地對無限領(lǐng)域中的數(shù)據(jù)進行蠶食。統(tǒng)計算法、線上分析處理等則相當于食肉動物。食草動物有必要存在,因為沒有它們,其他動物無法存活,但頂級掠食者有更為刺激的生活。數(shù)據(jù)爬蟲就像一頭牛,網(wǎng)頁相當于它的草原,每個網(wǎng)頁就是一根草。當網(wǎng)絡(luò)爬蟲進行破壞行動時,網(wǎng)站的副本就會保存在其硬盤當中。索引器接著做一個頁面的列表,每個詞都會出現(xiàn)在頁面當中,這很像一本書后的索引。數(shù)據(jù)庫就像大象,又大又重,永遠不會被忽略。在這些動物當中,耐心的野獸飛快運轉(zhuǎn)統(tǒng)計和分析算法,壓縮并進行選擇,將數(shù)據(jù)變?yōu)樾畔ⅰW(xué)習(xí)算法將這些信息吞下、消化,然后將其變成知識。
機器學(xué)習(xí)專家在計算機科學(xué)家中就是一種精英式的“神職”。許多計算機科學(xué)家,尤其是更老的那一代,并不如他們想的那樣能很好地理解機器學(xué)習(xí)。這是因為,計算機科學(xué)通常需要的是準確思維,但機器學(xué)習(xí)需要的是統(tǒng)計思維。例如,如果有條規(guī)定是“垃圾郵件標記的正確率是99%”,這并不意味存在缺陷,而可能意味這是你的最好水平,已經(jīng)很好用了。這種思維上的差別很大程度上也解釋了為什么微軟能趕上網(wǎng)景公司,但想趕上谷歌卻困難得多。說到底,瀏覽器只是一個標準的軟件,而搜索引擎則需要不同的思維模式。
之所以說機器學(xué)習(xí)研究者是超級計算機迷的另外一個原因,就是當今世界急需他們,但他們寥寥無幾。按照計算機科學(xué)嚴格的標準,這樣的人數(shù)量就更少了。蒂姆 · 奧萊利認為,“數(shù)據(jù)科學(xué)家”是硅谷最熱門的職業(yè)。根據(jù)麥肯錫全球研究院估計,截至2018年,僅美國就需要再培養(yǎng)14萬~19萬機器學(xué)習(xí)專家才夠用,另外還需要150萬有數(shù)據(jù)頭腦的經(jīng)理。機器學(xué)習(xí)的應(yīng)用爆發(fā)得如此突然,連教育都無法跟上其步伐,同時,人才奇缺也是因為這門學(xué)科在人們看來很難而令人望而生畏。教科書很可能會讓你感到數(shù)學(xué)很難,然而,這個困難表面看起來很大,其實并不是。機器學(xué)習(xí)所有的重要觀點可以不用通過數(shù)學(xué)表示出來。當你讀這本書時,甚至可能會發(fā)現(xiàn),你發(fā)明了自己的學(xué)習(xí)算法,而且看不到一個方程式的影子。
工業(yè)革命使手工業(yè)自動化,信息革命解放了腦力勞動,而機器學(xué)習(xí)則使自動化本身自動化。沒有機器學(xué)習(xí),程序員會成為阻撓進步的障礙。有了機器學(xué)習(xí),進步的步伐就會加快。如果你是一個懶惰又不那么聰明的計算機科學(xué)家,機器學(xué)習(xí)就是理想的職業(yè),因為學(xué)習(xí)算法會完成所有事情,功勞卻是你的。從另一方面講,學(xué)習(xí)算法會讓我們失業(yè),這也只是我們應(yīng)受的懲罰。
將自動化帶入新的高度,機器學(xué)習(xí)革命會帶來廣泛的經(jīng)濟及社會變革,正如互聯(lián)網(wǎng)、個人計算機、汽車以及蒸汽機在當時對社會和經(jīng)濟的影響那樣。這些變革已經(jīng)明顯存在的領(lǐng)域就是商業(yè)。
第1章 機器學(xué)習(xí)革命(中)
為何商業(yè)擁護機器學(xué)習(xí)
為什么谷歌比雅虎要有價值得多?它們都是用戶登錄最多的網(wǎng)站,都靠在網(wǎng)頁上登廣告賺錢。它們都用拍賣的方式銷售廣告,用機器學(xué)習(xí)來預(yù)測用戶點擊某廣告的概率(概率越大,廣告價值越大),但谷歌的機器學(xué)習(xí)就比雅虎要好很多。這不是它們市場價值差異巨大的唯一原因,卻是主要原因。如果沒有達到預(yù)測的點擊量,對廣告商來說就是浪費機會,對網(wǎng)站來說是收益損失。谷歌每年的收入是500億美元,預(yù)測點擊率每上升1%,就可能意味著每年為公司帶來額外5億美元的收入。難怪谷歌是機器學(xué)習(xí)的鐵桿粉絲,雅虎和其他公司也在奮起直追。
網(wǎng)絡(luò)營銷僅僅是巨大變革中的一種表現(xiàn)形式。無論什么市場,生產(chǎn)商和用戶在交易發(fā)生之前,都需要進行聯(lián)系。在互聯(lián)網(wǎng)出現(xiàn)之前,交易的主要障礙就是實地交易。你只能從當?shù)氐臅曩徺I書籍,而當?shù)貢甑臅芸臻g又有限。但當你可以隨時把所有書下載到電子閱讀器時,問題就變成了可供選擇的書太多。你怎么瀏覽書店里上百萬不同名字的書?同樣的問題也出現(xiàn)在其他信息產(chǎn)品當中:視頻、音樂、新聞、推特文章、博客、網(wǎng)頁。這個問題還會出現(xiàn)在能夠遠程購買的產(chǎn)品和服務(wù)當中:鞋子、鮮花、小配件、酒店房間、輔導(dǎo)、投資。人們在找工作或挑日子時,也會遇到選擇過多的問題。你們?nèi)绾握业奖舜?這是信息時代的定義問題,而機器學(xué)習(xí)就是問題解決方案的主要部分。
當公司不斷發(fā)展壯大后,它會經(jīng)歷三個階段:
第一階段的所有事都由人工完成——夫妻店的店主親自了解其顧客,他們依照顧客類型訂購、展示、推薦產(chǎn)品。這很不錯,但規(guī)模不大。
第二階段是最辛苦的時期,公司變得越來越大,需要用到計算機。公司招來程序員、顧問,買來數(shù)據(jù)庫管理器,程序員編寫了成百萬行的代碼來使公司所有能自動化的功能自動化。更多的人享受到服務(wù),但也有麻煩:決定是在粗略的人口統(tǒng)計類別的基礎(chǔ)上做出來的,計算機程序也過于死板,無法與人類無限的才能相匹配。
經(jīng)過一段時間進入第三階段,沒有足夠的程序員和顧問滿足公司的需要,因此公司不可避免地向機器學(xué)習(xí)尋求幫助。亞馬遜無法通過計算機程序?qū)⑺杏脩舻南埠檬炀毜剡M行編碼,臉書也不知道如何編寫這樣的程序,能選擇最好的更新內(nèi)容展示給每位用戶。沃爾瑪每天銷售百萬件商品,還要做數(shù)十億個選擇。如果沃爾瑪?shù)某绦騿T努力編寫出能夠做所有選擇的程序,這些選擇就不用人來做了。相反,這些公司所做的工作是,它們在收集到如山的數(shù)據(jù)后,讓學(xué)習(xí)算法盡情學(xué)習(xí),然后預(yù)測顧客想要什么產(chǎn)品。
學(xué)習(xí)算法就是“媒人”:它們讓生產(chǎn)商和顧客找到對方,克服信息過載。如果這些算法足夠智能,你就能取得兩全其美的結(jié)果:從宏觀來講,選擇廣、成本低;從微觀來講,能夠了解顧客的個性化需求。學(xué)習(xí)算法并不是完美的,決定的最后一步通常還得由人來做,但學(xué)習(xí)算法很智能,為人們減少了需要做的選擇。
回顧過去,我們看到,從計算機到互聯(lián)網(wǎng)再到機器學(xué)習(xí)的進步是必然的:計算機使互聯(lián)網(wǎng)成為可能,這個過程產(chǎn)生大量數(shù)據(jù)以及無限選擇這個問題。單單互聯(lián)網(wǎng)還不足以把“一個尺寸滿足所有”的需求轉(zhuǎn)向追求無限多樣化的長尾效應(yīng)。網(wǎng)飛公司的庫存里可能有10萬種不同名字的 DVD(數(shù)字多功能光盤),但如果顧客不懂得如何找到自己喜歡的,他們就會默認選擇最流行的 DVD。只有網(wǎng)飛公司有了學(xué)習(xí)算法之后,才能幫助它了解顧客的喜好,并推薦 DVD,長尾效應(yīng)也才得以真正實現(xiàn)。
一旦必然的事情發(fā)生,機器學(xué)習(xí)成為媒介,那么其力量也開始慢慢積聚。谷歌的算法很大程度上決定你會找到什么信息,亞馬遜決定你會買到什么產(chǎn)品,全球最大的婚戀網(wǎng)站默契網(wǎng)(Match.com)決定你的約會對象是誰。最好的選擇權(quán)仍在你手里——從算法給你展示的所有選項中挑選,但99.9%的選擇由算法做出。當下,一家公司的成敗取決于學(xué)習(xí)算法對其產(chǎn)品的喜愛程度,而整個經(jīng)濟體的成功——是否每個人都能得到自己需要的物美價廉的產(chǎn)品,則取決于學(xué)習(xí)算法的好用程度。
公司確保學(xué)習(xí)算法喜愛其產(chǎn)品的最佳方法就是,讓公司自己運行算法。誰有最佳算法、數(shù)據(jù)最多,誰就能贏。新型網(wǎng)絡(luò)效應(yīng)占據(jù)上風(fēng):誰有最多的用戶,誰就能積累最多的數(shù)據(jù),誰有最多的數(shù)據(jù),誰就能學(xué)到最好的模型,誰學(xué)到最好的模型,誰就能吸引最多的用戶,這是一種良性循環(huán)(如果你在競爭,就會變成惡性循環(huán))。把搜索引擎從谷歌轉(zhuǎn)換到必應(yīng),可能會比把應(yīng)用系統(tǒng)從 Windows 切換到 Mac 要簡單,但在實際操作中,你不會這么做,因為谷歌擁有領(lǐng)先優(yōu)勢及更大的市場份額,比必應(yīng)更懂得你想要什么,雖然必應(yīng)的技術(shù)也不錯。可惜的是,必應(yīng)剛進入搜索行業(yè),沒有什么數(shù)據(jù)資源,而谷歌卻擁有十余年的機器學(xué)習(xí)經(jīng)驗。
你可能會認為,過一段時間,更多的數(shù)據(jù)結(jié)果意味著更多的重復(fù),但數(shù)據(jù)的飽和點還未出現(xiàn),長尾效應(yīng)持續(xù)起作用。如果你看亞馬遜或網(wǎng)飛公司為你提供的推薦產(chǎn)品,很明顯,這些推薦項仍很粗略,而谷歌的搜索結(jié)果也有很大的優(yōu)化空間。每個產(chǎn)品的特性、網(wǎng)頁的每個角落都有很大的潛力,能通過機器學(xué)習(xí)得到改善。網(wǎng)頁底部的鏈接應(yīng)該是紅色的還是藍色的?兩個顏色都試試,看看哪個顏色的點擊率會更高。還有,最好讓機器學(xué)習(xí)持續(xù)運行,不斷調(diào)整網(wǎng)頁的所有方面。
所有擁有眾多選擇和大量數(shù)據(jù)的市場都會發(fā)生這樣的動態(tài)循環(huán)。比賽正在進行,誰學(xué)得最快,誰就贏了。隨著越來越好地了解用戶需求,這個比賽不會停止:企業(yè)可以將機器學(xué)習(xí)應(yīng)用到企業(yè)運作的每個方面,只要有足夠的數(shù)據(jù),只要數(shù)據(jù)能夠從計算機、通信設(shè)備以及更廉價、更普適的傳感器源源不斷地輸出。“數(shù)據(jù)是新型石油”是目前的流行說法,既然是石油,提煉石油就是一筆大生意。和其他公司一樣,IBM 已制定經(jīng)濟增長戰(zhàn)略,為企業(yè)提供分析服務(wù)。業(yè)界將數(shù)據(jù)看作戰(zhàn)略資產(chǎn):我有什么數(shù)據(jù),而競爭對手卻沒有?我要怎么利用這些數(shù)據(jù)?競爭對手有什么數(shù)據(jù),而我卻沒有?
同樣的道理,沒有數(shù)據(jù)庫的銀行無法和有數(shù)據(jù)庫的銀行競爭,沒有機器學(xué)習(xí)的企業(yè)也無法跟上使用機器學(xué)習(xí)的企業(yè)。雖然第一家公司的專家寫了上千條規(guī)則,預(yù)測用戶的喜好,但是第二家公司的算法卻能學(xué)習(xí)數(shù)十億條規(guī)則,一整套規(guī)則都可用于每位用戶。這就相當于長矛對機關(guān)槍。機器學(xué)習(xí)是很棒的新技術(shù),但這并不是商業(yè)界擁護它的原因——人們之所以擁護它,是因為別無選擇。
給科學(xué)方法增壓
機器學(xué)習(xí)是“打了類固醇”的科學(xué)方法,也遵循同樣的過程:產(chǎn)生假設(shè)、驗證、放棄或完善。科學(xué)家可能會花費畢生精力來提出或驗證幾百個假設(shè),而機器學(xué)習(xí)系統(tǒng)卻能在一秒鐘內(nèi)做完這些事。機器學(xué)習(xí)使科學(xué)的發(fā)現(xiàn)過程自動化。因此,并不奇怪,這既是商業(yè)領(lǐng)域的革命,也是科學(xué)領(lǐng)域的革命。
為了取得進步,科學(xué)的每個領(lǐng)域都需要足夠的數(shù)據(jù),以與其研究現(xiàn)象的復(fù)雜性相對應(yīng)。這是物理成為第一個騰飛學(xué)科的原因:第谷·布拉赫對星球位置的記錄,以及伽利略對鐘擺擺動、斜面的觀察,已經(jīng)足以推導(dǎo)出牛頓定律。這也是為什么雖然分子生物學(xué)這個學(xué)科比神經(jīng)科學(xué)年輕,但是已超越神經(jīng)科學(xué):DNA(脫氧核糖核酸)微陣列以及高通量測序技術(shù)提供了大量的數(shù)據(jù),而神經(jīng)科學(xué)家對此只能可望而不可即。這也是為什么社會科學(xué)研究是一場艱苦卓絕的斗爭:你擁有的只是100人的樣本和每個人的十幾個測量值,你能模擬的也只是某個規(guī)模很有限的現(xiàn)象,甚至這個現(xiàn)象可能不是孤立存在的,還受到其他現(xiàn)象的影響,這就意味你仍然沒有徹底了解它。
有個好消息,那就是之前缺乏數(shù)據(jù)的學(xué)科現(xiàn)在擁有很多數(shù)據(jù)。用不著讓50名睡眼惺忪的本科生到實驗室完成任務(wù)并付給他們報酬,心理學(xué)家通過在亞馬遜“土耳其機器人”上發(fā)布實驗任務(wù),就可以找到滿足他們數(shù)量要求的實驗對象(這個網(wǎng)站對更多樣化的樣本也有幫助)。雖然回想起來越來越困難,但也只是10年前,研究社交網(wǎng)絡(luò)的社會學(xué)家哀嘆說,他們無法得到成員超過幾百人的社交網(wǎng)絡(luò)。現(xiàn)在有了臉書,有超過10億用戶。大部分用戶會發(fā)布有關(guān)他們生活的很多細節(jié),就像地球社會生活的實時直播。在神經(jīng)科學(xué)領(lǐng)域,神經(jīng)連接組學(xué)和功能性磁共振成像讓人們對大腦有了十分詳細的了解。在分子生物學(xué)領(lǐng)域,基因和蛋白質(zhì)的數(shù)據(jù)庫數(shù)量以指數(shù)級速度增長。甚至更為“年長”的學(xué)科,如物理學(xué)和解剖學(xué)也在不斷進步,因為粒子加速器和數(shù)字巡天領(lǐng)域的數(shù)據(jù)在源源不斷輸出。
如果你不將大數(shù)據(jù)變成知識,它將毫無用處,可是世界上沒有那么多科學(xué)家來完成這件事。埃德溫 · 哈勃通過鉆研照相底片發(fā)現(xiàn)新的星系,但史隆數(shù)字巡天計劃中,多達5億的天體肯定不是這樣被辨認出來的。這就像在沙灘上用手來數(shù)沙粒的數(shù)目。你可以記錄規(guī)則,把星系從星星及干擾物(如鳥、飛機、超人)區(qū)分開來,但得出的星系并不是那么準確。相比之下,天體圖像目錄編輯和分析工具(SKICAT)項目使用了學(xué)習(xí)算法。底片包括標記了正確類別的天體,從這些底片出發(fā),學(xué)習(xí)算法可以明白每個分類的特點,并將其應(yīng)用到?jīng)]有標記的底片當中。甚至更理想的是,學(xué)習(xí)算法能夠?qū)⒛切θ祟悂碚f難以標記的天體進行分類,這些天體正是該項調(diào)查計劃的主要內(nèi)容。
有了大數(shù)據(jù)和機器學(xué)習(xí),你就能弄明白比之前復(fù)雜很多的現(xiàn)象。在多數(shù)領(lǐng)域,科學(xué)家一般只使用種類很有限的模型,例如線性回歸模型,在這個模型當中,你用來適應(yīng)數(shù)據(jù)的曲線總是一條直線。遺憾的是,世界上的大多數(shù)現(xiàn)象都是非線性的(或者說這也是一件幸事,如果是線性的,生活會變得非常乏味。實際上,那樣就不會存在生命了)。機器學(xué)習(xí)打開了廣闊、全新的非線性模型世界。這就好比在只有幾縷月光照射的房間,打開了明亮的燈。
在生物學(xué)領(lǐng)域,學(xué)習(xí)算法的研究成果包括:DNA 分子中基因的位置;在蛋白質(zhì)合成前,多余的核糖核酸在哪里進行絞接;蛋白質(zhì)如何折疊成各自的特有形狀;不同條件如何對基因的表達造成影響。用不著在實驗室對新藥進行測試,機器學(xué)習(xí)就可以預(yù)測這些藥物是否有效,只有最有效的藥品才會受到測試。學(xué)習(xí)算法還會剔除那些可能產(chǎn)生嚴重副作用(甚至導(dǎo)致癌癥)的藥物,備選藥物無須在經(jīng)過人體試驗被證明無效后才被禁止使用,從而避免了代價昂貴的失敗。
然而,最大的挑戰(zhàn)就是將所有這些數(shù)據(jù)組合成一個整體。導(dǎo)致你患心臟病的因素有哪些?這些因素如何相互影響?牛頓需要的只是三個運動定律和一個萬有引力定律,但一個細胞、一個有機體、一個社會的完整模型卻無法由一個人來發(fā)現(xiàn)。雖然隨著知識的增長,科學(xué)家的分工變得越來越細,但是沒有人能夠?qū)⑺兄R整合到一起,因為知識太多了。雖然科學(xué)家們會合作,但語言是傳播速度非常緩慢的介質(zhì)。雖然科學(xué)家們想努力追上別人的研究,但出版物的數(shù)量如此之多,他們的距離被拉得越來越遠。通常是,重做一項實驗比找到該實驗的報告還要容易。機器學(xué)習(xí)在這時就會起作用,它能根據(jù)相關(guān)信息搜索文獻,將某領(lǐng)域的行話翻譯到另一個領(lǐng)域,并建立聯(lián)系,而科學(xué)家們在過去都沒有意識到。漸漸地,機器學(xué)習(xí)成為一個巨大的中心,通過這個中心,某領(lǐng)域里發(fā)明的建模技術(shù)將會被引入其他領(lǐng)域。
如果計算機沒有被發(fā)明出來,20世紀下半葉的科學(xué)將停滯不前。這可能不會很快在科學(xué)家當中表現(xiàn)出來,因為他們專注于所有仍可努力實現(xiàn)、有限的進步,但進步的空間真的太小了。同樣,如果沒有機器學(xué)習(xí),許多科學(xué)在未來10年將會面臨收益遞減。
為了預(yù)見科學(xué)的未來,看看曼徹斯特大學(xué)生物技術(shù)研究院的實驗室,在那里,一個名叫亞當?shù)臋C器人正在努力工作,目的是找到哪些基因在酵母中對哪些酶進行編碼。亞當有一個酵母新陳代謝的模型,還掌握了基本的基因及蛋白質(zhì)知識。它提出假設(shè),設(shè)計實驗驗證假設(shè),進行實地實驗,分析結(jié)果,提出新的假設(shè),直到它滿意為止。當下,人類科學(xué)家仍然在獨立檢查亞當?shù)慕Y(jié)果,然后才會相信這些結(jié)果,但在未來,他們就會交給機器人科學(xué)家來驗證彼此的假設(shè)。
第1章 機器學(xué)習(xí)革命(下)
10億個比爾 · 克林頓
在2012年的美國總統(tǒng)選舉中,機器學(xué)習(xí)決定了誰能當上總統(tǒng)。通常決定總統(tǒng)選舉的因素包括經(jīng)濟、候選人的親民度等,但這些因素沒有起到作用,而選舉的結(jié)果主要受到幾個“搖擺州”的影響。米特 · 羅姆尼的競選采用的是傳統(tǒng)的投票策略,將選民分成幾大類,然后選擇是否把每個類別作為目標。尼爾 · 紐豪斯(羅姆尼的民意調(diào)查專家)說道:“如果我們能在俄亥俄州贏得無黨派人士,那么這場競賽我們就贏了。”雖然羅姆尼獲得了7%無黨派人士的支持,但他仍失去了這個州,在競選中失利。
相比之下,奧巴馬總統(tǒng)雇用了拉伊德 · 賈尼(機器學(xué)習(xí)專家,他是奧巴馬競選中的首席科學(xué)家)。賈尼研究的是如何整合最偉大的分析運算,并將其應(yīng)用到政治史中。他們將所有選民的信息整合成單個數(shù)據(jù)庫,然后將該數(shù)據(jù)庫和他們能在社交網(wǎng)絡(luò)、市場營銷等領(lǐng)域找到的資源結(jié)合起來。之后著手對每個選民做四種預(yù)測:(1)支持奧巴馬的可能性有多大;(2)會不會參加民意調(diào)查;(3)會不會回應(yīng)競選宣傳并照做;(4)對特定問題進行對話之后,他們會不會改變選舉決定。基于這些選民的例子,奧巴馬團隊每個晚上進行66000場選舉模擬,并用這些結(jié)果指導(dǎo)奧巴馬競選的志愿者大軍:該給誰打電話,該拜訪誰,該說什么。
在政界、商界以及戰(zhàn)爭中,最糟糕的事情莫過于,你不明白對手的行動,而知道該怎么做時,為時已晚。這就是發(fā)生在羅姆尼競選中的事情,他們能看到對手的團隊在特定鎮(zhèn)的特定電臺花錢做宣傳,卻不知道這是為什么,他們能預(yù)測的實在太少。最后,奧巴馬除了北卡羅來納州以外,贏得了每個州,而且與最可靠的民意調(diào)查專家的預(yù)測相比,他贏得了更多。反過來,最可靠的民意調(diào)查專家(例如內(nèi)特 · 希爾)使用的是最復(fù)雜的預(yù)測技術(shù),預(yù)測結(jié)果卻沒有奧巴馬競選團隊的結(jié)果準確,因為他們的資源比較少。但他們比那些所謂的權(quán)威人士要準確很多,因為那些人的預(yù)測只是基于他們自己的專業(yè)知識。
也許你會認為,2012年的美國總統(tǒng)競選只是機緣巧合:大多數(shù)選舉結(jié)果并不那么接近,機器學(xué)習(xí)無法成為決定因素。但未來機器學(xué)習(xí)會讓更多的選舉結(jié)果更接近。在政界,正如在所有領(lǐng)域那樣,學(xué)習(xí)就像一場掰手腕比賽。在卡爾 · 羅夫(前直銷商和數(shù)據(jù)挖掘工程師)的年代,共和黨是領(lǐng)先的。到了2012年,共和黨開始掉隊,但現(xiàn)在他們又追上來了。我們不知道下一輪選舉誰會領(lǐng)先,但我們知道兩個黨派為了贏得選舉都很努力。這也就意味著,應(yīng)該更好地了解選民,根據(jù)候選人的情況進行宣傳,甚至根據(jù)實際情況選擇候選人。在選舉期間以及每輪選舉之間,這適用于整個黨綱:在硬數(shù)據(jù)的基礎(chǔ)上,如果詳細的選民模式表明該黨派現(xiàn)在的綱領(lǐng)是失敗的,那么該黨派就應(yīng)改變它。因此,把主要選舉活動放到一邊,民意調(diào)查中候選人的差距會變得越來越小,而且很快會消失。其他條件不變,擁有更好選民模式的候選人會贏得選舉,而選民也會因此得到更好的服務(wù)。
政治家最偉大的才能之一,就是能夠了解其選民個人或者選民團體,然后直接與他們對話,比爾 · 克林頓就是其中的一個典范。機器學(xué)習(xí)的作用就是,讓每位選民都覺得克林頓對待他們親力親為、非常用心。盡管他們心目中的這些小小克林頓與真的克林頓相差太遠了,但優(yōu)勢在于“小克林頓”的數(shù)量眾多,哪怕比爾 · 克林頓根本無法了解美國的每位選民是怎么想的(雖然他確實想知道)。學(xué)習(xí)算法是最強大的政治家推銷商。
當然,就像企業(yè)一樣,政治家能把機器學(xué)習(xí)掌握的信息用好,也可能會用得很糟糕。例如,對不同的選民,他們可能會給出不一致的承諾,但選民、媒體、監(jiān)督組織也會自己進行數(shù)據(jù)挖掘,并揭露做得太過分的政治家。競選活動不僅僅是候選人之間的較量,還涉及民主進程中的所有參與者。
更大范圍的結(jié)果就是,民主會更好地得到實現(xiàn),因為選民與政治家之間交流的范圍會飛速擴大。在當今這個高速互聯(lián)網(wǎng)時代,民意代表從你身上獲取的信息數(shù)量仍像19世紀時一樣有限:每兩年會有100比特左右的信息,數(shù)量正好對應(yīng)一張選票。這些信息會由民意信息來補充,或許偶爾還會有電子郵件和市民大會的信息,但還是少得可憐。大數(shù)據(jù)和機器學(xué)習(xí)正改變這種等式關(guān)系。在未來,只要選民模式準確,當選官員就可以每天詢問選民上千次想要什么,然后根據(jù)詢問結(jié)果來辦事,不用在現(xiàn)實中糾纏選民。
學(xué)習(xí)算法與國家安全
在網(wǎng)絡(luò)空間之外,學(xué)習(xí)算法是保護國家的壁壘。每天,國外襲擊者都會企圖闖進五角大樓、國防承包商以及其他公司和政府機構(gòu)的計算機。他們的計謀不斷變化,能抵抗昨天襲擊的方法,今天就已經(jīng)不管用了。編寫代碼來偵查并阻止每場襲擊,可能會和馬其諾防線一樣有效,五角大樓的網(wǎng)絡(luò)司令部十分了解這一點。但如果是恐怖分子的第一次襲擊,而且也沒有之前的例子供機器學(xué)習(xí)來參考,那么機器學(xué)習(xí)就會遇到問題。學(xué)習(xí)算法會構(gòu)建正常行為的模型(這樣的模型數(shù)量很多),標出異常行為,然后召集來“騎兵”(系統(tǒng)管理員)。如果網(wǎng)絡(luò)戰(zhàn)爭發(fā)生,人類就是總指揮,算法就是步兵。人類速度太慢、數(shù)量太少,很快就會被機器人大軍殲滅。我們需要自己的機器人軍隊,而機器學(xué)習(xí)就像機器人中的西點軍校。
網(wǎng)絡(luò)戰(zhàn)爭是不對稱戰(zhàn)爭的一個例子,一方的傳統(tǒng)軍事實力比不上另一方,但仍然可以給對方造成嚴重傷害。少數(shù)恐怖分子只用美工刀就可以撞到雙子塔,并讓幾千名無辜者遇難。當今美國安全最大的威脅就是不對稱戰(zhàn)爭,而且抵抗所有威脅的有效武器就是信息。如果敵人躲不了,那么他也活不了。好消息就是我們有大量信息,但也有壞消息。
美國國家安全局已經(jīng)對數(shù)據(jù)產(chǎn)生無限大的胃口,也因此聲名狼藉。據(jù)估計,每天美國國家安全局竊聽著全球10億多個通話,還有其他通信。但是,拋開隱私問題,它也沒有讓上百萬員工來竊聽這些通話、偷看郵件,甚至也不會記錄誰和誰通話。絕大多數(shù)通話是沒有嫌疑的,而專門編寫程序來找出有嫌疑的通話又很困難。過去,美國國家安全局利用關(guān)鍵詞配對方法,但要應(yīng)付這個方法也很容易(例如,把爆炸襲擊稱作“結(jié)婚”,把炸彈稱作“結(jié)婚蛋糕”)。21世紀,這些事就可以交給機器學(xué)習(xí)。保密是安全局的標志,但安全局局長已經(jīng)向美國國會證明,通話記錄挖掘已經(jīng)阻止了幾十起恐怖威脅。
恐怖分子可隱藏在足球比賽的人群中,但學(xué)習(xí)算法能辨認他們的相貌。恐怖分子可以在國外制造爆炸事件,但學(xué)習(xí)算法能找出他們。學(xué)習(xí)算法還可以做更加精細的事情:將機器人與事件連接起來,這些事件單個看起來并無危害,但集中起來可能就預(yù)示著不祥。這種方法本可以阻止“9·11”事件的發(fā)生。有一個進一步的轉(zhuǎn)折:一旦確定的程序部署下來,壞人可能會改變其活動,以擾亂該程序。這與自然世界不同,自然世界總是以同樣的方式運轉(zhuǎn)。要解決這個問題,就要將機器學(xué)習(xí)與博弈論相結(jié)合,這是我已經(jīng)在做的工作:別只想著打擊對手當前想做的事,要學(xué)會巧妙地回避對手對你的學(xué)習(xí)算法的損害。正如博弈論那樣,把各種措施的成本和利益考慮在內(nèi),這也有助于找到隱私與安全之間的平衡點。
不列顛之戰(zhàn)期間,英國空軍阻止了納粹德國空軍的進攻,盡管后者人數(shù)比前者多很多。德國飛行員不明白,為什么無論走到哪里,他們總會碰上英國空軍。英國有一個秘密武器:雷達,可以在德國飛機越境進入英國領(lǐng)空時,就探測到它們。機器學(xué)習(xí)就像裝了雷達,能夠預(yù)知未來。別只是回擊對手的行動,要預(yù)測他們的行動,并先發(fā)制人。
一個更確切的例子就是人們熟知的“預(yù)知執(zhí)法”。通過預(yù)測犯罪傾向,戰(zhàn)略性地將巡邏隊集中在最可能需要的地方,同時采取其他預(yù)防措施,這樣一座城市的警力就能有效地完成更大范圍的工作。在許多方面,執(zhí)法過程就像不對稱戰(zhàn)爭,會用到許多相似的學(xué)習(xí)算法,無論是在偵查詐騙、揭露犯罪網(wǎng)絡(luò),還是普通傳統(tǒng)的打擊執(zhí)法中。
機器學(xué)習(xí)在戰(zhàn)爭中也將扮演越來越重要的角色。學(xué)習(xí)算法能有助于驅(qū)散戰(zhàn)爭迷霧,篩選偵察圖像,處理后續(xù)報告,并整合信息,為指揮官提供戰(zhàn)爭形勢分析。學(xué)習(xí)算法可以武裝軍用機器人的大腦,幫助其保持方位,適應(yīng)地形,把敵機和民用機區(qū)別開來,以及進行制導(dǎo)。美國國防部高級研究計劃局(DARPA)的領(lǐng)頭狗(AlphaDog)能為士兵搬運設(shè)備。遙控飛機在學(xué)習(xí)算法的作用下可自主飛行。雖然它們?nèi)允艿饺祟愶w行員的部分控制,但未來的趨勢是一個飛行員監(jiān)控越來越多的遙控飛機群。在未來的軍隊里,學(xué)習(xí)算法的數(shù)量會大大超過士兵的人數(shù),這將減少許多士兵的傷亡。
我們將走向何方
科技潮流奔涌而來并迅猛向前。機器學(xué)習(xí)不同尋常的一點就是,在經(jīng)歷所有這些變革以及繁榮和破產(chǎn)之后,它開始逐漸強大。它遇到的第一個大的打擊是在金融領(lǐng)域,預(yù)測股票的起伏波動,起于20世紀80年代。接下來的一波是挖掘企業(yè)數(shù)據(jù)庫,在20世紀90年代中開始發(fā)展壯大,尤其是在直接營銷、客戶關(guān)系管理、資信評分以及詐騙偵查等領(lǐng)域。接著是網(wǎng)絡(luò)和電子商務(wù),在這些領(lǐng)域中,自動個性化很快流行起來。當互聯(lián)網(wǎng)泡沫暫時削弱這種趨勢時,將機器學(xué)習(xí)應(yīng)用到網(wǎng)頁搜索和廣告投放的做法開始騰飛起來。不管怎樣,“9·11”恐怖襲擊后機器學(xué)習(xí)被應(yīng)用到打擊恐怖主義的戰(zhàn)爭中。網(wǎng)絡(luò)2.0帶來一連串的新應(yīng)用,包括挖掘社交網(wǎng)絡(luò)、搜索哪些博客談到你的產(chǎn)品。同時,各個領(lǐng)域的科學(xué)家也逐漸轉(zhuǎn)向大規(guī)模建模,由分子生物學(xué)家和天文學(xué)家打頭陣。人們勉強留意到了房地產(chǎn)泡沫,而其主要影響就是使人才從華爾街轉(zhuǎn)移到硅谷,并受到歡迎。2011年,“大數(shù)據(jù)”的概念流行起來,機器學(xué)習(xí)被明確歸入全球經(jīng)濟未來的中心。當今,似乎沒有哪個人類鉆研的領(lǐng)域不受到機器學(xué)習(xí)的影響,甚至包括看起來沒有多大關(guān)系的領(lǐng)域(如音樂、體育、品酒)。
盡管機器學(xué)習(xí)發(fā)展很明顯,但這也僅僅是未來的預(yù)告。雖然它有用,但實際上當今在工業(yè)上起作用的學(xué)習(xí)算法的生成還是受到了很大限制。如果現(xiàn)在實驗室的算法能在各領(lǐng)域的前線使用,比爾 · 蓋茨說機器學(xué)習(xí)的突破產(chǎn)生的價值將相當于10家微軟,其實這個說法有點保守了。如果這些觀點讓研究人員真正覺得眼前一片光明,而且收到效果,那么機器學(xué)習(xí)帶來的就不僅僅是新的文明時代,還是地球生命進化的新階段。
怎樣才能實現(xiàn)這個目標?學(xué)習(xí)算法如何運行?現(xiàn)在它們不能做什么?它們的下一代會是怎樣的?機器學(xué)習(xí)革命將以什么方式呈現(xiàn)?你得抓住哪些機遇,提防哪些危險?這些就是這本書要講的內(nèi)容。
第2章 終極算法(上)
第2章 終極算法(中)
第2章 終極算法(下)
第3章 符號學(xué)派:休謨的歸納問題(上)
第3章 符號學(xué)派:休謨的歸納問題(中)
第3章 符號學(xué)派:休謨的歸納問題(下)
第4章 聯(lián)結(jié)學(xué)派:大腦如何學(xué)習(xí)(上)
第4章 聯(lián)結(jié)學(xué)派:大腦如何學(xué)習(xí)(中)
第4章 聯(lián)結(jié)學(xué)派:大腦如何學(xué)習(xí)(下)
第5章 進化學(xué)派: 自然的學(xué)習(xí)算法(上)
第5章 進化學(xué)派:自然的學(xué)習(xí)算法(下)
第6章 貝葉斯學(xué)派:在貝葉斯教堂里(上)
第6章 貝葉斯學(xué)派:在貝葉斯教堂里(中)
第6章 貝葉斯學(xué)派:在貝葉斯教堂里(下)
第7章 類推學(xué)派:像什么就是什么(上)
第7章 類推學(xué)派:像什么就是什么(中)
第7章 類推學(xué)派:像什么就是什么(下)
第8章 無師自通(上)
第8章 無師自通(中)
第8章 無師自通(下)
第9章 解開迷惑(上)
第9章 解開迷惑(中)
第9章 解開迷惑(下)
第10章 建立在機器學(xué)習(xí)之上的世界(上)
第10章 建立在機器學(xué)習(xí)之上的世界(中)
第10章 建立在機器學(xué)習(xí)之上的世界(下)
后記
致謝
閱讀全文: http://gitbook.cn/gitchat/geekbook/5a409c8cf59ac3165704787b
總結(jié)
以上是生活随笔為你收集整理的终极算法:机器学习和人工智能如何重塑世界的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTMLParser-实战
- 下一篇: iview代码片段 去除水平menu底部