特別節目·中文精讀

彼得·諾維格:《人工智慧:一種現代的方法》

Peter Norvig: Artificial Intelligence: A Modern Approach

經典 AI 教材的作者談人工智慧數十年的方法變遷、搜尋與學習,以及技術現實與宣傳之間的差距。

官方音訊00:00 / --:--
中文精讀由 AI 基於原始訪談改寫,非官方翻譯,可能存在偏差或錯誤;表述以原音訊與官方文稿為準。說明

某個商業累犯預測系統給被告打分,滿分十分裡拿到六分,意味著大約 60% 的再犯機率。這是設計者公開承諾的目標:不管你是黑人還是白人,同樣的分數對應同樣的再犯機率。他們做到了。

另一組數字是:這個系統判斷出錯的機率,對不同種族並不相等。它對黑人做出有害錯誤判斷的機率,是白人的兩倍。

兩組陳述同時成立。彼得·諾維格(Peter Norvig)在訪談裡說得很平靜:如果你把這兩件事都當成必須同時滿足的公平性指標,數學上可以證明,你不可能同時達成。

諾維格是谷歌研究總監,也是《人工智慧:一種現代的方法》(Artificial Intelligence: A Modern Approach)的作者之一,合著者是斯圖爾特·羅素(Stuart Russell)。這本書 1995 年出第一版,然後 2003 年第二版、2009 年第三版,第四版正在寫。很多 AI 研究者書架上都並排擺著紅、綠、藍三本書,包括這次訪談的主持人本人。

公平性的兩個目標,只能選一個

把這件事講清楚,是整場對話裡最有資訊量的幾分鐘。累犯預測這類系統,通常被用來輔助判斷誰可以假釋、誰可以保釋。它涉及兩類不同的公平性訴求。

第一類叫校準。給定同一個分數,不同族群的人應該有相同的實際結果機率。六分就是 60% 的再犯率,對誰都是 60%。這個目標可以量化驗證,那家商業公司也正是朝這個方向最佳化,並且聲稱達到了平衡。

第二類叫誤差均等。系統總會出錯,但出錯的代價不該由某一個受保護群體承擔。這裡的問題是,它對黑人犯錯的機率是對白人的兩倍。

諾維格強調,這兩個目標在數學上被證明無法同時滿足,你必須做取捨。這個結論的用處,在於讓你知道你沒有在追一個幻覺;至於取捨點該落在哪,數學管不了。

你不可能什麼都要。但這個分析至少能告訴你,我們沒法同時拿到。於是我們可以作為人類,去認真地討論這個取捨點應該落在哪裡。至少我們是在有資訊的基礎上爭論,而不是在要求一件不可能的事。(彼得·諾維格)

這一點值得所有做機器學習系統的人記住。公平性沒法用單一指標同時滿足所有定義,定義之間本身就衝突。工程師能做的是明確你最佳化了哪一個,犧牲了哪一個,然後把這個取捨交給公共討論。

第四版真正改變的地方:效用函式本身

諾維格說,前三版裡,作者們預設一個前提:我們教你最大化期望效用,至於效用函式是什麼,你告訴我。全書 27 章講的都是怎麼做得更好、最佳化得更快。

第四版的口徑變了。他們開始說,也許最佳化是容易的部分,難的是搞清楚我的效用函式到底是什麼,我到底想要什麼。如果面對的是一群智慧體、一整個社會,那我們作為整體想要什麼。

技術上往前走一步,就撞上哲學。這本書裡一直有一章講哲學,以前討論的是中文屋這類論證,現在更多是公平、偏見,以及如何聚合不同人的效用。

怎麼把人類價值編碼進去?諾維格承認沒有好答案,只有一些開端。其中一個方向叫逆強化學習(inverse reinforcement learning)。

普通強化學習是:你採取行動,拿到獎勵,然後學會該做什麼。逆強化學習倒過來:你觀察別人採取行動,反推他到底想幹什麼。如果他做了這個動作,那大概是因為他想要那個結果。

這條路有個明顯的問題。很多人會做自我毀滅的選擇,會做出各種次優決策。你不想把這些也學進來。要學的是理想行為,被觀察者實際做過什麼,得先放到一邊。這是這個領域自身的難點。

注意力市場裡,應用在和你搶東西

訪談裡聊到另一類最佳化問題。憤怒的小鳥這類遊戲,到底在最佳化什麼?是讓你在短期獲得多巴胺快感然後不斷回來,還是幫你獲得某種長期改善?

諾維格不把這個當成純粹的 AI 問題。他說,我們建立了這樣一個社會和一個基礎設施:有一個注意力市場,我們作為一個社會決定了我們喜歡免費的東西,手機上所有應用都得免費。這意味著它們全都在競爭你的注意力,最終靠廣告或遊戲內購買賺錢。

它們想贏,唯一的辦法是擊敗所有其他應用,也就是把你的注意力搶過來。在這個市場裡,它們看起來是在和你作對,沒打算和你站在一起。

短期讓你開心,長期也幫到你,這兩件事本身不衝突。衝突的是當下的激勵機制,它站在了更容易的那一邊,也就是餵給你多巴胺的那一邊。(彼得·諾維格)

他的表述很清楚:矛盾出在激勵結構上,跟技術能力沒什麼關係。這一點在討論推薦系統時經常被模糊掉,好像演算法天生如此,其實演算法只是在忠於我們設計出來的那套激勵。

這本書幾乎沒寫成

回過頭講這本書的來歷。90 年代中期,諾維格還在伯克利,和同事吃午飯時聊起,這個領域在變,市面上的教材有點跟不上,好久沒有人出新書了,我們應該寫一本。所有人都說,對,這事值得做,然後誰也沒動。

後來他去了工業界,進了 Sun Labs,以為自己的學術出版生涯就此結束。一年後在會議上又碰到羅素,他問,那本我們一直說要寫的書,你們肯定寫了一半了吧。羅素說,我們一直在聊,從來沒動手。

於是他提議,那就寫吧。諾維格說,他們真正下決心,是因為都覺得這個領域正在兩個方向上變化。

第一個方向:從布林邏輯轉向機率。老的 AI 建立在布林邏輯上,再配一些處理不確定性的小技巧。

第二個方向:從知識工程轉向機器學習。以前的做法是,出去採訪一位專家,把他知道的東西一條條手工寫下來。

如果從頭就以這兩個新視角組織全書,就能做出一本不一樣的書。其他教材還沒有完全轉過這個彎。

寫的過程放在今天看很原始。諾維格搬到了波士頓,羅素在伯克利,兩個人靠網際網路協作。撥號上網,不能傳圖片和圖表,要用 cat 命令把檔案打出來,然後祈禱對面收到了。

他們當年低估了什麼

訪談者問了一個直接的問題:當時有沒有預見到後面這一二十年,會走向深度學習和大資料?

諾維格的回答很坦誠。他們知道學習重要,但低估了它會有多重要。他們沒看見大資料這件事。深度學習當時還沒被髮明。

他說,其實完全可以一開始就把整本書寫成純粹的機器學習視角,但他們選了另一條路:先講各種型別的知識表示,再講各種型別的環境,完全可觀察還是部分可觀察,確定還是隨機。他們沿著這些軸增加複雜度,機器學習那條軸被排到了後面。

這個選擇回頭看不完美,但它解釋了為什麼這本書能覆蓋整個領域,而不只是覆蓋當時最熱的方法。專注單一方法的教材,方法一換代就過時了。

第四版裡,深度學習的章節交給了伊恩·古德費洛(Ian Goodfellow)。他把整本深度學習專著壓縮成了一章。諾維格提到一個細節:他們把舊的神經網路章節交給他,讓他隨便改,結果古德費洛說,原來那章有一半還是對的。核心內容沒變,變的是外面那一圈。

深度學習擅長感知,不擅長推理

諾維格對深度學習位置的判斷是:起步於卷積網路,非常靠近感知,後來擴充套件到動作和一定程度的長程規劃,但在表示、推理、單樣本學習這些方面還得做得更好。

他反覆用“表示”這個詞。有些時候你手上根本沒有足夠的資料,無法從零學起。這時候你需要先有一個關於世界的表示,不管是人編進去的還是告訴它的,然後在這個表示上一步步推理。

老式 AI 的問題跟符號和推理本身無關,出在另外兩件事上。

第一,符號是原子的。原子符號適合定義三角形的性質,因為三角形有充分必要條件。但現實世界是 messy 的,沒有銳利的邊界,動態符號才有。用非黑即白的符號去描述灰色的世界,匹配度很差。

第二,推理是通用的,可以應用在任何地方。這聽起來是優點,實際意味著沒有任何指引告訴你該在哪裡用。於是出現了古希臘那個經典悖論:一堆沙子拿走一粒還是堆,一直拿下去,總有一刻不是堆。邏輯本身不會阻止你把規則重複應用一萬次,它沒有“夠了”這個概念。

