一,擬人 AI。最近深度學習的一系列成功案例,包括計算機視覺、語音識別、遊戲人工智慧等,都屬於這一範疇。
二,增強人類能力的 IA(Intelligence Augmentation)。能夠增強人類記憶能力的搜尋引擎和增強人類溝通能力的機器翻譯都屬於此類。
三,智慧基礎設施 II(Intelligent Infrastructure)。這一領域旨在利用計算機技術讓人類生活的環境更加安全、有趣,從基礎設施的角度為人類生活提供支援。「物聯網」是這一類概念的早期版本。
Jordan 認為,概念的模糊和混淆會帶來一系列問題,例如試圖用同一種思路提供解決方案,而枉顧其思路與大多數需要解決的問題正規化有所衝突。
如今吸引了大規模神化與誤解的「擬人 AI」思路真的適合解決所有問題嗎?結構工程在複雜的地形上架構橋樑的思路並非「設計一個能計算橋樑承重的擬人 AI 工程師」。化學工程生產出諸多化工產品的思路也不是「設計一個擬人 AI,再讓它幫助我們建造化工廠」。由此類推,自動駕駛的恰當思路是「設計一個擬人 AI 司機」嗎?自動客服的最佳思路是「設計一個擬人 AI 話務員」嗎?
當我們辨明瞭萬金油 AI 中所包含的各類思想後,會不會有不一樣的答案?
九月,Jordan 再次來到中國,進行了一系列的學術演講。我們在 Boolan 主辦的「全球機器學習技術大會」(ML-Summit 2018)上對 Jordan 進行了採訪,從「AI 分類法」出發,聊了聊「不擬人的 AI」是什麼,能夠解決什麼問題。
機器之心:為什麼要將 AI 的概念劃分成不同的三類?
Michael Jordan:提出擬人 AI、IA 和 II 的概念,並不是試圖給「AI」建立一個不重不漏的分類,而只是想要對這幾個經常被混為一談的概念進行區分。在談論這件事的時候,我跳出了「學者」角色,嘗試以一個對業界出現的新用例感興趣、對不同概念的歷史發展感興趣的人的身份來進行思考。
我認為在付出艱鉅努力之前,首先要確定我們面對的「重大問題」究竟是什麼。是建立一個能夠和人以自然語言進行溝通的系統?還是獲得一個能夠擬人活動的機器人?還是試圖建立一個市場,能夠讓更多的商品、服務、資訊以更快的速度流通?在這個世界上,某些問題亟待解決。只有在釐清了基本概念及其差異之後,才能更好地確定你想解決哪類問題。
除此之外,很多人在單純從「擬人 AI」角度出發設計基於機器的系統時並未考慮其社會影響,而只是在系統產生影響後思考對策。如果設計者能夠從更多的角度思考,那麼他們會更早地發現系統正在製造問題,甚至從一開始就避免問題的出現。
機器之心:相比於擬人 AI,您對 II 似乎有更為濃厚的興趣,能否給出一個更為具體的 II 的定義?
Michael Jordan:II,或是說智慧基礎設施,某種程度上就是過去大家所說的「物聯網」。物聯網已經是一個有些歷史的概念了,但是參與到這一類技術發展的主體成員還是網路研究者和工程師。他們關注的問題只有一個:給每一樣東西賦予一個 IP 地址,讓它可以連線到某個網路上。然而對 II 的討論並不應該停留在「聯網」本身,II 所關注的問題更為廣泛:在「聯網」完成後,如何在不同事物之間進行資料傳遞、如何利用利用資料進行推理,並將所有事物視為一個整體建立起基於資料流的知識網路,才是問題的核心所在。
機器之心:II 系統能否像現在的 AI 系統一樣,從輸入、輸出的角度看待呢?
Michael Jordan:與其從輸入輸出的角度思考問題,我更多希望從「誰是這個系統中的參與者?他們如何參與到這個系統中?」的角度進行思考。
現階段,一個並不完整的有限 II 系統的例子是網約車。
你可以看到,這個系統本身並非由一個「超級智慧」控制,它只是一個雙邊交通系統,讓司機和乘客從不同的 App 登入,讓需求方的乘客看到供給方的司機情況然後出價。和普通的市場不同的地方在於,它的適應性更強——因為它有更多的資料,更清楚雙邊的偏好,然而它的侷限性也非常大,現在只能解決一小部分出行問題。
但是想象一下,如果市場互動能夠和推薦系統相結合,又是不一樣的故事。推薦系統是歷史上最重要的機器學習應用之一,但是如果它不能在市場中扮演角色,其作用始終有限。舉一個推薦系統和市場互動的例子:在餐廳老闆和食客這對雙邊關係中,如果我作為一名食客,能夠在晚餐時段走在街上開啟一個 app,表示我有興趣尋找餐廳,app 知道我的地理位置、口味,把資訊告訴相關的餐館「這裡有一個潛在客戶」,仍有餘位的餐館學習我的基本情況後,可以用折扣等方式對我「競價」。如是這般,一個雙邊市場就形成了,我可以選擇接受或拒絕,而餐廳從我的行為中變得更瞭解我,如果我再多去幾次這家餐廳,我們就建立起了一種聯絡。
在這個過程中,我,作為一個食客很開心:因為我拿到了折扣,吃到了合口味的食物,並且與餐廳建立了好的聯絡。餐廳老闆也很開心:因為他們得以充分利用餐廳的資源,並且招徠到了喜歡這家餐廳的客戶。這個過程中並不存在一個複雜的、超級智慧的中樞系統,而只有數以百萬計的實體,每天進行巨量的資料交換和分散式的決策。飲食、娛樂、交通……城市裡的任何服務都能以這種形式進行。
機器之心:分散式的決策系統和單執行緒決策系統有什麼區別?
Michael Jordan:人類是「單執行緒生物」,我們自己做出的決策大多是單一決策。而只有當存在稀缺性的時候,分散式決策才會比多個單一決策更加困難。
解決任何現實世界的問題都要考慮稀缺性。例如,道路容量是有限額的,如果我將所有從 A 地點前往 B 地點的人都指向同一條「最優路徑」,無疑這條路會堵車,不再是一條「最優路徑」。再比如,因為我沒有無限量物流車(即使我有,這也會變成超出道路容量的問題),所以派送包裹時總會有先後順序。這時,我解決排序的方式並不是設計一個尋找「最優解」的中心演算法,而是讓大家以競價的方式表達自己的偏好。
注意,我們並非在討論建立一個簡單的經典市場。而是一個能夠允許資料充分流動、偏好充分表達的市場。因此,經濟學家會對這個市場異常感興趣,因為當市場中的決策者手握大量資訊,他們可以做得更好。
機器之心:現有擬人 AI 技術的進步會給 II 帶來哪些影響嗎?
Michael Jordan:其實,大部分現存的市場模型並不要求每個身處其中的智慧體具有高階的智慧,而只要求他們做簡單的決策。回到網約車的例子裡,網約車中的司機和乘客都是具有高階智慧的人,但是在系統裡他們並不需要大量動用智慧,他們只需要表達需求(我要去機場)和偏好(我願意加價排程)就可以了。
但是,當每個智慧體都擁有更多資訊,並且能夠根據這些資訊更可靠、更有邏輯地運作時,市場會變得更高效、更好。比如,在商品市場或者股票交易市場上,參與者的「智慧」就得到了更多的利用。
因此,我們也可以想象,那些經典的、擬人 AI 在一些有趣的市場中也能夠成為很好的玩家。擬人 AI 和 II 的概念就融合在一起了。
對於視覺問題、語音問題來說,我們有如此及大量的標註資料,所以用監督學習解決這個問題是合適的。任何其他有標註的高維統計分析問題也可以用監督學習的思路解決。無論最終目標是 擬人 AI 還是 IA 還是 II,解決方案都會是一個監督學習、無監督學習、Bandit 演算法等等的組合。
並非說 II 是優於 AI 的一個概念,而是當人人都「全力投入 AI」卻不能準確描述他們所投入的究竟是什麼,對一些基本概念做區分有助於人們釐清自己的思路。
機器之心:在您看來,當前公眾缺乏對 II 的關注,那麼從研發角度呢?
Michael Jordan:研發角度的關注重點也有所偏頗。
我並不擔心業界巨頭們,大公司層面一直不缺少相關研究。但是有非常多的小公司,仍然認為他們能夠透過提出一種新型的智慧 AI 裝置就解決某個存在已久的大問題。但是可以預見的是,在大多數情況下,這並不會發生。
當然,對於硬體公司來說,鼓勵更多人在更大量的資料上執行各式各樣的 AI 演算法是符合他們的利益的做法:因為無論演算法是否有效,只要賣出硬體他們就能夠掙錢。這並不是一件壞事,但人們需要清楚,許多硬體的賣點不是「他們能夠立刻解決當前的問題」。
想要讓電腦對真實世界進行高階抽象然後得出結論是非常、非常艱鉅的任務。我並不認為我們能夠在可見的未來裡實現這一點。然而我並不認為計算能力是當前技術發展的瓶頸。事實上如今我們每個人手上的算力都非常可觀:甚至當下的大部分生產側的應用程式都能夠執行在你的膝上型電腦上。即使一個商業模式依賴對大量資料的快速處理,大部分也能夠透過雲實現,只有自動駕駛等非常少部分的應用需要大量終端計算力。
另一方面,對於學界來說,我也並不十分擔心。學界的風向變化是非常快的,大家對新話題總是迅速燃起興趣,又輕易感到厭倦。深度學習的一個好處是吸引了非常多學生進入電腦科學領域,這是好事:當他們進入這個領域,他們不會停步於這一個小范疇,而是會在更廣泛的問題空間裡進行探索。
機器之心:您所關注的 II 問題有許多與經濟學問題相似的設定,這類問題和現有機器學習演算法有哪些差異?
Michael Jordan:現有的機器學習通常假設有一個玩家。而和經濟學相關的演算法,例如許多和拍賣、競價的演算法中都有許多個參與者。參與者會掌握部分其他參與者的資訊,並且會進行策略性的思考,進行多回合的假設最終確定如何採取行動。
但是這兩類演算法之間並不會有本質的差異,因為人類世界的基本演算法是簡單且相通的,梯度下降的概念、矩陣演算法的概念、機率模型的概念,都被應用於解決各領域問題。例如鞍點問題,也在經濟學領域中存在:經濟學家總是試圖找到均衡(equilibrium),即市場中具有競爭關係的雙方都無法獲得更優的福利。但是因為雙方處於競爭關係,在均衡點二者的最佳化方向是不同的,換言之,這不是一個「規避鞍點」,而是一個「尋找鞍點」的故事。有專門的一類研究,就聚焦在「以尋找鞍點為目標的梯度下降」。
現在二者看似有很大的差異,是因為現在的機器學習演算法,例如計算機視覺演算法,還只是單純的模式識別。而真正的計算機視覺演算法應該是一個嘗試學習其所處環境的實體。它能夠移動、尋找資源以實現自己的目的。我們的視覺演算法正在朝向這個方向發展,在過程中越來越接近經濟相關的演算法。
機器之心:機器學習在今後的發展路徑上有哪些需要研究者和應用者特別注意的地方?
Michael Jordan:不確定性。機器學習本質上就是統計學與電腦科學概念的結合,而今值得擔憂的是,在結合的過程中,有一些因素未被考慮到或是說未得到足夠的重視,比如不確定性。
大眾對於不確定性缺乏關注。而研究者雖然清楚不確定性的存在,仍然缺乏對其足夠的關注:他們簡單地假定,當資料足夠大、標籤足夠多的時候,不確定性會逐漸消失,系統給出的就是正確答案。
這就是現在大部分視覺問題的解決方案,當你有如此多標註資料的時候,不確定性出於某些未知原因逐漸消失。但這並不是一個典型的解決方案,我們無法消除世界上大部分問題的不確定性。世界上不可衡量的因素太多了,有眾多問題需要在存在巨大不確定性的情況下得到解答。例如,雖然醫生並不確切知道患者體內究竟發生了什麼,他仍然要在這種情況下根據患者表現出來的症狀為其選擇治療方案。
想要把不確定性納入考量,演算法需要做出許多額外的假設。例如,boostrap 就透過重複地從資料中抽樣獲得一些關於不確定性的估計,但是抽樣過程需要花費大量的算力。
還有一些貝葉斯派的方法,你對最初的不確定性作出假設,而後關注它的變化。但這也是計算非常昂貴的演算法。
因此,和不確定性相關的研究工作裡,有一大部分工程性的研究工作就是在嘗試如何用盡可能便宜的方法引入不確定性。以及在不能對不確定性作出準確預估的時候,起碼給出明確的宣告:演算法的置信度是多少,如果演算法不足夠好,那麼給出更大的置信區間,以便作出更保守的估計。
傳統地看,統計學裡不確定性無處不在,其核心就是清楚錯誤的存在、明確來源並進行管理。而傳統的電腦科學是不存在不確定性的。機器學習研究者開始將不確定性的思想引入電腦科學學科,演算法有了訓練與測試階段,人們開始考量隨機性對兩個階段的結果產生哪些影響。但是,從「文化」的角度上來看,整個領域仍然缺乏對不確定性的關注。
機器之心:您近期多次在公開演講中提到高效能分散式框架 Ray,能否介紹一下 Ray 的設計思路和主要特點?
Michael Jordan:對於更好的框架和語言的需求的確一直在上升。當我年輕時,我們有 Fortran,有 C 語言,他們比之前一代的程式語言有了顯著的提升,並且帶來了高效的發展。但是想要在多執行緒的分散式平臺上使用這樣的語言變得越來越痛苦,它們並不適合資料分佈在不同地方的模型。
這一次深度學習的成功背後,很大一部分要歸功於 Hadoop、Spark、TensorFlow 這些工具,它們讓分散式模型變得易用。但這也只是針對當前的需求而向分散式框架邁進的第一步。
Ray 在嘗試更進一步,我們試圖把問題中與分散式相關的問題抽取出來:一個演算法執行在一臺、五臺還是上百臺計算機上需要進行哪些調整不應該是演算法設計者需要考慮的問題。
這是一個非常有趣、有價值的問題,但不應該讓大多數工程師為此花費大量精力,底層工程師思考這個問題就夠了。Ray 旨在提供一個底層框架,能夠高效利用你所有的計算資源,讓程式在不同處理器之間切換,並保持整個過程的魯棒性和一致性。
它關注的不是「模式識別」這類 AI,而是支援決策類 AI,比如強化學習、Bandit 演算法以及其他很多搜尋演算法的執行。
機器之心:決策類 AI 相比於識別類 AI 需要的算力支援有何不同?
Michael Jordan:相比於模式識別類的 AI 演算法,決策類 AI 更需要異構負載(heterogeneous workload)。模式識別類的任務通常很容易切分成子任務,每一個子任務的大小、需要的資源種類都基本相同。常見的模式是,把資料切分成小塊,讓每個小塊在不同的計算單元上進行同樣的求導運算,它們耗時大體相等,等所有運算完成後,再把它們的結果加起來。Hadoop 和 Spark 之下的 MapReduce 正規化,正是這樣的正規化。
但是對於決策類的問題來說,問題切分成很多個小的搜尋問題之後,每部分的耗時都是未知的:你需要進行嘗試,有一些通路可以迅速被排除,另一些則需要很多步的嘗試才能判斷。每個程式需要一直搜尋到確定為止,而在這個程式停止之後,系統需要為這一個特定處理器分配一項新任務。這是一個動態任務圖,也就是所謂的異構負載。這就是 Ray 試圖解決的問題。
機器之心:在 Ray 之外,您還關注哪些其他研究方向?
Michael Jordan:研究者選擇課題與藝術家、音樂家選擇創造主題其實是一樣的。我對於萬事萬物都很好奇,喜歡學習一切,因此我保持開放的心態,與大量的人交談,思考技術的潮流正在將世界帶向何方。然後你會發現一些新的思考方式、一些尚未得到關注的領域,一些讓你相信假以時日一定會得到有趣的發現的問題。所以你進行嘗試、與其他人公開探討,嘗試激起他們的興趣,尤其是你的學生的興趣。
我經常在公開場合談論 Ray,是因為我希望更多人加入進來,在更多的使用場景下測試它的能力。除此之外,我還對錯誤發現率(false discovery rate) 十分感興趣,尤其是線上錯誤發現率。這一類演算法想要實現的目標是,當演算法在運算的任何階段被中止,都能保證當前作出的決策大部分是好的決策。
我也對很多數學相關的工作感興趣。比如梯度下降演算法以及搜尋演算法等的幾何學研究。
梯度下降演算法從數學角度來看,就是試圖在引數空間內進行運動。這類運動有哪些動態性質?有哪些幾何性質?其動態性質與幾何性質之間又是如何相互影響?我對這些問題都很感興趣。
鞍點問題就是這類問題中的典型。梯度下降演算法經常長時間卡在鞍點附近,因此,如何設計引數最佳化演算法以避免在鞍點停留,如何利用鞍點的性質找到最佳化的方向,都是我們正在研究的問題。
數學類問題吸引我的地方在於有一個良性迴圈的社群:你在他人的工作之上開展自己的工作,提出猜想、進行證明、得到定理,而在未來,你的工作又會被之後的學生做為探索的起點。
十年之後,人們不會再談及我,我的時代已經過去。我不認為當今有哪些研究者的工作能夠像愛因斯坦的成果一樣,有延續百年的生命力。我們的貢獻要小一些,但是我希望它們足夠紮實,能夠讓十年後的其他研究者願意在我們的成果之上繼續前行。