俄勒岡州立大學教授、AAAI 前主席 Thomas G. Dietterich
文/CSDN周翔
7 月22 – 23 日,由中國人工智慧學會、阿里巴巴集團 & 螞蟻金服主辦,CSDN、中國科學院自動化研究所承辦的第三屆中國人工智慧大會(CCAI 2017)在杭州國際會議中心盛大開幕。
在本次大會上,俄勒岡州立大學教授、AAAI 前主席 Thomas G. Dietterich 發表了主題為《構建強健的人工智慧:原因及方式》的演講。
在演講中,Thomas G. Dietterich 綜合考慮了“已知的未知”情況(對不確定情形有一個明確的模型)以及“未知的未知”情況(模型不完整或有錯誤), 介紹了 7 種用於保證 AI 系統安全可靠的方法。
以下是 Thomas G. Dietterich 的演講全文,AI科技大本營略做修改:
感謝大會的邀請,非常高興今天有機會在這邊演講。
我今天的演講跟前面那些可能有所不同,技術性沒那麼強。當然,我也會講到一些數學知識,但更多的內容還是關於人工智慧所面臨的挑戰,以及我們現在所用的一些安全的解決方法。
首先,我會講一講我們對於強健 AI(robust artificial intelligence)的需求、其後的目的何在。然後,我要談一下,在模型不完整的時候,我們的 AI 系統需如何來正常工作。
我們知道,現在世界上還有很多東西是人工智慧不知道的,我們的目標就是要知道,有什麼樣的方法能讓 AI 研究社群來解決這些問題。
人工智慧已經有 61 年的歷史了,我們怎樣才能應對人工智慧的不確定性,特別是這些未知的未知(unknown unknowns)?
近年來,人工智慧在技術上的長足進展,讓我們可以考慮一些高風險領域的進一步應用,比如無人駕駛、自動幫醫生做手術的外科手術機器人,還有在金融市場從事自動化交易的人工智慧,另外還有一些基礎設施相關的人工智慧,比如我的同事正設法用人工智慧來提升電網的管理效率。
當然,也有一些極富爭議的應用,例如,具備自主攻擊能力的武器系統。我認為這是一個很糟的主意,世界各國應該就此協商,簽署一份限制此類自主攻擊武器研發的條約。
所有這些系統都要去做出很多事關生死的重大決策,而人工智慧和機器學習歷經多年的坎坷掙扎,如今不過是勉強能用。我們並沒有太多的時間來思考高風險應用上的強健性問題,但我們需要系統在面對錯誤時也能十分穩定地執行、不出故障。
這裡的錯誤包括很多方面:比如說,有時候會有人為的錯誤,還有一些會是網路攻擊,或是設計者和使用者一開始就要求系統去做錯誤的事情,但我今天要講的兩個重點,則集中在不正確的模型與無法建模的意外現象方面。
為什麼我如此擔心那些無法建模的現象呢?其實有兩個原因:
- 一是我們沒有辦法對世界上所有東西都建模;
- 二是沒有必要對所有東西都進行建模。
就人工智慧的歷史而言,我們所討論的問題集中在兩個方面:
- 其一是先驗條件問題(qualification problems),我們無法把某個行動所有的先決條件全都數字化。比如說一輛車要起步,那麼燃料、電池、車鑰匙就要考慮在內,但還有其他的條件我們可能就忘記了,此類我們所無法完整考慮的先決條件是無窮無盡的。
- 另一個是分支問題(ramification problems),也就是說,我們無法把一個行動可能會產生所有的後果加以數字化。這裡,我認為同樣重要的一點是,不要把所有的東西都進行建模。
我們都知道,機器學習關於錯誤率的基本理論是,模型的出錯率與其複雜程度成正比,與樣本的大小成反比。如果資料量很小的話,我們就不能用特別複雜的模型,尤其是深度網路,因為它們相當複雜。其後果就是,在樣本很小的情況下,我們的模型就必需非常簡單。我們的模型要比現實世界簡單,儘管這一點大家心知肚明,但我們還是要使用簡單的模型。我們必須慎重地模型,因為這是優化預測準確度的方法。
一個 AI 系統,是需要在沒有對整個世界完全建模的情況下有用的。當我們看一些安全至關重要的應用時,它會有什麼結果呢?
接下來我會講一講達到強健 AI 的一些方法,以及我們作為一個研究社群的一些想法。
首先從生物學來看,進化其實並不是優化,其實它只是選擇在這個環境能夠存活下來的有機物。我們可以說,生物學上的進化其實就是選擇最強健的物種。因為,這個地球上現存的物種經歷了各種挑戰,比如說氣候變化等等。
我們能夠存活下來,是因為我們要跟很多的其他的動物進行競爭,他們讓我們更強壯。同時,我們還有很多不同的個體的組成的群體。
另外,我們在每個人內部也是冗餘,比如說每個基因都可以分為隱性和顯性,這樣我們可以把自身沒用到基因傳給未來的子孫後代,讓我們得以保持基因的多樣性。我相信,生物學給了我們很多關於強健的 AI 系統的啟發。
這是我的演講大綱。首先,我會講“robustness to known unknowns”,我們的模型包含了反應外界重要因素的變數,但是我們對他們是不確定的。接下來,我會講“robustness to unknown unknowns”,針對沒有建模的現象。
1. 針對不確定性的決策
在上個世紀50年代的時候,我們第一個想法就是在不確定的情況下怎麼進行決策。
我們來看一些標準的策略過程。首先,我們會觀察 Y,然後要選擇Action(行動) A,來讓它的期望值達到最好的效果。我們把這樣的決策進行建模:E[U|A, Y],希望把期望的效應達到最大化。
我們可以將該不確定性模型定義為 P[U| A, Y],這是你通常會看到的東西。在任意一本有關人工智慧的書或者經濟學的書裡,都可以看到。
看看上面這個圖,我們這邊有兩種不同的 Action:Action a1 和 Action a2。如果選擇 a1,我們會得到如紅線所示的結果,如果選擇 a2,我們會得到如紅線所示的結果。兩者期望的效益是一樣的,但是 a2 的變化比較大一些,有較高的上行風險和下行風險。
如果說對它們進行優化,其實兩種都是非常好,但是很多人對 AI 系統裡面的風險非常的敏感。如果說你對於風險敏感,那麼更多地可能會選擇 a1。
2. 強健的優化
實際上,許多 AI 推理問題都可以理解為優化問題。我們來講課本里的一個簡單線性問題,如上圖所示,這裡面有兩個變數,分別是 x1、x2,以及兩個限制條件:(a*x1 + b*x2)小於等於 r,(c*x1 + d*x2)小於等於 s。
隨著綠色箭頭的方向,目標是在增長的,因此我們可以在這個可行區域內找到最佳優化點。
假設我們對這些限制不確定,那麼我們需要使用不確定區間。這個的想法是,我們有常數a、b等等,我們不知道他們確切的值,但是我們知道他們屬於一個不確定區間。比如,a 的不確定集合是 U。這是對不確定性的另一種表達方式,但是更實用。
現在我們想最大化目標值,但是我們該如何解決這些不確定區間帶來的問題呢?假設紅線是我們這些常量的替代值,那麼這裡的交叉點就是最優解決方案。當然這在我們的問題中是不可能出現的,區域優化在對新問題來說是不適用的的。當限制條件不確定時,規劃的解決方案可能不可行,這將導致非常嚴重的問題。
對此我們該怎麼辦?
其中一個方案是使用極小化極大演算法(一種找出失敗的最大可能性中的最小值的演算法)來消除不確定性。我們有 adversary,並允許從不確定集合中選擇a、b等常量的值。為了最大限度地較小我們可以實現的最佳目標,在選擇目標之後,將其最大化,我們便可以得到穩健的解決方案。然而這種方案太過保守。
根據 Bertsimas 在 MIT 的工作,這裡有一個很重要的思想:給 adversary 加一個 budget。
現在我們可以分類討論bugdet B。當設定 B 為 0 時,我們會得到最初的線性方程。如果B 很大,那麼這個我們就有很大的可能性達不到目標。所以我們可以通過 B 來預測結果到底如何。這是針對“ budget on adversary ”強優化的最新想法。
現在有一些非常有趣理論:現有一些 AI 演算法是可以被看作魯棒性優化的。其中一個例子是支援向量機監督學習設定。我們給一些未知函式 y = f(x)訓練樣本,並且給出了一個損失函式 L(y(hat),y),當正確答案為 y 時,觀察輸出 y(hat)。
然後,我們想找到能夠將損失總和最小化的 h,公式如上圖所示。
在Xu,Caramanis & Mannor 2009 年的論文中,如上圖所示,他們展示了這種正則化的方法相當於強優化。
3. 優化對風險敏感的目標
現在,讓我們考慮一下,如何利用馬爾科夫決策過程(Markov decision process)來對風險敏感的目標進行優化。他決策流程的最大問題是你必須先觀察這世界找到策略設定回饋,你要設定最終的目標、反饋。
想象一下標準的馬爾科夫決策問題,我們通過代理(agent)來觀察這個世界的狀態,這個代理會根據一些政策來採取行動,並收到回饋(reward)。比如,下圍棋的時候一直到遊戲結束才能得到 reward,但是在駕駛汽車時,每做一次正確決定就會得到一次 reward,或者至少免受懲罰。
另外,我們還需要一個總回饋引數。我們來看一下,如果策略是固定的,我們要執行它,你可能要調整其他的一些引數,可以想像我們所收到的回饋引數會有這樣的概率的分佈,可以看到,它有一個下行的風險。我們要優化這個目標,讓它儘可能避免下行的風險。我們現在使用的是 CVaR(Conditional Value at Risk) ,如上圖所示。
這裡可以得出一個結論:優化 CVaR,對模型的錯誤有更好的魯棒性。
其實還有很多的例子,這邊我就不談了,因為時間的關係我們看下一部分。
4. 檢測異常
首先,我們可以檢測到模型裡的缺陷。或許我們不能修正他們,但是至少我們可以檢測出來。如果我們能檢測到模型裡的某個異常,那麼我們就可以尋求使用者的幫助,或者我們可以採取一些我們認為比機器學習到的更安全的措施。
比如,我們可以監測預測類別的分佈。試想一下,我們在做手寫字元的識別系統,在英語裡面,我們知道字元其實是有一定的分佈頻率的:最常見的英語字元是“E”,第二常見的是“T”等等。我們可以觀察一下模型的分類器,看看預測的分佈是怎樣的,如果兩者相差很大,那麼很可能是出了問題。
另一種方法是“Markov Decision Process(馬爾科夫決策過程)”。舉個例子,如果我們正在玩遊戲,並希望達到某個目標,那麼我們玩的時間越長,離達成目標的距離就越近。
比如,這是我們的預期價值函式,這是解決問題的步驟。通常情況下,我們在玩遊戲或者按計劃執行時,我們是在朝上走的,最大限度的讓價值最大化。當然,當我們做的不好的時候,我們可以看到有些曲線的軌跡並不是朝上走的。看起來就像我們脫離了軌道,這或許意味著我們的模型存在一些問題。
另外一件可以做的事就是監測輔助規律。Hermansky 寫過一篇很有意思的論文,是關於語音識別的裡面的未知的未知。在做語音識別的時候,你可以為不同的頻段,比如低頻、中頻、高頻,訓練單獨的識別器。在自然語言中,你發出的兩個音節之間是有時間間隔的,因此我們可以監控這些間隔時長。如果我們發現分類器給出的分佈結果和我預期的差別很大,那麼我們就可以探測哪個地方出了問題。
Hermansky 提出了一個解決方案:弄清楚哪些頻段其實是噪音,因為在給定的環境中,有一些型別的噪音源其實是集中在某一個頻段的。
另外一個例子要追溯到 1992 年的一個自動駕駛汽車專案。當時的這個系統很簡單,只有一個車道保持系統和一個自動轉向系統,當時是用神經網路做的。在這個神經網路裡,有一個攝像頭用來拍攝道路、樹木等,然後這些資訊會通過 4 個隱藏單元,用來預測轉向指令。
此外,這 4 個隱藏單元對輸入的圖片進行重構,這樣就可以比較原始圖片和重構後圖片之間的差異,如果兩者之間的差異較大,那麼這個轉向命令就是不可信的。
在這一想法中,相同的隱藏層要完成兩項,因此我們可以監測這些隱藏單元。如果重構後的圖片差異很大,那麼這些隱藏單元的這項任務完成的並不好,這也就意味著,在預測轉向命令任務這一任務上,這些隱藏單元可能也做的很差。
我們可以做的另外一件事就是觀察一場情況。如上圖所示,我們的訓練樣本的分佈是Ptrain,通過這些訓練樣本,我們訓練處分類器。我們的測試樣本的分佈則是Ptest。如果訓練樣本的分佈和測試樣本的分佈相同,那麼我們系統的準確性就能得到保障。但是通常情況下,測試樣本和訓練樣本的分佈是不一樣的,在這種情況下,我們應該怎樣做呢?
當然,你肯定聽說過領域適應(Domain Adoption)和遷移學習。我要講的可能是稍微簡單一點的問題,僅僅只需要檢測測試資料是否與訓練資料不同,這個例子是基於我在計算機視覺領域的一項研究工作。
此前,我曾參加過一個生態學的專案。當時我們想要衡量美國淡水河流的健康程度,於是環保部門派了一些人去收集這些河流裡的昆蟲標本,將昆蟲的分佈狀態作為判斷標準。
我們要做的是建立一個計算機視覺系統,來對這些昆蟲進行分類,而那些戶外的工作人員收集了 29 種昆蟲作為訓練的資料集。後來,我們利用這些資料訓練一個監督學習系統,而且執行結果也不錯。
但是,很快我們發現,有的測試資料並不是這 29 類中的一種,有可能是其他的昆蟲、或者小石頭、葉片、垃圾等等。
我們要怎樣做呢?
此前我們曾做過很多關於異常檢測的工作,這裡的方法很簡單,就是在系統里加一個一場檢測器,它主要用來負責檢測新圖片。如果這張圖片與訓練資料中的圖片看起來很陌生,那麼它就會給定一個“異常分數”,如果這個分數超過某個閾值,那麼系統就會“拒絕”這張圖片,如果低於這個閾值,那麼就可以放行,進入到下一步——分類器。
這裡是一個初步的研究,我們訓練的分類器時候只用了兩個類別的資料,但是實際的測試資料包括 26 類。
實際上,還有很多其他的嘗試,其中一些可能比我們現在的要好。比如Open Category Classification ,Change-Point Detection,Covariate Shift Correction,Domain Adaptation,這些都是和這些問題相關的。
5. 使用更大的模型
另外一種思路是直接增大模型。如果我們的模型缺少外界世界的資訊,那麼為什麼我們不把模型做大一點,直接讓模型具備更多的世界表徵?而這就涉及到之前Hans Uszkoreit(德國人工智慧研究中心科技總監、北京人工智慧技術中心總監兼首席科學家)所講的:建立一個大型的知識庫,特別是要從網路文件中抓取資訊。
當然,這樣做也存在一個通病。每當給一個模型增加一個新的組成部分,那麼這個模型就會多一個出錯的可能性。如果你在用這個模型做推理工作,那麼很可能會出現錯誤。這實際上是另外一種過擬合的問題。
當我們想要避免額外的錯誤時,就需要讓知識庫保持簡單。
6. 使用因果模型
還有一種思路是使用因果模型。 因果模型僅僅需要很少的訓練資料,而且它們還以遷移到新的問題領域。
想象一下,採用因果模型,我們甚至可以對太陽和黑洞內部正在發生的事情做很好的預測。雖然不管以前還是現在,我們都沒有相關資料,但是我們有可以信任的因果模型,可以派上用場。
7. 組合模型
AI 領域裡另一個比較重要的思想是“組合(ensemble)”。每一個模型都可能會有不完整或者不正確的地方,但是將這些模型組合起來,我們可以做的更好。在做的各位可能大多都知道 Kaggle 的競賽,獲勝者往往用的是“組合”的方法。
比如,IBM 的 Watson 實際上就是一個巨大的“組合”。它擁有超過 100 種技能來完成各種任務。此外,必應、百度、谷歌等也用到了很多技能的組合,比如,這些搜尋引擎會綜合排名、事實得分(evidence score)等方法來確定給使用者呈現哪些搜尋結果。
總結
上面這張圖,列舉了現有的可以幫助我們構建強健計算機系統和 AI 系統的各種方法。
首先,針對已知的未知,也就是當我們有一個模型,但是想要檢測裡面的錯誤時,要怎麼辦?正如我剛才所講,我們可以在概率模型上使用“Risk Sensative Decision Making”的方法,或者我們可以利用對抗式的方法來進行優化。
接著,我談到了“robustness to unmodeled phenomena”,這裡針對的是未知的未知。剛剛我提到,我們有一系列的辦法可以探測模型是否不完整,以及為什麼有時會失效。但是,有的時候,我們能做的只有向人類尋求幫助。可以大膽猜測,大部分的 AI 模型都還太小、太簡單。未來,我們需要比現在大得多的知識庫,這樣我們才能使用更大的模型。
此外,我還介紹了因果模型,這些模型類似於遷移學習,一個模型可以適用於不同的場景。最後,我提到了組合模型的方法。
今天,新一代的 AI 系統正被用於各種令人激動的領域,值得注意的是,其中很多應用都涉及到與人身安全相關的高風險決策,因此,我們需要構建強健的 AI 系統來解決這些問題。
AI 系統不可能對所有情況建模,因此這些系統需要在建模不完全或者包含某些錯誤情況時也能正常執行。
除了上述提到的這些思路,我們還需要更多的想法,我希望未來在座的各位也能有所貢獻。
謝謝大家!
在AI科技大本營微信公眾號(rgznai100)會話回覆“CCAI”,打包下載本次大會嘉賓的演講PPT。
CCAI 2017 精彩回顧
CCAI 2017 | 中國工程院院士李德毅:L3的挑戰與量產
CCAI 2017 | 周登勇:眾包中的統計推斷與激勵機制
CCAI 2017 | 漆遠:螞蟻金服 AI 技術大揭祕, 開放“模型服務平臺”
CCAI 2017 | 香港科技大學計算機系主任楊強:論深度學習的遷移模型
CCAI 2017 | AAAI 執委 Toby Walsh: AI 是中性技術,如何用它更好地為人類服務
CCAI 2017 | 日本理化學研究所杉山將:弱監督機器學習的研究進展
CCAI 2017 | Hans Uszkoreit:如何用機器學習和知識圖譜來實現商業智慧化?
CCAI 2017 | 史元春:科幻與創新
CCAI 2017 | 王穎:論人工智慧與藝術
CCAI 2017 | 柳崎峰:金融機構的市場機遇與實踐
CCAI 2017 | 張敏:當人工智慧“科學遇到藝術”的一點雜談
CCAI 2017 | 張勝譽:個性化推薦和資源分配在金融和經濟中的應用
CCAI 2017 | 王蘊紅:人工智慧科學與藝術的鑑賞創作
CCAI 2017 | 王堅博士致辭:人工智慧是推動科技發展的動力
CCAI 2017 | 李德毅院士大會致辭:中國人工智慧步入新階段
CCAI 2017 | 譚鐵牛院士致辭:人工智慧新熱潮下要保持清醒頭腦,設定科學的目標