諾維格說,他也不知道該給這東西起什麼名字,但方向可能是這樣的:把“山”這種概念從原子符號換成詞嵌入那樣更復雜的表示;同時學會什麼時候可以反覆用某條規則,什麼時候不行。在整數上做歸納,無限次沒問題;從沙堆裡拿沙子,幾十次就到頭了。策略本身不該是完全中立、隨處可用的,它得學會自己被允許使用的範圍。

他更願意換個詞,不談可解釋性

神經網路從資料裡學出表示,自動把很多東西抹掉了。它為什麼在這麼多場景裡表現驚人,又為什麼在某些看起來微不足道的擾動下慘敗,人類從外部看不出內省式的答案。這是不是靠更多資料、更好的資料就能解決,還是必須把符號系統請回來?

諾維格的回答是換詞:他更願意談信任、驗證、校驗,解釋只是達成這些目標的一種工具。

他舉了貸款被拒的例子。你在歐洲有 GDPR,法律要求銀行必須能給出解釋。但解釋本身遠遠不夠。我們早就習慣了和人、和機構打交道,它們能給你一個解釋,而你完全無法保證這個解釋和真實原因有關。銀行說,你沒拿到貸款是因為抵押物不足。這話可能是真的,也可能是他們不喜歡你的宗教。從這一句解釋裡,你分辨不出來。這件事跟決策是人做的還是機器做的無關。

所以他要的東西得能來回對話,一句解釋撐不住:你給了這個理由,那如果當時是另一種情況呢?我要改什麼才能拿到?

第二層是測試。單看自己這一個案子,你沒法判斷決策依據是抵押物還是膚色。但把所有人的案子放在一起看,模式就出來了。

如果我只盯著自己這一個案例,我什麼也看不出來。但如果我看所有案例,我就能檢測出一個模式。(彼得·諾維格)

第三層是對抗測試,這一層最能說明問題。影象識別一度被認為接近人類水平,直到對抗樣本出現。在圖上加一點人類完全看不出的擾動,模型就徹底判斷錯了。諾維格說,人類當然也有類似的漏洞,比如那條裙子到底是什麼顏色,大家誰也說不清。但人類被攻擊的方式和機器被攻擊的方式完全不同。

貓是空間裡一條極細的線

他把問題歸到一件事上:我們被低維隱喻騙了。

翻開教材,你會看到一張圖,貓在這邊,狗在那邊,中間有一小塊模糊地帶分不清。如果你信了這張圖,你會覺得,我們基本上搞定了,對抗樣本大概就那麼幾個特例。

真實的幾何差得很遠。我們面對的是百萬維空間,貓是從原點出發延伸到某個瘋狂方向的一條極細的線。你往任何方向偏一點,就掉進了無人區,不知道會發生什麼。

這個比喻解釋了為什麼對抗樣本屬於結構性現象,修修補補解決不了。高維空間裡,一條曲線周圍幾乎全是空白。模型只見過那條線上的點,線外一毫米的地方它沒有任何依據,但它照樣會給出一個高置信度的答案。

順帶說一句他對人和機器雙重標準的觀察。你和訪談者素未謀面,坐在一起聊了一個小時,你預設對方不會突然失控,這種信任建立得非常快。而對 AI 系統,我們的預設姿態是懷疑,它必須靠大量工作證明自己配得上一點點信任。

他引用了博物學家馬克·莫菲特(Mark Moffett)的說法:人類最了不起的地方是,你走進一家咖啡店,周圍全是從未見過的人,你們不會互相殘殺。黑猩猩做不到這一點。如果一隻黑猩猩遇到不屬於自己族群的物件,尤其旁邊還有好吃的,事情會很糟。人類學會了共處,雖然我們仍然打仗,仍然做可怕的事,但大體上學會了。

這件事對 AI 同樣重要。但諾維格在這裡加了一個限定:很多被算作 AI 的問題,主要變數落在通訊技術上。我們能建立起這些系統,前提是我們能收集資料、能觸達全世界的人。這個變化比演算法本身更大。

十六萬人報名,完成率是個假指標

諾維格在 Udacity 上開的 AI 入門課,有十六萬人註冊,是最早一批 MOOC 的成功案例。他從中得到的最大教訓,和他進去時的預期相反。

進去的時候他以為挑戰在資訊:只要我把要教的東西想清楚、講明白,我的工作就完成了,好事自然會發生。做完課程他發現,資訊當然要有,但真正重要的是動機。學生不堅持學下去,內容再好也沒用。

關於完成率,他的態度很直接。他本人大概報過五十門課,一門都沒學完,但他得到了想要的東西,因為他本來就沒打算學完,只是想看看這個主題,或者看看別人怎麼講這門課。

我大概開過五十門不同的課,沒一門是學完的。但我從中得到了我想要的,因為我從來沒打算學完。(彼得·諾維格)

他也承認,最早這批課吃到了外部動機的紅利:這是新東西,能參與其中本身就讓人興奮,學生自帶動力。而那些最需要幫助的人,恰恰缺乏這種動力,也看不出堅持下來對自己有什麼好處。線上教育真正還沒解決的問題就在這裡,光靠技術不夠,還得有社群,需要把人真的聚在一起,有些環節必須在物理空間發生。

線上和線下的真正區別,不在螢幕

訪談者提了一個觀察:自己如果不是被按在教室裡,無聊到犯困,也得硬著頭皮熬過那些極難的計算機課程,大概學不到今天這麼多。

諾維格的拆解很乾脆。這裡面混著兩件事。一件是物理位置,另一件是承諾和歸屬。你在教室裡堅持下來,一半是因為看到旁邊所有人都在受同樣的苦,另一半是因為你交了學費,父母、同學、整個社會都預期你堅持下去。

這兩件事可以分開。你完全可以設想:學費很貴,所有人都知道你在讀,然後你在自己房間裡,同學在各自的房間裡。物理離散,承諾完整。反過來,坐在同一間教室裡,心思全在外面的也大有人在。

所以決定成敗的變數落在承諾上,跟螢幕沒什麼關係。當然,課後在教室外面碰到同學隨便聊兩句,那種非正式交流很重要,既維持動機,也是真正重要的學習發生的地方。等頻寬更高、AR/VR 更成熟,這部分也許能遠端實現。

至於斯坦福、MIT 會不會全面轉向線上,他的判斷是不會。這些學校在實體校園上有巨大的投入,財務上和文化上都有慣性。而且有些東西真的沒法虛擬化:計算機專業有臺電腦有紙筆就能幹活,但生物實驗室裡的裝置你家裡沒有。

學程式設計不需要十年,也不用先學語法

2001 年諾維格寫過一篇流傳很廣的文章《十年學會程式設計》(Teach Yourself Programming in Ten Years),是對著市面上那些“21 天精通 XX”的書寫的。多年過去,他的看法有調整。

當時他腦子裡想的是成為職業軟體工程師,那確實是個需要終身學習的行當。但現在有大量場景,程式設計只是解決問題的手段之一,你不需要達到職業水準。

一個生物學家、物理學家,甚至歷史學家,手上有一些資料,想從中問出一個問題。這種情況不需要十年,有很多捷徑。

關於教小孩程式設計,他覺得方向對,但話術該改。程式碼本身不重要。他不在乎你會不會 JavaScript 的語法,也不在乎你能不能在視覺化語言裡把積木拼起來。他在乎的是你能不能分析一個問題,想出解法,建立一個模型,跑起來,測試,看結果,判斷結果是否合理,然後再提問、再回答。

練的是建模和解決問題,程式碼只是工具。學會了也不為了拿去寫程式碼,為了拿它去回答自己關心的問題。

他在這裡講了一段自嘲。和年輕同事做專案,同事說有個新包能解決這個問題。諾維格開始讀文件,兩小時後,同事回來說搞定了:下載、安裝、試了幾個呼叫,第一個不行,第二個成了。諾維格還有一堆問題,這東西內部怎麼工作的,那個引數什麼意思?同事說,管它呢。我不需要理解整個東西,我的問題解決了。這個包很大很複雜,剩下的我不懂,但我拿到了正確答案。

我很難進入那種心態。我想把整個東西搞明白,如果它附了手冊,我就該去讀。但那不一定是對的做法。我得學著對不確定性和“不知道全部”更自在一點。(彼得·諾維格)

他自己把這條光譜的兩端點了名:一端是高德納(Donald Knuth),你要說任何關於一個問題的話,得先下到機器碼和彙編;另一端是他組裡二十歲的學生,幾小時能解決他可能要花幾周的問題,因為他會先去讀手冊。

從製造到組裝

抽象層次一直在往上走。你不需要懂機器學習的內部原理,也能用現成的框架做出很多東西。這讓“專家”的定義發生了變化。

諾維格說,我們本來就不該把焦點放在“程式設計師”這個身份上。技能只是手段,結果才算數。我們建起了這樣一個生態,你要做成事,就得自己寫程式碼。他剛入行的時候,庫函式里有個開方就差不多了,其他全得從零造。後來生態長起來了,你想要的東西大部分都能下載到。

