程式碼將退出歷史舞臺:像訓狗一樣訓練計算機

錢曙光發表於2016-08-10

本文為《程式設計師》原創摘譯文章,未經允許不得轉載,更多精彩文章請訂閱2016年《程式設計師》

計算機尚未出現之前,大多數經驗豐富的心理學家都以為大腦就像個不可知的黑匣子。我們可以分析物件的行為——比如著名的巴普洛夫實驗:搖響鈴鐺會讓狗分泌唾液,但思維、記憶與情感這些又如何分析呢?這些東西太過模糊、難以瞭解,遠超科學知識的理解範疇。因此這些自稱“行為學家”的科學家們將自己的工作範圍限定在對刺激和反應、反饋與強化、鈴鐺與唾液之類的研究上,他們放棄了理解思維內部運作方式的嘗試,而這樣的時日長達40年之久。

之後到了20世紀50年代中期,一群叛逆的心理學家、語言學家、資訊理論學家以及早期的人工智慧研究學家們提出了關於思維的不同設想。他們認為:人類不僅有條件反射的行為,還能吸收處理資訊並依此行事,他們有著寫作、儲存和回憶的系統,這個系統可通過合乎邏輯的正式語法執行。大腦完全不是什麼黑匣子,而更像是計算機。

這場所謂的認知革命始於微末,但隨著計算機成為全美心理實驗室的標配之後,有更多人開始認可這種概念。到了20世紀70年代末期,認知心理學之勢壓過了行為主義,在討論心理學的問題時,也出現了全新的語言。心理學家開始按照程式的方式描述思維,普通人談起在大腦記憶庫中儲存資訊,商業大牛也煩惱於腦力頻寬與處理能力對工作的限制。

這個故事一再重複發生,正如歷史總是緩慢呈螺旋狀上升,電子革命也逐漸滲透了我們的生活,並滲透到我們的語言中,滲透到關於事物運作的深層基礎理論中——技術總有這樣的作用。在這場啟蒙運動中,牛頓與笛卡爾啟發我們將宇宙看成一架精密的時鐘。在工業時代,它是帶有活塞的機器(弗洛伊德的精神力學概念便借鑑於蒸汽機的熱力學理論),而現在宇宙則成了計算機。由於這個世界是一臺計算機,因此我們就能對它進行編譯。

程式碼合乎邏輯、可以修改、也可以預測結果,這些便是數字時代的生活核心原則,也是自證預言。套用風險投資商Marc Andreessen的一句話,隨著計算機侵蝕著這個世界,我們周圍滿是機器,它們將我們的行為、思想以及情感轉化為資料——大批會用程式碼的工程師所能操控的原始資料。根據這樣的看法,生活中有一系列能被探索、利用、優化甚至重寫的指令,一些公司利用程式碼來理解我們最為親密的關係,比如Facebook的祖克伯就已經在這方面取得了很大進展,他認為人類關係中存在著“基本數學定律”,決定我們更關心哪些人和事。在2013年Craig Venter宣佈,在經過十年對人類基因程式碼的解譯之後,他開始編寫程式碼,建立合成有機體:“這一點越來越明顯——地球上已知的所有活體細胞都是由DNA程式驅動的生物機器。”甚至勵志文學作品也聲稱:你可以修改自己的原始碼,對愛情生活、作息規律以及消費習慣進行重構。

在這個世界上,編寫程式碼已經不僅僅是一項社會需求的技能,更是打入這種語言使用群體內部的一項工具。在機械化時代裡,我們稱這種打入群體內部的能力為權力槓桿。未來主義者Marc Goodman寫道:“如果你能控制程式碼,就能控制世界。” 而在《彭博商業週刊》中Paul Ford的說法更謹慎一些:“就算程式碼編寫者不是世界的掌控者,他們也把控著能控制這個世界的事物。”

不過無論你是否喜歡——無論你是程式設計精英中的一員,還是連手機設定都搞不定,都不會對此習以為常。如今,我們的機器開始使用不同的語言了,甚至連最厲害的程式設計者都無法完全理解。

