賽先生&新智元專欄
作者:王培
美國天普大學計算機與信息科學系
【導讀】AlphaGo大勝李世石後,深度學習的風光一時無兩。基於人工神經網絡的深度學習技術以其黑箱「思考」模式,顯示了機器的智能——一種「直覺」能力。然而,機器的「直覺」能在圍棋上勝利,就意味著也能換領域施展「才華」,去解決諸如看病這類問題嗎?如果答案是不可以,那是不是說,機器智能也就那麼回事,比如,下棋水平再高,機器也做不到「故意輸掉」?此文告訴你一個意想不到的答案。
圍棋大戰AlphaGo四比一勝了李世石,令人驚嘆技術進展的程度。但另一方面,機器輸的那盤引起了各種猜疑,連「故意放水」的陰謀論都出來了。也有了解機器學習的人在小聲嘀咕:莫不是李世石那「神之一手」正好是AlphaGo的對抗樣本?
這幾年深度學習紅得發紫,但並非無懈可擊,「對抗樣本」就是一個說不清的「隱疾」。有圖有真相:各位先看看下面的圖裡都是什麼。
這類圖片是有意造出來愚弄學習程序的,它們被稱為「對抗樣本」
揭曉謎底之前先介紹出處。深度學習最成功的應用之一就是圖片識別,即說出一張圖片描繪的是什麼。深度神經網絡在經過一百多萬張樣本圖片的訓練後,已經可以正確識別大部分圖片中的事物。但上面一排圖片依次被識別為王企鵝、海星、棒球、電吉他,而下面一排照片依次被識別為火車車廂、遙控器、孔雀、非洲灰鸚鵡。這項研究的詳情見參考文獻[1]。由於這類圖片是有意造出來愚弄學習程序的,它們被稱為「對抗樣本」。對抗樣本的大量存在已被很多研究所確認,但對學習程序中了圈套的原因卻仍是眾說紛紜。下面是我個人對這個問題的分析。
在《計算機會有超人的智能嗎?》一文中,我說到機器學習通常把「學習」看作以「計算」為途徑和目標。從計算的觀點看,用計算機解決一個問題就是實現一個從輸入到輸出的函數。以數值函數為例,如果已知從輸入X,Y到輸出Z的關係是 Z = X2–Y,那麼當輸入是(2,3)時,輸出是1;輸入是(4,7)時,輸出是9;輸入是(3,5)時,輸出是4。只要把輸入轉化成輸出的公式或算法是已知的,總能編一個程序完成這個計算。這就是為什麼說「只要人能說清楚解法,計算機就能解決問題」。而人工智慧可以說是研究在說不清解法時怎麼用計算機解決問題。機器學習會把上述問題看成「函數擬合」,就是說一般性公式是不知道的,只知道具體「樣本」f(2,3) = 1, f(4,7) = 9 等等,而需要據此估算f(3,5)等於什麼。
在人工智慧歷史上,曾有人試圖用「猜函數」的辦法解決此類問題,並聲稱重新發現了歐姆定律和克卜勒定律等等。這條路的問題是滿足條件的函數很多,而且樣本常常包含誤差,所以擬合程度太高也未必是好事。現在機器學習的主流辦法不是「猜函數」,而是「湊函數」,就是說用一個一般性的方法根據樣本造一個近似函數出來。既然目的是用這個函數來處理像f(3,5)這樣的新問題,f本身是否能寫成一個簡單的公式有什麼關係呢?函數的建立方法是把樣本推廣到類似輸入。既然輸入(3,5)作為一個點正好在(2,3)和(4,7)中間,不妨認為f(3,5)是f(2,3)和f(4,7)平均值5。因為「正確公式」是不存在的,這個預測完全合理。至於是否符合事實,則要實際檢驗後才知道了。
人工神經網絡就是一個通用的「函數擬合器」。很多人顧名思義地認為人工神經網絡就是「像人腦一樣工作」,其實它的設計只是從人腦得到些靈感,而其真正的吸引力來自其可塑性,即可以通過調整內部參數變成各種各樣的函數。一開始參數是隨便定的,所以可能得到 f(2,3) = 0。這時樣本所提供的正確答案1會被學習算法用來調整網絡參數以達到希望的輸出(不一定正好是1,但足夠接近)。下面再用同樣的辦法訓練f(4,7) = 9。這裡的麻煩是後面的樣本所引起的參數調整會破壞對前面樣本的處理結果,所以當所有樣本處理完成後還必須回頭重來。這個「訓練」過程一般要重複很多遍才能讓同一組網絡參數同時(儘可能)滿足所有樣本的要求。
了解這種訓練過程,就可以看到AlphaGo實際上是不能像人那樣通過復盤來總結前一盤棋的經驗教訓,並馬上用在後一盤棋中的,而是需要把很多(甚至所有)以前的樣本再整個過一遍(甚至多遍)以保證從這盤棋中學到的知識不會破壞以前的成果。如果說人類學習一般是「增量式的局部修改」(哪裡錯了改哪裡),那深度學習就是「總量式的全局修改」(用樣本總體定全部參數)。
一個人工神經網絡通過訓練得到的知識是分布在其所有網絡參數之中的,這也就導致了其結果的難以理解。AlphaGo在某一個時刻為什麼走某一步,這是其系統中成千上萬個參數共同決定的,而這些參數的值是系統全部訓練歷史的產物。即使我們真能重現它的完整歷史,也往往無法把它的某個決定的「原因」用我們能理解的概念來描述清楚。有種觀點認為這說明機器成功地擁有了「直覺」,但這事還需要從兩方面看。和傳統計算系統相比,能從大量樣本中總結出某種規律自然是進步,但完全說不清這種規律不能說是個優點。人的許多信念由於來源複雜以至於我們自己也說不清,因此以「直覺」稱之,但並非所有信念都是這樣來路不明的。
深度學習,以至於整個主流機器學習,在很大程度上接受這種把學習系統看成個「黑箱」的做法,美其名曰「端到端」學習,意思是說「我只要實現你要的函數就行了,你管我怎麼做的呢」。這種辦法自然有它的優點(比較省心),但一旦出了問題就很難說清到底是怎麼回事,也就更難做相應的改進了。AlphaGo的昏招和上面的對抗樣本都是這方面的例子。
那麼這個問題要不要緊呢?這就要看應用領域了。對圍棋來說,我覺得程序超過人類已成定局,個別比賽的勝負已經無關大勢了。即使程序確有類似於對抗樣本的死穴存在,也不是棋手在對局時容易利用的,而可能是得靠運氣來碰。現在發現的對抗樣本,如參考文獻[1]中展示的,都是用另一個學習技術「遺傳算法」經過大量計算造出來的。這個辦法能否用於圍棋還是個問題。另一方面,程序的棋路難以理解或模仿,這對圍棋界自然是個遺憾,但不影響它的勝率。所以這些問題對圍棋程序都不是致命的。
現在AlphaGo的開發者DeepMind號稱要進軍醫療領域,那可就完全是另一回事了。如果一個機器診斷系統在收集了和你有關的信息後直接就給你開藥,而其全部理由就是「這是我的直覺」,你能接受嗎?當然,這個系統以往的成功率可能高達95%,儘管它也曾經給頭疼的病人開過腳氣藥。但問題是你怎麼知道自己不是那5%呢?更何況基於大數據的統計性診斷對常見病、多發病會很有效,但對特殊病例的處理能力就沒有保證了,因此成功率大概也到不了95%。由於這個問題事關機器學習的基本假設和框架,因此不是修改算法細節所能解決的。DeepMind可能要另闢蹊徑才有希望。
總的說來,以深度學習為代表的機器學習技術對某一類問題是很有效的,前提是這類問題可以被看成一個確定的輸入輸出關係,而且可以收集到大量有代表性的樣本。此外,要有足夠的訓練時間,而且可以容忍一定量的錯誤結果和解釋的缺位。如果在某個問題上樣本不足或者只能逐步收集,答覆有時間要求,中間結果要可理解並可直接修改,那麼這項技術就不足以解決問題。
目前業界對深度學習的局限性認識嚴重不足,而AlphaGo的勝利更在大眾中造成了深度學習可以解決各種學習問題的假象。實際上,學界這兩年對深度學習的態度已經從興奮追捧轉為冷靜審視,而深度學習的領軍人物也紛紛出面否認了「這項技術已解決了人工智慧核心問題」的說法。
看到這裡,有些讀者可能會準備寫如下評論:「我早就說了嘛,人工智慧不過是一些程序,怎麼可能真能像人那樣學習呢!」—對不起,你還真是說早了。上面所說的問題存在於深度學習、人工神經網絡、機器學習之中,但有關結論不能推廣到整個人工智慧領域,因為不是所有學習技術都是做函數擬合的。
一個問題的解決過程總是由一系列步驟組成的。傳統的計算系統是讓設計者既指定個別步驟又指定整個過程,因此保證了解決的可靠性和可理解性,但這種系統毫無靈活性。在很大程度上,人工智慧的基本目標就是給系統靈活性和適應性。當然,設計者也不可能什麼都不限定。函數擬合的辦法可以說是「限定兩端,放開中間」,即以訓練樣本的形式約束系統的輸入輸出關係,但容許學習算法相對自由地選擇實現這種關係的中間步驟和對非樣本的處理結果。而另一種可能性是恰恰相反,可以說是「限定步驟,放開過程」,而我自己的工作就屬於這一類。
在《計算機會有超人的智能嗎?》一文中,我提到了我設計的「納思」系統(詳見參考文獻[2])。納思是個推理系統,其中每個基本步驟都遵循一個廣義推理規則,包括演繹、歸納、歸因、例示、修正、選擇、比較、類推、合併、分解、變換、派生、決策等等。這些推理規則同時也實現著學習的功能,而且可以靈活地彼此銜接以完成複雜的任務。這裡的基本假設是任意思維過程都可以被分解成這些基本步驟,而「學習」就是系統使用這些規則以經驗為原材料建造和調整信念和概念體系的「自組織」過程。
把「學習」理解成「信念和概念的自組織」比理解成「函數擬合」更接近人的學習過程,同時也避免了目前機器學習中的很多問題。比如說,由於系統的每一步都遵循某一條規則,其結果就具有較好的可解釋性。人工神經網絡的結果常常只有數學意義下的解釋,即「這個結論是由現有全部網絡參數決定的」,而納思的結論一般有概念層面上的邏輯解釋,即「這個結論是從某某前提中被某規則推出來的」。儘管如果一個信念的來源極其複雜,它也會被說成是「直覺」。
設計納思這樣的學習系統的難點是確定其中規則的合理性和完備性,以及在運用這些規則時平衡靈活性和確定性。這些問題我會在以後逐步介紹。現在要說的是既然要讓系統自己學習,那它就難免犯錯,但這不能被用作對批評的擋箭牌。這裡的關鍵問題是這些錯誤是否可以理解,以及系統能否從錯誤中學習以避免重蹈覆轍。
對抗樣本之所以是一個大問題,不僅僅是由於這些樣本導致了系統的誤判(人在圖片識別時也會誤判),而是由於它們揭示了機器學習在「湊函數」的過程中所生成的中間結果和人感知過程中的逐層抽象結果有根本性不同。人在識別「企鵝」、「孔雀」、「鸚鵡」時的中間結果一般都包括對其頭部、身體、翅膀等鳥類普遍特徵的識別,而機器學習算法所抽取的特徵則一般沒有獨立意義,只是對整個「端到端」擬合過程有貢獻(提高正確率、收斂速度等等)。因此,如果一個樣本和訓練樣本很不一樣,這些中間結果有可能導致莫名其妙的輸出。系統很難有效地從這種錯誤中吸取教訓,因為誰都沒法說它是哪一步錯了。要避免這種問題,僅僅限定輸入輸出關係是不夠的,中間結果也必須有不完全依賴於網絡參數的意義,因此不能只考慮學習算法的數學特徵而不顧其認知功能,而這正是邏輯框架優於黑箱模型之處。
最後再說說在圍棋大戰的評論中暴露出的問題。如前面提到的,整體上看,「深度學習」被高估了,但「人工智慧」卻被低估了。比如說有些評論半開玩笑地說:「能贏棋時反而成心輸掉才算有智能,而這是計算機永遠做不到的」。殊不知儘管AlphaGo的確不會這樣做,但這一功能在技術上根本不是問題。一個通用智能系統中同時會存在著多個目標,而系統在採取某個行動前必須權衡該行動對各個有關目標的影響。在這種情況下,總體效果最好的行動可能犧牲某些次要目標。如果這樣一個系統覺得成心輸掉一盤能贏的棋可以實現一個更重要的目標(比如提高後面比賽的收視率),那它完全可能這麼做。這種功能在包括納思在內的通用智能系統中早已實現了,只不過尚未出現在應用技術中而已(這裡不討論「計算機該不該說謊」等相關問題)。既然這次圍棋大戰的結果出乎了絕大多數人的預料,希望尚存學習能力的人能以此為鑑,以後不要再僅僅因為你不知道怎麼讓計算機做某事就斷言說那事是不可能做到的。
[1]Anh Nguyen, Jason Yosinski, Jeff Clune, Deep neural networks are easily fooled:High confidence predictions for unrecognizable images, IEEE Conference on Computer Vision and Pattern Recognition, 2015
[2]Pei Wang, Rigid Flexibility: The Logic of Intelligence, Springer, 2006
賽先生由百人傳媒投資和創辦。上帝忘了給我們翅膀,於是,科學家帶領我們飛翔。
楊靜女士的書出版,正值谷歌阿耳法狗戰勝李世乭的時刻。隨著圍棋這顆「人類智力運動皇冠上的明珠」被機器摘下,機器自學習的強大能力得到確認,我們正站在真正人工智慧時代的起點上。面對這樣的未來,我們雖然不必過度恐懼,但更忌諱盲目自大。作為以智力自豪的物種,我們正在開始「hack」和複製自身最重要的:認知和學習能力的過程。或許不久的將來,我們將面臨著被我們的造物全面超越的現實。這可能邁向天堂,也確實有可能通向地獄。地獄之門未必全部來自機器,更可能來自掌握更大能力,但被欲望和無知包圍的人類自己。但人類歷史無法倒退,只可向前。因此我們必須全體、全力去學習和了解,確保人工智慧的運作機制始終處於全人類的理解之下,這既是人類作為整體的要求,也是人作為個體在發展的社會生存的必須。楊靜女士此書博採眾長,生動活潑地詮釋了人工智慧研究前沿的成果,出版發行正得其時,鄭重推薦大家閱讀。谷歌AlphaGO戰勝李世石,標誌著機器智能向人類智能的領地又邁進了偉大的一步。而「網際網路+」向「智能+」時代的躍遷,也昭示新智能時代即將到來。2016年,恰逢人工智慧誕生60周年,《新智元:機器+人類=超智能時代》是人工智慧技術和產業狂飆突進的見證,為讀者打開人工智慧世界的一扇大門,不僅可以一窺百度大腦、訊飛超腦、中國大腦計劃究竟,更可以著名人工智慧研究院院長等頂級專家大咖的技術解密作為對智能產業未來趨勢的參照。近百位學界、商界、技術界、產業界的專家,從機器人、機器學習、智能汽車、智能醫療、認知科學、高性能計算和「AI+」投資等不同視角,對人工智慧和機器人產業進行評析。人類未來在AI時代將何去何從,超智能時代將引發社會更多思考。