現在已經不是製造,更多是組裝。(彼得·諾維格)

這個轉變在招聘上也能看到。谷歌早期面試,問題本質上是在問:這個人離傑夫·迪恩(Jeff Dean)有多近?大多數人差得遠,就錄取那些差得不那麼遠的。結果是招進來一批高度同質的優秀程式設計師。

公司長大以後,這個標準就不對了,不該所有人都一樣。於是開始招生物學家進健康方向,招物理學家、機械工程師,招社會科學家和人類學家,不同背景帶來不同技能。

至於他本人做程式碼審查時看什麼,答案很具體:看設計的延展性。這個 API 解決了眼下的問題,但它以後要往哪走?還有誰會來呼叫它?你怎麼讓別人更容易用?這是設計問題,也是文件問題,但根子在設計上。設計對了,文件好壞人們總能摸索出來;設計錯了,文件再好也難用。

他自己作為程式設計師最大的變化,是不再那麼在乎效率的細枝末節。90 年代寫書時,他演示怎麼實現一個物件系統:每個物件是個雜湊表,查方法,這樣就行。他特意宣告,真正的 Common Lisp 物件系統複雜得多,有各種效率考量,這個只是玩具,實際沒人會這麼幹。結果 Python 基本上就是照他說的做的,物件就是字典,加了點小技巧。

80 年代會慢上一百倍的寫法,今天對幾乎所有場景都夠快。真正該計算的是專案完成的總時間,而這裡面絕大部分是程式設計師的時間。稍微低效一點,但更容易理解和修改,那就是正確的取捨。

半頁紙定義一門語言

Lisp 美在哪?諾維格的答案是簡潔。半頁紙就能把整門語言定義完,你能把它整個裝進腦子裡。別的語言有一兩百條語法規則,你的大腦裝不下。

有人會說,那不就太簡單了嗎,我要做的事那麼多。他的回答是:不,我們只給你八條左右的語法規則,剩下的你自己定義。

這就是他說的最強大的那個想法:從我的問題和我的資料出發,造一門為這個問題和這份資料量身定做的語言,然後讓 Lisp 去定義它。你同時是這門語言的使用者和設計者,程式碼和問題之間能貼得更緊。

為什麼沒普及?他給了兩個原因。

一個是社會性的。Lisp 是為單個程式設計師或小團隊設計的,前提是這個程式設計師品味夠好,做語言設計時能做出好選擇。做對了很棒,做錯了會傷到自己,而且團隊裡其他人很難看懂。專案人數一多,就撐不住了。而整個行業恰好長過了這個規模。

另一個是括號。流傳的玩笑是 Lisp 的全稱是“大量煩人的愚蠢括號”(Lots of Irritating Silly Parentheses),他自己的版本是“Lisp 語法純粹”(Lisp Is Syntactically Pure),你只需要括號和原子。

他講了一個學生的故事。書寫於 90 年代,正文用虛擬碼,附錄配 Lisp,因為那是當時 AI 的語言。有學生抱怨看不懂虛擬碼和 Lisp 怎麼對應。實際上兩者符號一一對應,唯一區別就是括號。諾維格由此得出結論:對某些人來說,左括號超過一定數量,大腦就關機了。

於是他決定書裡不能只有 Lisp。一門課只有十來周,不能花兩週教括號。他需要另一門語言,當時最流行的是 Java,但 Java 太囉嗦,做不到和虛擬碼一一對應。於是他做了一輪調研,找最像自己虛擬碼的語言,答案是 Python。

不知道為什麼,我設計虛擬碼的時候,好像隔空抄了 Guido 的作業。那時候我還沒聽說過 Python。(彼得·諾維格)

他的 GitHub 倉庫 pytudes 就是這些謎題和練習的積累,先有 Udacity 那門用 Python 講問題求解的課,然後一直往下寫,純粹因為好玩。

搜尋是博弈,編目錄沒這麼麻煩

2001 到 2005 年,諾維格在谷歌做搜尋質量總監,公司規模每年翻倍。那段時間的挑戰,本質上是定義什麼叫“正確答案”,實現它,保證效率,然後持續測試。

好答案的意思是:使用者敲進去幾個關鍵詞,返回結果的排序符合他們想要的程度,第一個點選的大機率就是他真正在找的。指標有一堆,有的盯第一次點選,有的盯整頁,有的盯前三名。他們還會切分出某類做得不好的查詢,專門去修。

早期有個認知轉變很關鍵。一開始他們以為自己是圖書館的卡片目錄:書在那兒,我們在旁邊,只負責如實反映。後來意識到,每次我們改動,站長們也會跟著改,這是個博弈。你不僅要判斷這一步對自己是否有利,還要判斷對手的下一步會把局面帶到哪裡,如果結果更糟,這一步就不該走。

他們也確實改變了網路的形狀。早年拉里和謝爾蓋有 PageRank 論文,喬恩·克萊因伯格(Jon Kleinberg)有 hubs and authorities 模型:網上有大量“我的狗狗相關連結”這樣的導航頁,指向那些被連結最多的權威頁面。現在沒人做導航頁了,谷歌把這個功能接管了。

訪談者問他當年有沒有預見到網際網路會變成今天這樣。他說自己預測未來一向不準。80 年代做研究生時用 ARPANET,後來有人提議商業化,搞成網際網路,還有位參議員戈爾覺得這主意不錯。他當時的想法是:算了吧,你不可能指望商業公司搞懂這種技術,他們永遠做不成。有個 .com 域名,但成不了氣候。

所以我錯了,戈爾是對的。(彼得·諾維格)

人類水平不是終點,甚至算不上目標

關於通用智慧,諾維格的第一句話是:人類水平的智慧沒有單一含義,它是一堆不同的任務和能力。第二句是:它也不該是目標。

他說得很形象:我不會想要一個只能做到人類水平乘法的計算器,那是倒退。很多能力上我們該瞄準遠超人類;另一些能力上,人類水平是個合適的門檻;還有一些,既然人類已經能幹,就別費勁了。

他關心的是工具是否有用。有些場合,達到人類水平正好是讓工具變得有用的那道坎。個人助手就是典型:你希望能像和人說話一樣和它對話。而整個行業還沒搞清這類產品的正確模型。現在你能問天氣,能點歌,再問五六件事就到頭了,談不上任何深度的、有意義的連線。

能不能和人一樣,從問天氣跨到建立深層連線?他提到了電影《她》(Her)。有人問他,這片子像哪部電影?他的答案是《萬世魔星》(Life of Brian),跟科幻完全沾不上邊。共同點是,人渴望相信某種不一定是真的東西。

孩子會愛上自己的泰迪熊,而泰迪熊幾乎沒有任何互動性。那全是我們把自己的感情投射到物件上。我們就是喜歡這麼幹,所以我們會一直這麼幹。(彼得·諾維格)

他還補了一個例子:搞自動駕駛的人告訴他,很多人對自己的車投入了很深的感情。門檻真的不高,到狗的水平就夠了。

那什麼是好的智慧測試?象棋、星際爭霸,都挺酷。短對話也很重要,但很多測試太容易糊弄,聊天機器人聊著聊著,永遠不進入一個必須暴露深度的地方。

至於圖靈測試,他認為圖靈本人如果活著,大概會說“我沒那麼當真”。他的解讀是:圖靈的重點在於“有個測試這件事本身是對的”,至於對話是不是好測試,那在其次。與其讓哲學家爭論 AI 是否可能,不如設一個測試,讓結果來回答。這個測試不必是對話,隨著技術演進不斷提出更好的測試,才是正路。

真正該擔心的,跟終結者沒關係

關於存在性風險,他的態度很明確:不擔心機器人末日和終結者場景,但擔心幾件具體的事。

第一是就業。我們能不能反應得足夠快。今天已經能看到很多人對收入分配不滿,自動化可能加速這類問題。

第二是武器化。強大的技術總可以被當武器用,機器人、無人機都是。而且很多威脅根本不需要 AI。他反問:自主無人機和 CRISPR 技術普及,哪個更糟?很難說。

訪談者問,你總體上樂觀嗎,技術會緩解這些威脅,還是製造新問題?他的回答很剋制:不知道,未來難預測。作為社會我們活過了核彈,但只有活下來的社會才有資格做這場對話,所以這可能只是倖存者偏差。

至於接下來值得做的事,他點了幾個方向。

一是對話助手,把常識推理和資料的力量結合起來。

二是程式設計工具。不只是讓現有的框架更好用、讓更多人能用,還包括把機器學習用到傳統程式設計本身。

你去谷歌搜尋,拼錯一個詞,它會說“您是不是要找”。能做到這一點,是因為大量其他人犯過同樣的錯然後改正了。我們也應該能進到程式碼庫和 bug 修復記錄裡,當我敲下一行程式碼時,它告訴我:你是不是想寫這個?你今天寫這行,明天大概會去寫這個修復。(彼得·諾維格)

三是讓這些能力覆蓋到更廣的人群。這幾件事聽起來都不宏大,但每一件都有明確的下一步。