在過去這幾年裡,矽谷最大的科技公司都在積極尋求機器學習方面的演算法。在傳統程式設計中,工程師要撰寫詳細的步驟指令,以便計算機可以遵循執行。而在機器學習中,程式設計者不再編譯指令程式碼,而是訓練計算機。舉個例子:如果想要教會神經網路如何識別一隻貓,無需讓計算機尋找鬍鬚、耳朵、皮毛和眼睛,只需簡單地向它展示成千上萬張貓的照片,最終事情就解決了。如果在分類時,計算機仍錯將狐狸當作貓,也不必重寫程式碼,只需繼續對計算機進行訓練。

這種辦法並不算什麼新東西——它已經存在了幾十年,但近來這種方法發展地更加強大,這也要部分得益於深度神經網路的崛起,隨著大規模分散式計算系統的出現,它們可以模擬大腦神經元的多層連線。而且無論你是否意識到這一點,機器學習都已經在我們的網路活動中留下了深刻的痕跡。Facebook使用這種方法來決定在使用者的News Feed中顯示哪些內容,Google Photos則使用它來識別人臉。機器學習執行著微軟的Skype Translator,可以實時翻譯多種語言。無人駕駛汽車也使用機器學習來避免事故發生,甚至連多年來作為人類撰寫規則高嶺之巔的谷歌搜尋引擎也開始依賴於這些深度神經網路。在今年2月份,谷歌用機器學習專家John Giannandrea代替了原本多年來的搜尋主管,併發起了再教育專案,訓練工程師學習這些新技術。Giannandrea對記者表示:“構建機器學習體系之後,我們就無需再編寫這些規則了。”

我們的機器現在開始使用不同的語言了,甚至連最厲害的程式設計者都無法完全理解。

但這就是問題的關鍵——通過機器學習,工程師是無法瞭解計算機如何完成工作的,神經網路的執行大部分情況下都是我們難以瞭解的。換句話說,它實際上是一個黑匣子。隨著這些黑匣子越來越多地接手我們的日常數字生活,它們不僅將我們的人際關係轉變為技術實現,也會改變我們對自己、對世界的看法,以及對人類自身的定位。
如果在舊有觀點中,程式設計師就像是神明那樣,撰寫著管理計算機系統的規則,那麼現在走下了神壇,成為了更像父母或者馴狗者這樣的角色。

安卓之父Andy Rubin是一個骨子裡的發明家兼程式設計師,他是安卓作業系統的聯合創始人。在矽谷,Rubin便以工作場所和家裡塞滿了機器人而聞名,他自己為機器人程式設計:“我在很年輕的時候便進入了電腦科學這一行,而且也非常熱愛這一行,因為我可以沉浸在計算機的世界裡。它是一張純淨的白紙、一塊空白的畫布,我可以從頭做些什麼東西。這讓我感覺全世界盡在掌控,我可以在這個世界裡沉浸很多很多年。”

而現在這個世界即將結束。Rubin對機器學習的崛起很感興趣,他的新公司Playground Global就在投資機器學習類的創業公司,他們對自身的定位就是引導智慧裝置普及,但這也是他難過的原因——機器學習的出現改變了作為工程師的意義。

Rubin表示:“人們不再逐行編寫程式了,神經網路學會了如何進行語音識別,但程式設計師無法深入研究具體的過程。就像人類的大腦一樣,我們無法切開腦袋來檢視思維。”當工程師盯著深度神經網路檢視時,他們只能看到一片數學的海洋:一個大規模多層次的微積分問題集,通過數十億個資料點不斷衍生關係,並得出對世界的猜測。