整場對話裡,諾維格幾乎沒有做過任何關於未來的強斷言。他反覆說不知道,反覆把問題從技術層面挪到制度層面:公平性衝突要靠公共討論定取捨,注意力市場要靠改激勵結構,線上教育的瓶頸在動機和社群,AI 的風險主要在就業和武器。這些答案不炫目,但每一句都指向具體可做的事。

補一句他自己的方法論。訪談者問他,作為寫教材的人,是不是有一種“把整個領域裝進腦子”的衝動。他的回答是承認這種衝動存在,然後承認它不一定是對的做法。這種自覺,可能比任何一個具體結論都更值得學。一個人寫了二十多年領域全景教材,最後講的是:別急著讀完整本手冊,先把問題答了。

  • 做涉及人的預測系統時,先明確你最佳化的是校準還是誤差均等。這兩個目標在數學上無法同時滿足,把沒選的那個寫進文件,別假裝兩個都做到了。
  • 別隻交一句解釋,留出對話的入口。貸款、拒信、風控決策,使用者真正需要的是“如果我當時是另一種情況會怎樣”,事後歸因解決不了這個問題。
  • 評估模型時做群體切片測試。單看一個案例看不出偏見,看全部案例才能發現模式,這是可操作的最小動作。
  • 把對抗測試當成必做項。高維空間裡模型沒見過的區域佔絕大多數,它在那些地方照樣會給出高置信度答案。
  • 教人程式設計時,把重點放在建模和驗證上。能不能分析問題、建模型、跑起來、判斷結果是否合理,比會不會語法重要得多。
  • 算總賬,別隻算 CPU 時間。寫得更慢但更好懂、更好改的程式碼,在今天的硬體條件下通常是正確取捨。
  • 判斷技術影響時,先問主要變數是不是 AI。很多被歸到 AI 頭上的變化,真正的驅動力是通訊能力和資料觸達。
  • 做評估時保留對“完成率”這類指標的不信任。使用者可能只想看看,不想學完,把他們的真實動機當成設計前提,而不是當成失敗。
文稿由本站用語音識別模型(基於官方釋出音訊)機器轉寫,可能有識別錯誤,人名與數字請以音訊為準。
[00:00:00] The following is a conversation with Peter Norvig, he's the director of research at Google and the co-author with Stuart Russell of the book Artificial Intelligence, A Modern Approach that educated and inspired a whole generation of researchers, including myself, to get into the field of artificial intelligence. This is the Artificial Intelligence podcast. If you enjoy it, subscribe on YouTube, give it five stars and iTunes support on Patrón or simply connect with me on Twitter. Allex Friedman spelled F.R. Idi Amin. [00:00:32] And now here's my conversation with Peter Norvig. [00:00:54] Most researchers in the aid community, including myself, own all three editions red, green and blue of the artificial intelligence and modern approach. The field defining textbook book made people aware that you wrote with Stuart Russell. How is the book changed and how have you changed in relation to it? From the first edition to the second to the third and now fourth edition as you work on it? [00:01:17] Yeah, so it's been a lot of years, a lot of changes. One of the things changing from the first to maybe the second or third was just the rise of computing power. Right. So I think in the in the first edition we said here's predicate logic. But that only goes so far because pretty soon you have millions of short little pedicured expressions and they couldn't possibly fit in memory. So we're going to use first order logic that's more concise. [00:01:52] And then we quickly realized, oh, predicate logic is pretty nice because there are really Farsad solvers and other things, and look, there's only millions of expressions and that fits easily into memory or maybe even billions fit into memory now. So that was a change of the type of technology we needed just because the hardware expanded even to the second additional resource constraints from Lucene significantly second down. And that was not really to thousands. Second edition. Right. So in ninety five was a first and then two thousand twenty one or so. [00:02:27] And then moving on from there, I think we're, we're starting to see that again with the use and then more specific type of machinery like the DESPUES and you're seeing custom ASICs and so on for deep learning. So we're seeing another advance in terms of the hardware. Then I think another thing that we especially notice this time around is in all three of the first editions, we kind of said, well, we're going to find Aiyaz maximizing expected utility and you tell me your utility function. [00:03:02] And now we've got 27 chapters where the cool techniques for how to optimize that. I think in this edition, we're saying more, you know what, maybe that optimization part is the easy part and the hard part is deciding what is my utility function, what do I want? And if I'm a collection of agents or society, what do we want as a whole? [00:03:25] So you touch that topic in this edition, you get a little bit more into utility. Yeah, that's really interesting. On a technical level, we're almost pushing the philosophical I guess it is philosophical, right? So we've always had a philosophy chapter, which I was glad that we were supporting. [00:03:43] And now it's less kind of the, you know, Chinese room type argument and more of these ethical and societal type issues. So we get into the issues of fairness and bias and and just the issue of aggregating utilities. [00:04:02] So how do you encode human values into a utility function? Is there something that you can do purely through data and a learned way, or is there some systematic? Obviously, there's no good answers yet. There's just beginnings to this, to even opening the. [00:04:19] So there is no one answer. Yes, there are techniques to try to learn that. So we talk about inverse reinforcement learning. Right. So reinforcement learning, you take some actions, you get some rewards and you figure out what actions you should take, an inverse reinforcement learning. You observe somebody taking actions and you figure out well, that this must be what they were trying to do. If they did this action, it must be because they wanted. [00:04:47] Of course, there's restrictions to that, right? So lots of people take actions that are self destructive, whether they're suboptimal in certain ways. So you don't want to learn that. You want to somehow learn the the perfect actions rather than the ones they actually take. So. So that's a challenge for that field. Then another big part of it is just kind of theoretical of saying, what can we accomplish? And so you look at like this this work on the programs to predict recidivism and decide, you know, who should get parole or who should get bail or whatever, and how are you going to evaluate that? [00:05:31] And one of the big issues is fairness across protected classes, protected classes being things like sex and race and so on. And so two things you want is you want to say, well, if I get a score of, say, six out of ten, then I want that to mean the same, whether no matter what race I'm on. Yes, right. So I want to have a 60 percent chance of reoccurring regardless. And the makers of the one of the makers of a commercial program to do that. [00:06:05] That's what we're trying to optimize. And look, we achieve that. We've we've reached that kind of balance. And then on the other side, you also want to say, well, if it makes mistakes, I want that to affect both sides of the protected class equally. And it turns out they don't do that right? So they're they're twice as likely to make a mistake that would harm a black person over a white person. So that seems unfair. [00:06:33] So you'd like to say, well, I want to achieve both those goals. And then it turns out you do the analysis and it's theoretically impossible to achieve those goals. So you have to trade them all one against the other. So that analysis is really helpful to know what you can aim for and how much you can get. You can't have everything, but the analysis certainly can't tell you where should we make that trade off point. [00:06:55] But nevertheless, then we can, as humans deliberate where that trade off should be. At least we now we're arguing in an informed way. [00:07:02] We're not asking for something impossible. We're saying here's where we are and here's what we aim for. And this strategy is better than that strategy. So that's, I would argue, is a really powerful and really important first step. But it's a doable one, sort of removing undesirable degrees of bias in in systems in terms of protected classes. And there's something I listen to your commencement speech or there's some fuzzier things like you mentioned, Angry Birds, you wouldn't do want to create systems that feed the dopamine enjoyment that feed that optimize for you returning to the system, enjoying the moment of playing the game, of getting likes or whatever this kind of thing or some kind of long term improvement. [00:07:51] Right. [00:07:52] Are you even thinking about that, that that's really going to solve Galeria? [00:08:00] I think that's a really important issue to start really thinking about that. I don't think about that as a as an A.I. issue as much. But as you say, you know, the point is we've built this society in this infrastructure where we say we have a marketplace for attention and we've decided as a society that we like things that are free. And so we want all apps on our phone to be free. And that means they're all competing for your attention. [00:08:32] And then eventually they they make some money, some way through ads or in-game sales or whatever. But they can only win by defeating all the other apps, by stealing your attention and. We built a marketplace where it seems like they're working against you rather than working with you. And I'd like to find a way where we can change the playing field. So you feel more like what these things are on my side. Yes, there, let me have some fun in the short term, but they're also helping me in the long term rather than competing against me. [00:09:11] And those aren't conflicting objectives. They're just the incentives, the direct current incentives as we try to figure out this whole new world seem to be on the easier part of that, which is feeding the dopamine rush. Right. [00:09:26] But for me, take a quick step back at the beginning of the artificial intelligence, the modern approach book writing. So here you are in the 90s when you first sat down with Stuart to write the book to cover an entire field, which is one of the only books has successfully done that for. Yeah. And actually in a lot of other computer science fields, you know, it's a it's a it's a huge undertaking. So it must have been quite daunting. [00:09:57] What was that process like? Did you envision that you would be trying to cover the entire field? [00:10:03] Was there systematic approach to it that was more step by step? How how did it feel? So I guess it came about, you know, go to lunch with the other faculty at Berkeley and we'd say, you know, the field is changing. Seems like the current books are a little bit behind. Nobody's come out with a new book recently. We should do that. And everybody said, yeah, yeah, that's a great thing to do, and we never did anything right. [00:10:27] And then I ended up heading off to industry. I went to Sun Labs. So I thought, well, that's the end of my possible academic publishing career. But I get to do it again at a conference like a year later and said, you know, that book we were always talking about, you guys must be half done with it by now. Right? And he said, well, we keep talking. We never do anything. So I said, well, you know, we should do it. [00:10:52] And I think the reason is that we all felt it was a time where the field was changing. And that was in two ways. So, you know, the good old fashioned A.I. was based primarily on boolean logic, and you had a few tricks to deal with uncertainty, and it was based primarily on knowledge engineering that the way you got something done is you went out and you interviewed an expert and you wrote down by hand everything they knew. And we saw in 95 that the field was changing in in two ways, one, we're moving more towards probability rather than boolean logic, and we're moving more towards machine learning rather than knowledge engineering. [00:11:38] And the other books hadn't caught that way if they were still in the more in the in the old school, although certainly they had part of that on the way. But we said if we start now completely taking that point of view, we can have a different kind of book. And we were able to put that together. [00:11:57] And it was literally the process, if you remember. Well, did you start writing a chapter? Did you outline. Yeah, I guess I guess we did an outline and then we sort of assigned chapters to each person. At the time I had moved to Boston and Stuart was in Berkeley, so basically we did it over the Internet and, you know, that wasn't the same as doing it today and, you know, dial up lines and letting in. [00:12:29] And, you know, you you don't let it into one shell and you type cat file name and you hoped it was captured at the other end. [00:12:39] And and certainly you're not sending images and figures back and forth. [00:12:43] Right. Right. I didn't work, but, you know, did you anticipate where the field would go from that day from from the Niños? [00:12:54] Did you see the growth into learning based methods, into dangerous methods that followed in the future decades? [00:13:03] We certainly thought that learning was important. I guess we we missed it as being as important as it as it is today. We miss this idea of big data. We missed it. The idea of deep learning hadn't been invented yet. We could have taken the book from a complete machine learning point of view right from the start. We chose to do it more from a point of view. We're going to first develop the different types of representations and we're going to talk about different types of environments. [00:13:40] Is it fully observable or partially observable and is it deterministic or stochastic and so on. And we made it more complex along those axes rather than focusing on the machine learning axis first. Do you think, you know, there's some sense in which the deep learning craze is extremely successful for a particular set of problems? And, you know, eventually it's going to, in the general case, hit challenges. So in terms of the difference between perception systems and robots that have to act in the world, do you think we're going to return to a modern approach type breadth in addition five and six? [00:14:25] Yeah. And in future decades, do you think deep learning will take its place as a chapter in this bigger is in its bigger view? [00:14:34] Well, I yeah, I think we don't know yet how it's all going to play out. So in the new edition, we have a chapter on deep learning. We got Ian Goodfellow to be the guest author for that chapter. So he said he could condense his whole deep learning book into one chapter. I think he did a great job. We were also encouraged that he you know, we gave him the old neural net chapter and said, have fun with it, modernise that. [00:15:04] And he said, you know, half of that was OK. That certainly there's lots of new things that have been developed, but some of the core was still the same. I think we'll gain a better understanding of what you can do there. I think we'll need to incorporate all the things we can do with the other technologies, right. So deep learning started out with convolutional networks and very close to perception. And it's since moved to be to be able to do more with actions and some degree of longer term planning. [00:15:45] But we need to do a better job with the representation and reasoning and one shot learning and so on. And I think we don't know yet how that's going to play out. [00:15:57] Do you think looking at the some success, but certainly eventual demise, the partial demise of experts, the symbolic systems in the 80s, do you think there is kernels of wisdom in the work that was done there with logic and reasoning and so on that? Will rise again, in your view, so certainly I think the idea of representation and reasoning is crucial that, you know, sometimes you just don't have enough data about the world to learn Denovo. So you've got to have some idea of representation, whether that was programmed in or told or whatever, and then be able to take steps of reasoning. [00:16:45] I think the problem with the good old fashioned A.I. was one we tried to base everything on these symbols that were atomic. And that's great if you're like trying to define the properties of a triangle, right. Because they have necessary and sufficient conditions. But things in the real world don't. The real world is is messy and doesn't have sharp edges and dynamic symbols do. So that was a poor match. And then the other aspect was that the reasoning was universal and applied anywhere, which in some sense is good, but it also means there's no guidance as to where to apply. [00:17:31] And so, you know, you started getting these paradoxes like, well, if I have a mountain and I remove one grain of sand, then it's still a mountain. And but if I do that repeatedly, at some point, it's not right. And with logic, you know, there's nothing to stop you from applying things repeatedly, but maybe with something like deep learning and I don't really know what the right name for it is, we could separate out those ideas. [00:18:02] So, one, we could say, you know, a mountain isn't just an atomic notion. It it's some sort of something like word embedding that has a more complex representation. Yeah. And secondly, we could somehow learn, yeah, there's this rule that you can remove one grain of sand and you can do that a bunch of times, but you can't do it in near infinite amount of times. But on the other hand, when you're doing induction on the integers, sure. [00:18:32] Then it's fine to do it an infinite number of times. And if we could somehow we have to learn when these strategies are applicable rather than having the strategies be completely neutral and available everywhere. [00:18:47] Any time you use your networks, any time you learn from data, form representation from data and automate away, it's not very explainable as to or it's not introspective to us humans in terms of how this neural network sees the world where why does it succeed so brilliantly and so many in so many cases and failed so miserably in surprising ways and small. So what do you think is this is. [00:19:16] The future there can simply more data, better data, more organized data solve that problem, or is there elements of symbolic systems that need to be brought in which are a little bit more explainable? [00:19:28] Yeah, so I prefer to talk about trust and validation and verification rather than just about explain ability that I think explanations are one tool that you use towards those goals. And I think it is an important issue that we don't want to use these systems unless we trust them and we want to understand where they work and where they don't work and in an explanation can be part of that. Right. So I apply for a loan and I get denied. I want some explanation of why. [00:20:02] And you have in Europe, we have the GDP that says you're required to be able to get that. But on the other hand, the explanation alone is not enough, right? So. You know, we were used to dealing with people and with organizations and corporations and so on, and they can give you an explanation and you have no guarantee that that explanation relates to reality. All right. So the bank tell me, well, you didn't get the loan because you didn't have enough collateral. [00:20:32] And that may be true or it may be true that they just didn't like my religion or or something else. I can't tell from the explanation. And that's that's true whether the decision was made by a computer or by a person. I do want to have the explanations and I want to be able to have a conversation to go back and forth and said, well, you gave this explanation, but what about this and what would have happened if this had happened and what I need to change that. [00:21:04] So I think the conversation is a better way to think about it than just an explanation as a single output. And I think we need testing of various kinds. Right. So in order to know. Was the decision really based on my collateral or was it based on my religion or skin color or whatever? I can't tell if I'm only looking at my case, but if I look across all the cases, then I can detect a pattern. All right, so you want to have that kind of capability? [00:21:35] You want to have these adversarial testing, right. So we thought we were doing pretty good at object recognition and images. He said, look, we're at pretty close to human level performance on image and so on. And then you start seeing these adversarial images and you say, wait a minute, that part is nothing like human performance. You can mess with it really easily. You can mess with it really easily. Right. And yeah, you could do that to humans, too. [00:22:01] Right. So in a different way, perhaps humans don't know what color the dress was. Right. And so they're vulnerable to certain attacks that are different than the attacks on the machines. But the you know, the the machines are so striking, they really change the way you think about what we've done. Right. And the way I think about it is I think part of the problem is we're seduced by our low dimensional metaphors, right? Yeah. [00:22:30] So, you know, you like that phrase. You look in in a textbook and you say, OK, now we've mapped out the space. You know, Cat is here and Dog is here. And maybe there's a tiny little spot in the middle where you can't tell the difference. But mostly we've got it all covered. And if you believe that metaphor, then you say, well, we're nearly there. And, you know, there's only going to be a couple of adversarial images. [00:22:55] But I think that's the wrong metaphor. And what you really say is it's not a 2D flat space that we've got mostly covered. It's a million dimension space and cat is this string that goes out in this crazy bath. And if you step a little bit off the path in any direction, you're in nowhere land and you don't know what's going to happen. And so I think that's where we are and now we've got to deal with that. So it wasn't so much an explanation, but it was an understanding of what the models are and what they're doing. [00:23:27] And now we can start exploring. How do you fix that? Yeah, validating the robustness of the system. So on. But take you back to the this this word trust. Do you think we're a little too hard on our robots in terms of the standards we apply? [00:23:42] So, you know of there's a dance, there's there's there's a dance and non-verbal and verbal communication between humans. You know, if we apply the same kind of standard in terms of humans, you know, we trust each other pretty quickly. [00:24:00] I you know, you and I haven't met before. And there's some degree of trust, right. That nothing is going to go crazy wrong. And yet to A.I., when we look at our systems where we seem to approach skepticism, always, always. [00:24:15] And it's like they have to prove through a lot of hard work that they're even worthy of even an inkling of our trust. What do you what do you think about the how how do we break that very close that gap? [00:24:27] I think that's right. I think that's a big issue. Just listening to my friend, Mark Moffett is a naturalist and he says the most amazing thing about humans is that you can walk into a coffee shop or a busy street in a city and there's lots of people around you that you've never met before and you don't kill each other. Yeah, he says chimpanzees cannot do that. Yeah, right. Right. If a chimpanzee is in a situation where here's some that aren't from my tribe. [00:25:02] Bad things happen, especially in a coffee shop as delicious food around, you know. Yeah, yeah, but but we humans have figured that out, right. And, you know, for the most part, for the most part, we still go to war. We still do terrible things. But for the most part, we've learned to trust each other and live together. So that's going to be important for our A.I. systems as well. And also, I think in a lot of the emphasis is on A.I., but in many cases it is part of the technology but isn't really the main thing. [00:25:36] So a lot of what we've seen is more due to communications technology than A.I. technology. Yeah, you want to make these good decisions. But the reason we're able to have any kind of system at all is we've got the communications that we're collecting the data and so that we can reach lots of people around the world. I think that's a bigger change that we're dealing with. [00:26:01] Speaking of reaching a lot of people around the world and instead of education, you've got one of the many things in terms of education you've done. You taught the intro to Artificial Intelligence Course that signed up one hundred thousand hundred sixty thousand students. There's one of the first successful example of and massive of a massive open online course. [00:26:23] What did you learn from that experience? What do you think is the future of Moakes of education online? [00:26:29] Yeah, it was a great fun doing it, particularly being right at the start. Just because it was exciting and new, but it also meant that we had less competition, right. So one of the things you hear about well, the problem with Moakes is the completion rates are so low. So it must be a failure. And and I got to admit, I'm a prime contributor. I probably started 50 different courses, but I haven't finished. But I got exactly what I wanted out of them because I had never intended to finish them. [00:27:02] I just wanted to dabble in a little bit either to see the topic matter or just to see the pedagogy of how they do in this class. [00:27:11] So I guess the main thing I learned is when I came in, I thought the challenge was information, saying if I could just take the stuff I want you to know and I'm very clear and explain it, well, then my job is done and good things are going to happen. And then in doing the course, I learned, well, yeah, you got to have the information. But really, the motivation is the most important thing that if students don't stick with, it doesn't matter how good the content is. [00:27:46] And I think being one of the first classes, we were helped by sort of exterior motivation. So we tried to do a good job making it enticing and setting up ways for the community to work with each other to make it more motivated. But really, a lot of it was, hey, this is a new thing and I'm really excited to be part of a new thing. And so the students brought their own motivation. And so I think this is great because there's lots of people around the world who have never had this before, you know, would never have the opportunity to go to Stanford and take a class or go to MIT or go to one of the other schools. [00:28:27] But now we can bring that to them. And if they bring their own motivation, they can be successful in a way they couldn't before. [00:28:35] But that's really just the top tier of people that are ready to do that, the rest of the people just don't see or don't have the motivation and don't see how if they push through and we're able to do it, what advantage that would get them. So I think we got a long way to go before we're able to do that. And I think it'll be some of it is based on technology, but more of it's based on the idea of community that you got to actually get people together. [00:29:03] Some of the getting together can be done online, I think some of it really has to be done in person to be able in order to build that type of community and trust. [00:29:13] You know, there's an intentional mechanism that we've developed a short attention span, especially younger people, because sort of shorter and shorter videos online. There's a whatever the the way the brain is developing now. [00:29:30] And with people that have grown up with the Internet, they have quite a short attention span. So and I would say I had the same when I was growing up to probably for different reasons. So I probably wouldn't learn as much as I have if I wasn't forced to sit in a physical classroom, sort of bored, sometimes falling asleep, but sort of forcing myself through that process, sometimes extremely difficult computer science courses. [00:29:56] What's the difference in your view between in-person? Education experience, which you, first of all yourself had and you have taught, and online education and how do we close that gap if it's even possible? Yeah, so I think there's two issues. [00:30:13] One is whether it's in person or online. So it's sort of the physical location and then the other is kind of the affiliation. Right. So. You stuck with it in part because you were in the classroom and you saw everybody else was suffering in the same way you were, but also because you were enrolled, you had paid tuition, sort of everybody was expecting you to stick with it. [00:30:42] Society, parents. Yeah, because peers. Right. And so those are two separate things. I mean, you could certainly imagine I pay a huge amount of tuition and everybody signed up and says, yes, you're doing this, but then I'm in my room and my classmates are in different rooms. Right. We could have things set up that way. So it's not just the online versus offline. I think what's more important is the commitment that you've made. [00:31:10] And certainly it is important to have that kind of informal, you know, I meet people outside of class, we talk together because we're all in it together. I think that's really important, both in keeping your motivation and also that's where some of the most important learning goes on. So you want to have that maybe, you know, especially now we start getting into higher bandwidth and augmented reality and virtual reality. You might be able to get that without being in the same physical place. [00:31:42] Do you think it's possible we'll see a course at Stanford, for example, that for students enrolled students is only online in the near future, where literally sort of it's part of the curriculum and there is no. Yeah, so you're starting to see that. I know Georgia Tech has a master's that's done that way. Oftentimes it's sort of they're creeping in in terms of a master's program or sort of further education, considering the constraints of students and so on. [00:32:13] But I mean, literally, is it possible that we, you know, Stanford, MIT, Berkeley, all these places go online only in in the next few decades? [00:32:24] Yeah, probably not, because, you know, they've got a big commitment to a physical campus, right. This there's a momentum that both financially and culturally. Right. [00:32:35] And and then there are certain things that just hard to do virtually. Right. So, you know, we're in a field where if you have your own computer and your own paper and so on, you can do the work anywhere. But if you're in a biology lab or something, you know, you don't have all the right stuff at home. All right. So our field programming, you've also done a lot of you've done a lot of programming yourself. [00:33:07] In 2001, you wrote a great article about programming called Teach Yourself Programming in 10 Years, sort of response to all the books that say teach yourself programming 21 days. So if you were giving advice to someone getting to programming today, this is a few years since you've written that article. What's the best way to undertake that journey? I think there's lots of different ways, and I think programming means more things now. And I guess, you know, when I wrote that article, I was thinking more about. [00:33:39] Becoming a professional software engineer, and I thought that's a sort of a career long field of study, but I think there's lots of things now that people can do where programming is a part of solving what they want to solve without achieving that professional level status. Right. So I'm not going to be going and writing a million lines of code, but, you know, I'm a biologist or a physicist or something or even a historian. And I've got some data and I want to ask a question of that data. [00:34:15] And I think for that, you don't need 10 years. Right. So there are many shortcuts to being able to answer those kinds of questions. And you see today a lot of emphasis on learning to code, teaching kids how to code. I think that's great, but I wish they would change the message a little bit. Right. So I think code isn't the main thing. I don't really care if you know the syntax of JavaScript or if you can connect these blocks together in this visual language. [00:34:50] But what I do care about is that you can analyze a problem. You can think of a solution. You can carry out, you know, make a model, run that model, test the model, see the results, verify that they're reasonable, ask questions and answer them. Right. So it's more modeling and problem solving and you use coding in order to do that. But it's not just learning coding for its own sake. [00:35:20] That's really interesting. So it's actually almost in many cases, it's learning to work with data to extract something useful out of data. So when you say problem solving, you really mean taking some kind of maybe collecting some kind of data set, cleaning it up and saying something interesting about it, which is useful in all kinds of domains. [00:35:39] And, you know, and I see myself being stuck sometimes in kind of the old ways. Right. So, you know, be working on a project, maybe with a younger employee. And we say, oh, well, here's this new package that could help solve this problem and I'll go and I'll start reading the manuals. [00:36:01] And, you know, I'll be two hours into reading the manuals. And then my colleague comes back and says, I'm done. Yeah. You know, I downloaded the package. I installed it. I tried calling some things. The first one didn't work, the second one on work. Now I'm done. And I say, but I have other questions about how does this work and how does that work? And they say, who cares? Right. [00:36:20] I don't need to understand the whole thing. I answered my question. It's a big, complicated package. I don't understand the rest of it, but I got the right answer. And I'm just it's hard for me to get into that mindset. I want to understand the whole thing. And, you know, if they wrote a manual, I should probably read it. And but that's not necessarily the right way. I think I have to get used to. [00:36:43] Dealing with more be more comfortable with uncertainty and not knowing everything. Yeah, so I struggle with the same sort of the spectrum between Donald Knuth. Yeah. [00:36:54] Who's kind of the very you know, before you can say anything about a problem, he really has to get down to the machine code assembly. Yeah. Versus exactly what you said of of several students in my group that, you know, 20 years old and they can solve almost any problem within a few hours. That would take me probably weeks because I would try to, as you said, read the manual. So. [00:37:19] Do you think the nature of masteries, you're mentioning biology sort of outside disciplines, applying programming, but computer scientists, though, over time there's higher and higher levels of abstraction available now. [00:37:35] So with this week, there's the chance of the summit. [00:37:40] So if you're if you're not particularly into deep learning, but you're still a computer scientist, you can accomplish an incredible amount with tends to flow without really knowing any fundamental internals of machine learning. Do you think the nature of mastery is changing even for computer scientists like what it means to be an expert programmer? [00:38:02] Yeah, I think that's true. You know, we never really should have focused on programmers, right? Because it's still it's the skill and what we really want to focus on is the result. So we built this ecosystem where the way you can get stuff done is by programming it yourself. At least when I started, you know, library functions meant you had square root and that was about it, right? Everything else you built from scratch. And then we built up an ecosystem where a lot of times you can download a lot of stuff that does a big part of what you need. [00:38:36] And so now it's more a question of assembly rather than manufacturing. [00:38:44] And that's a different way of looking at problems from another perspective in terms of mastery and looking at programmers or people that reasonable problems in a computational way. So Google, you know, from the hiring perspective, from the perspective of hiring or building a team of programmers, how do you determine if someone is a good programmer or if somebody again. So I want to deviate. I want to move away from the word programmer, but somebody who could solve problems of large scale data and so on. [00:39:16] What's what's how do you build a team like that that the interviewing process? Yeah, and I and I think as a company grows, you get more expansive in the types of people you're looking for. Right. So I think, you know, in the early days we'd interview people. And the question we were trying to ask is, how close are they to Jeff Dean? [00:39:41] And most people, we're pretty far away, but we take the ones that were not that far away. [00:39:46] And so we got kind of a homogeneous group of people who were really great programmers. Then as a company grows, you say, well, we don't want everybody to be the same. They have the same skill set. And so now we're hiring biologists in our health areas and we're hiring physicists and we're hiring mechanical engineers. We're hiring, you know, social scientists and ethnographers and people with different backgrounds who bring different skills. [00:40:18] So you mentioned they you still may partake in code reviews, given that you have a wealth of experience, as Steve also mentioned, that, uh, what areas do you often see and tend to highlight in the code of junior developers of people coming up now, given your background from Lisp to a couple of decades of programming? [00:40:42] Yeah, that's a great question. You know, sometimes I try to look at the flexibility of the design of, yes, you know, this API solve this problem, but where is it going to go in the future? Who else is going to want to call this? And, you know, how are you making it easier for them to do that? [00:41:03] That's a matter of design. It's a documentation. Is it is it sort of an amorphous thing? You can't really put into words. It's just how it feels. If you put yourself in the shoes of a developer, would you use this kind of thing? I think it is how you feel, right. So, yeah, documentation is good, but it's but it's more a design question. If you get the design right, then people will figure it out whether the documentation is good or not and the design is wrong, then it'll be hard to use. [00:41:32] How have you yourself changed as a programmer over the years as in a way where you really started to say sort of you want to read the manual, you want to understand the core of the syntax to the how the language is supposed to be used and so on. But what's the evolution been like from the 80s, 90s to today? [00:41:57] I guess one thing is you don't have to worry about the small details of efficiency as much as you used to write. So like I remember, I did my last book in the 90s, and one of the things I wanted to do was say, here's how you do an object system and basically we're going to make it so each object is a hash table and you look up the methods and here's how it works. And then I said, of course, the real. [00:42:25] Common Lisp object system is much more complicated. It's got all these efficiency type issues and this is just a toy. Nobody would do this in real life. And it turns out Python pretty much did exactly what I said. Yeah. And said objects are just dictionaries and yeah, they have a few little tricks as well. But mostly, you know, the thing that would have been 100 times too slow in the 80s is now plenty fast for most everything. [00:42:55] So you had to, as a programmer, let go of perhaps an obsession that I remember coming up with of trying to write efficient code. [00:43:05] Yeah, that to say what really matters is the total time it takes to get the project done. And most of that's going to be the programmer time. Yeah. So if you're a little bit less efficient but it makes it easier to understand and modify, then that's the right tradeoff. So you've written quite a bit about Lisp. You've become programmings unless you have a lot of code out there. That's unless so myself and people who don't know Elizabeth should look it up. [00:43:34] It's my favorite language for many. Research is it is a favorite language, the favorite language they never use these days. So what part of the list do you find most beautiful and powerful? [00:43:45] So I think the beautiful part is the simplicity that in half a page you can define the whole language. And other languages don't have that, so you feel like you can hold everything in your head. Then, you know, a lot of people say, well, then that's too simple, you know, here's all these things I want to do and, you know, my Java or Python or whatever has 100 or 200 or 300 different syntax rules. And don't I need all those and lists? [00:44:18] The answer was no. We're only going to give you eight or so syntax rules, but we're going to allow you to define your own. And so that was a very powerful idea. And I think this idea of saying I can start with my problem and with my data and then I can build the language I want for that problem and for that data, and then I can make Lisp define that language. So you you're sort of mixing levels and saying, I'm simultaneously a programmer in a language and a language designer. [00:44:55] And that allows a better match between your problem and your eventual code. And I think Liz had done that better than other languages. [00:45:04] Yes, very elegant implementation of functional programming. But why do you think this has not had the mass adoption and success of languages like Python? Is it the parentheses? Is it all the parentheses? Yeah. [00:45:19] So I think a couple of things. So one was I think it was designed for a single programmer or a small team. And skilled programmer who had the good taste to say, well, I'm I am doing language design and I have to make good choices and we make good choices. That's great. If you make bad choices, you can hurt yourself and it can be hard for other people on the team to understand it. So I think there was a limit to the scale of the size of a project in terms of number of people that list was good for. [00:45:55] And as an industry, we kind of grew beyond that. I think it is in part the parentheses. You know, one of the jokes is the acronym for LISP is lots of irritating, silly parentheses. My acronym was Lisp is syntactically pure. Saying all you need is parentheses and atoms, but I remember, you know, we had the the textbook and because we did it in the 90s, we had we had pseudocode in the book. But then we said, well, we'll have lisp on. [00:46:29] Like, that's the language of A.I. at the time. And I remember some of the students complaining because they hadn't had lisp before and they didn't quite understand what was going on. And I remember one student complained, I don't understand how this pseudocode corresponds to this lisp. And there was a one to one correspondence between the the symbols in the code and the pseudocode. And the only thing difference was the parentheses. So I said it must be that for some people, a certain number of left parentheses shuts off their brain. [00:47:01] Yeah, it's very it's very possible in that sense in Python just goes the other way. And so so that was the point at which I said, OK, can't have only lisp. That's a language because I, you know, I don't want to you know, you only got 10 or 12 or 15 weeks or whatever it is to teach. And I don't want to waste two weeks of that teaching lisp. So I say I got to have another language. [00:47:21] Java was the most popular language at the time I started doing that. And then I said it's really hard to have a one to one correspondence between the pseudocode and the Java because Java so verbose. So then I said, I'm going to do a survey and find the language that's most like my pseudocode and turn out Python basically was my pseudocode. [00:47:42] Somehow I had channeled Guido designed a pseudocode that was the same as Python, although I hadn't heard of Python at that point. And from then on, that's what I've been using because it's been a good match. [00:47:57] So what's the story in Python behind by Études? Your GitHub repository with puzzles and exercises in Python is pretty fun. Yeah, just it seems like fun. Uh, you know, I like doing puzzles and I like being an educator. I did a class with Udacity 212, I think it was that was basically problem solving using Python and looking at different problems that's try to feed that class. In terms of the exercise, I was wondering what that. Yeah. [00:48:29] So the class the class came first. Yeah. Some of the stuff that's ineptitudes was write ups of what was in the class and then some of it was just continuing to to work on new problems. [00:48:40] So what's the organizing madness of Pi tuj. This is just a collection of cool exercise, just whatever I thought was fun. OK, awesome. So you were the director of Search Quality at Google from 2001 to 2005 and the early days when there's just a few employees and when the company was growing like crazy. Right. [00:49:03] So I mean, Google revolutionized the way we discover, share and aggregate knowledge. So just this is, uh, this is one of the fundamental aspects of civilization, is information being shared. And there's different mechanism throughout history. But Google is just 10x improve that. Right. And you're part of that. Right. People discovering that information. So what were some of the challenges and the philosophical or the technical level in those early days? It definitely was an exciting time and as you say, we were doubling in size every year. [00:49:41] And the challenges were we wanted to get the right answers right and we had to figure out what that meant, we had to implement that and we had to make it all efficient and. We had to keep on testing and seeing if we were delivering good answers and now when you say good answers, that means whatever people are typing in in terms of keywords and terms, that kind of thing, that the that the results to get are ordered by the desirability for them of those results. [00:50:13] Like they're like the first thing they click on will likely be the thing that they were actually looking for. Right. One of the metrics we had was focused on the first thing. Some of it was focused on the whole page. Some of it was focused on, you know, the top three or so. So we looked at a lot of different metrics for for how well we were doing and we broke it down into subclasses of, you know, maybe here's a type of of query that we're not doing well on and we try to fix that. [00:50:42] Early on, we started to realize that we were in an adversarial position. Right. So we started thinking what we're kind of like the card catalogue in the library. Right? The books are here and we're off to the side and we're just reflecting what's there. And then we realized every time we make a change, the webmasters make a change and it's game theoretic. And so we had to think not only is this the right move for us to make now, but also if we make this move, what's the countermove going to be? [00:51:16] Is that going to get us into a work worse place, in which case we won't make that move, will make it OK. [00:51:22] And did you find I mean, I assume with the popularity and the growth of the Internet that people were creating new content. So you're almost helping guide the creation? [00:51:30] Yeah. So that's certainly true, right. So we we we definitely changed the structure of the network. Right. So if you think back, you know, in the very early days, Larry and Sergei had the page rank paper and Jon Kleinberg had this hub's in authorities model, which says The Web is made out of these hubs, which will be my page of Google links about dogs or whatever, and people would just list links and then there'd be authorities, which were the ones the page about dogs that most people link to. [00:52:09] That doesn't happen anymore, people don't bother to say my page of Google links because we took over that function, right? So so we changed the way that worked. [00:52:20] Did you imagine back then that the Internet would be as massively vibrant as it is today? I mean, it was already growing quickly, but it's just another I don't know if you've ever seen it today. [00:52:32] If you sit back and you just look at the Internet with wonder the amount of content that's just constantly being created, constantly being shared, unemployed. [00:52:40] Yeah, it's it's always been surprising to me. I guess I'm not very good at predicting the future in the future. And I remember, you know, being a graduate student in 1980 or so and, you know, we had the ARPANET. [00:52:56] And then there was this proposal to commercialize it and have this Internet and this crazy, Senator Gore thought that might be a good idea. And I remember thinking, oh, come on, you can't you can't expect commercial company to understand this technology. They'll never be able to do it. Yeah, OK. We can have this dot com domain, but it won't go anywhere. So I was wrong. Al Gore was right. At the same time, the nature of what it means to be a commercial company has changed to. [00:53:26] So Google is at its founding is different than a you know, what companies were before, I think. Right. [00:53:33] So there's all these business models that are so different than what was possible back then. [00:53:39] So in terms of predicting the future, what do you think it takes to build a system that approaches human level intelligence? [00:53:46] You've talked about, of course, that, you know, we shouldn't be so obsessed about creating human level intelligence. We just create systems that are very useful for humans. But what do you think it takes you to approach that level? Right. So certainly I don't think human level intelligence is one thing. Right. So I think there's lots of different tasks, lots of different capabilities. I also don't think that should be the goal, right? So, you know, I wouldn't want to create a calculator that could do multiplication at human level. [00:54:20] Right. But that would be a step backwards. And so for many things, we should be aiming far beyond human level for other things. Maybe human level is a good level to aim at. And for others, we say, well, let's not bother doing this because we are we already have humans can take on those tasks. So, as you say, I like to focus on what's a useful tool and and in some cases, being a human level is an important part of crossing that threshold to make the tool useful. [00:54:51] So we see in things like these personal assistants now that you get either on your phone or on a speaker that sits on the table, you want to be able to have a conversation with those. And and I think as an industry, we haven't quite figured out what the right model is for what these things can do. And we're aiming towards what you just have a conversation with them the way you can with a person. Right. But we haven't delivered on that model yet. [00:55:19] Right. So you can ask it. What's the weather? You can ask it, play some nice songs and, you know, five or six other things. And then you run out of stuff that it can do in terms of a deep, meaningful connection. So you've mentioned the movie her as one of your favorite movies. Do you think it's possible for a human being to fall in love with an AI system assistant, as you mentioned, taking this big leap from what's the weather to, you know, having a deep connection? [00:55:48] Yeah, I think as people, that's what we love to do. And I was at a showing of her where we had a panel discussion and somebody asked me, what other movie do you think her is similar to? And my answer was Life of Brian, which which is not a science fiction movie. But both movies are about wanting to believe in something that's not necessarily real. [00:56:17] Yeah. By the way, for people that I know, it's Monty Python. Yeah. Yeah, it's been brilliantly put. Right. So. [00:56:22] So, I mean, I think that's just the way we are. We want to trust. We want to believe. We want to fall in love. And it doesn't necessarily take that much. Right. So, you know, my kids fell in love with their teddy bear and the teddy bear was not very interactive. Right. So that's all us pushing our feelings onto our devices and our things. And I think that that's what we like to do. [00:56:48] So we'll continue to do that. [00:56:50] So, yeah, as human beings will long for that connection. And just I have to do a little bit of work to to catch up in the other end. Yeah. And certainly, you know, if you can get to dog level, a lot of people have invested a lot of love in their pets, in their pets. Some some people, as I've been told in working with autonomous vehicles, have invested a lot of love into their inanimate cars. [00:57:14] So it really doesn't take much. [00:57:17] So what is a good test? To linger on a topic that may be silly or a little bit philosophical, what is a good test of intelligence, in your view? Is national conversation like in the Turing test, a good a good test? Put another way, what would impress you if you saw a computer do it these days? [00:57:39] Oh, I mean, I get past all of that. Right. Really impressive. You know, go playing Starcraft playing. Those are all pretty cool. You know, and I think short conversation is important, I think, you know, we sometimes have these tests where it's easy to fool the system, where you can have a chat bot that can have a conversation, but you never it never gets into a situation where it has to be deep enough that it really reveals itself as being intelligent or not. [00:58:17] I think, you know, Turing suggested that. But I think if he were alive, he'd say, you know, I didn't really mean that seriously. Right. And I think, you know, this is just my opinion. But I think Turing's point was not that this test of conversation is a good test. I think his point was having a test is the right thing. So rather than having the philosophers say, oh, no, A.I. is impossible, you should say, well, we'll just have a test. [00:58:48] And then the result of that will tell us the answer. And it doesn't necessarily have to be a conversation test. That's right. [00:58:54] And coming up, a new better test as the technology evolves is probably the right way. [00:58:58] Do you worry, as a lot of the general public does about not a lot, but some vocal part of the general public about the existential threat of artificial intelligence? So looking farther into the future, as you said, most of us are now able to predict much so when shrouded in such mystery, there's a concern of, well, you think it's starting about worst case? Is that something that occupies your mind space? Much so. [00:59:26] I certainly think about threats. I think about dangers. And I think any new technology has positives and negatives. And if it's a powerful technology, it can be used for bad as well as for good. So I'm certainly not worried about the robot apocalypse and the Terminator type scenarios. I am worried about. Change in employment and are we going to be able to react fast enough to deal with that? I think we're you know, we're already seeing it today where a lot of people are disgruntled about the way income inequality is working and and automation could help accelerate those kinds of problems. [01:00:12] I see powerful technologies can always be used as weapons, whether they're robots or drones or whatever. Some of that we're seeing and do a lot of it. You don't need a guy. And I don't know what's what's a worse threat if it's a autonomous drone or it's CRISPR technology becoming available or we have lots of threats to face and some of them involved and some of them don't. [01:00:41] So the threats that technology presents are you, for the most part, optimistic about technology, also alleviating those threats or creating new opportunities or protecting us from the more detrimental effects of these? [01:00:55] I don't know it again, it's hard to predict the future. And yes, as a society so far, we've survived nuclear bombs and other things. Of course, only societies that have survived are having this conversation. So maybe that's survivorship bias. Yeah. What problem stands out to you as exciting, challenging, impactful to work on in the near future for yourself, for the community and broadly? So, you know, we talked about these assistants in conversation. [01:01:29] I think that's a great area. I think combining. Common sense reasoning with the power of data is a great area. In which application and in conversation was just broadly, just in general, yeah, as a programmer, I'm interested in programming tools, both in terms of, you know, the current systems we have today with denser flow and so on. Can we make them much easier to use for a broader class of people? And also, can we apply machine learning to the more traditional type of programming? [01:02:09] So, you know, when you go to Google and you type in a query and you spell something wrong, it says, did you mean? And the reason we're able to do that is because lots of other people made a similar error and then they corrected it. We should be able to go into our code bases and our bug fix bases. And when I type a line of code, it should be able to say, did you mean such and such? [01:02:31] If you type this today, you're probably going to type in this bug fix tomorrow. Yeah, that's a really exciting application of almost an assistant for the coding programming experience at every level. [01:02:46] So I think I can safely speak for the entire A.I. community. [01:02:52] First of all, thank you for the amazing work you've done, certainly for the amazing work you've done with AI, a modern approach book. And I think we are all looking forward very much for the fourth edition and then the fifth edition and so on. So, Peter, thank you so much for talking today. Yeah, thank you. Pleasure.

本集資源與出處