過去人們對人工智慧的設想並不是這樣的。數年之前,主流的人工智慧研究者提出這樣的假設:想要建立智慧,只需向一臺機器輸入正確的邏輯,編寫足夠多的規則,最終就能建立一個複雜到足以理解這個世界的系統。這些研究者在很大程度上忽視甚至貶低了機器學習的早期支持者對機器學習的觀點——不斷在機器中使用資料,直到這些機器產生自己的結論。多年來,計算機都不夠強大,無法真正證實兩種方法的優劣,因此這種爭論成為了哲學問題。史丹佛的人工智慧教授Sebastian Thrun曾為谷歌創造了無人駕駛汽車,他認為:“這些辯論大多都是基於頑固的信念之上——關於這個世界的組成方式,以及大腦的運作方式。神經網路中沒有符號或者規則,只有數字,這讓很多人敬而遠之。”

機器語言的變化不僅引發了哲學問題。在過去20年中,學習程式設計一直是獲得可靠工作最有保障的方式之一,但由深度學習的機器所組成的神經網路需要不同型別的勞動力,隨著舊有技能的淘汰,機器分析學家已經開始擔憂人工智慧對勞務市場的影響,也許程式設計師們很快就親身體驗。

就像經典力學無法被量子力學替代一樣,程式設計仍是人類探索世界的強大工具。

技術專家Tim O’Reilly在談及這種轉變時表示:“我剛剛就這個問題進行了一場談話,並認為在受STEM教育的這些孩子長大之後,程式設計工作會與現在大相徑庭。”傳統程式設計不會完全消失——實際上,根據O’Reilly的預測,在很長時間內我們仍需要程式設計師,但這樣的需求可能會越來越少,而程式設計逐漸會成為一種基礎技能,一種被人工智慧Allen研究所的CEO Oren Etzioni稱為建立機器學習執行“腳手架”的方式。就像經典力學無法被量子力學取代一樣,程式設計仍是人類探索世界的強大工具。但涉及到具體功能時,機器學習將會接手大量工作。

當然,人類仍需要訓練這些系統,但至少就目前而言,這項技能還是稀缺技能。這項工作需要我們對數學有高層次的理解,並需要拿捏直覺與教條知識的分寸。谷歌的DeepMind人工智慧團隊主管Demis Hassabis表示:“這幾乎就像一種藝術形式,我們從這些系統中找出最好的,而在這個世界上僅有幾百個人能真正做好這件事。”但就算只有這麼點人,也足夠在幾年時間內改變整個科技行業了。

無論這種轉變代表著什麼,它對文化帶來的影響會更大。人類編寫的軟體曾導致我們對工程師的盲目崇拜,認為人類的經驗最終可以被精簡為一系列的綜合性指令。而機器學習則將鐘擺撞向另一個方向,宇宙執行的程式碼可能會超出人類的分析能力。舉個例子,目前谷歌在歐洲正面臨指控,稱谷歌對其搜尋結果施加不正當影響。如果連公司的工程師都無法清楚說明其搜尋演算法的工作原理,那麼這樣的指控是難以證實的。
甚至最簡單的演算法也會導致無法預測的緊急情況,這已經不是新聞了——這種觀點可以追溯到混沌理論與隨機數生成器。在過去幾年中,隨著網路發展地越發枝蔓叢生,功能也越來越複雜,程式碼倒顯得更像是外星力量,機器中的幽靈較之以往更加複雜難懂,也難以控制。飛機無故著陸、股票市場無法避免地崩盤、還有輪流停電事故都曾經出現。

這些力量導致技術專家Danny Hillis宣佈啟蒙時代已經終結,我們長達數世紀之久,對邏輯、決定論以及人類掌控自然的信仰將會結束。Hillis表示:我們正在經歷轉變。他在《設計與科學》雜誌上發表文章稱:“隨著我們的技術與制度產物變得更加複雜,我們與其之間的關係也在改變。我們不再是自己創造物的掌控者,而要學著與它們討價還價,通過哄騙與引導的手段來實現我們的目標。我們已經建立了叢林,但它有著自己的生命。”機器學習的崛起是這段旅程中最新的,也許也是最後的一步。

這些可能是很可怕。畢竟,編寫程式碼至少是那種普通人可以想象得到,也可以學習的工作,程式碼的編寫者至少是人類。而現在,這些技術精英的群體比之前規模更小,他們對自己創造物的權威也削弱了,發出指令的方式也越來越間接。建立機器學習的那些公司已經發現,這些東西的行為難以管理。去年夏天,谷歌匆忙道歉,因為其照片識別引擎錯將一副黑人照片標記為大猩猩,而谷歌最初的修正措施便是禁止系統為任何照片打上大猩猩的標籤。

所有這些都暗示著:一個新的時代到來了,我們喪失了對機器的權威。霍金這樣認為:“可以想見:這樣的技術比金融市場更強大,超越了人類研究者的發明,也勝過了人類領導者的操控能力,同時也開發出了我們甚至無法理解的武器。” 而這種觀點得到了Elon Musk與Bill Gates還有很多人的贊同,“然而人工智慧的短期影響要取決於其控制者,長期影響則取決於它是否能夠被控制。”

但不要過於恐懼,這並非天網來臨的前兆。我們只是在學習採用一項新技術的規則,工程師們已經研究出了方法,可以對深度學習系統的內部進行視覺化。但即便我們從未完全理解過這些機器思考的方式,也不代表我們在它們面前無能為力。在未來,我們不用太過擔心其行為背後的源頭,而是著重於行為本身。相對於我們用來訓練機器的資料,程式碼的重要性會下降。

這並非天網來臨的徵兆,我們只是在學習採用一項新技術的規則。

如果這一切似曾相識,那是因為這與20世紀的行為主義非常相似。事實上,訓練機器學習演算法的過程經常會被拿來與20世紀初的那場著名的行為主義實驗相類比。在著名的“巴甫洛夫實驗”中,巴甫洛夫在訓練狗時,並沒有讓狗對飢餓有深層的瞭解,而是簡單地通過重複一系列行為來實現結果:他一次又一次地重複提供資料,直到程式碼能夠自我重寫。無論你怎麼評論行為學家,他們的確瞭解怎樣控制研究主體。

Thrun表示:長期來看,機器學習將會普及技術。同樣地,你也無需瞭解如今用來構建網頁的HTML語言,也無需拿到PhD學位才能發揮深度學習強大的力量。程式設計不再是掌控一系列神祕語言的程式設計師的專屬領域,任何會馴狗的人都能參與進來。Thrun表示:“對我來說,這是程式設計中最酷的事情,因為現在誰都能程式設計了。”

自計算有史以來,大多時候我們都採用自內而外的角度來觀察機器的運作方式。首先由人類編寫出程式碼,再由機器將其表達出來。這種世界觀隱含著可塑性,但也暗示著一種基於決定論的規則,一種認為事物是規則背後產物的觀念。機器學習則代表著相反的觀念,一種自外而內的視角——不僅程式碼定義行為,行為也會定義程式碼,而機器是世界的產物。

最終我們將會懂得在欣賞手寫程式碼的同時,也能欣賞機器學習演算法對程式碼修正的能力,這是設計與實現的互相妥協。生物學家已經開始逐漸得出這個結論,類似Crispr這樣編輯基因的技術賦予了他們操控程式碼的能力,而這是傳統軟體開發者曾使用過的能力。但在遺傳學領域有發現表明,遺傳物質實際上並非一個不可變的指令集,它更像是一個開發中的動態集,可以根據環境與宿主的經驗進行調節。我們的程式碼並非獨立於真實物質世界,卻深受後者的影響。Venter也許會相信細胞是由DNA軟體所驅動的機器,但表現遺傳學家Steve Cole則有不同的表述:“細胞是將經驗載入生物體的機器。”

從圖靈首次設計出解決問題的機器到了80年之後的現在,計算機已經逐漸成為了我們將經驗融入技術的工具。幾十年前,我們找到了可以詮釋宇宙的密碼,並通過調整優化人類的生活體驗。但這種方式終將改變,機器已經脫離了我們的掌控,而世界也從未在人類的掌控中。我們與科技之間的關係將會更加複雜,但最終也會帶來更大的價值,我們將從機器的命令者轉變為機器的教育者。

相關文章