Fran?ois Chollet 談深度學習的局限性和未來 - 上篇
雷鋒網 AI 科技評論按:本文來自 Keras 作者 Fran?ois Chollet,同時也是根據他撰寫的《Deeping Learning with Python》一書第 9 章第 2 節改編的。關於當前深度學習的局限性及其未來的思考,Fran?ois Chollet 共撰寫了兩篇文章,這篇是其中第一篇。雷鋒網 AI 科技評論編譯如下
作者註:這篇文章的受眾是已經有深度學習經驗的人(例如讀過本書第 1 章至第 8 章的人)。 我們假設讀者已經具有一定知識儲備。
深度學習的幾何學視角
深度學習最令人驚訝之處就在於它十分簡單。十年前,沒有人指望由梯度下降方法訓練的簡單參數模型就可以在機器感知問題上獲得驚人的結果。現在,事實證明,你只需要一個有足夠多參數的模型,並且在足夠大的數據集上使用梯度下降進行訓練。正如 Feynman 曾經描述宇宙那樣,「它並不複雜,只是很多而已」。
在深度學習中,一切都是一個向量,即一切都是幾何空間中的一個點。模型輸入(可以是文本,圖像等)和目標首先被「矢量化」,即變成一些初始輸入矢量空間和目標矢量空間。深度學習模型中的每一層對通過它的數據進行簡單的幾何變換。同時,模型的層次鏈形成一個非常複雜的幾何變換,分解成一系列簡單的幾何變換。這種複雜的轉換嘗試將輸入空間一次一個點得映射到目標空間。這種轉換是通過層的權重進行參數化的,權重根據模型當前執行的情況進行迭代更新。這種幾何變換的一個關鍵特徵是它必須是可微分的,這是為了使我們能夠通過梯度下降學習它的參數。直觀地說,這意味著從輸入到輸出的幾何變形必須平滑且連續——這是一個重要的約束條件。
這種複雜的幾何變換應用到輸入數據的整個過程可以用三維的形式進行可視化,將其想像成一個人試圖將揉成團的紙球恢復平整:皺巴巴的紙球是模型開始時的輸入數據的複本。人對紙球的每個操作相當於一層簡單幾何轉換的操作。完整的撫平(紙球)動作順序是整個模型的複雜轉換。深度學習模型是用於解開高維數據複雜流形的數學機器。
深度學習的神奇之處在於:將語義轉化為矢量,轉化為幾何空間,然後逐漸學習將一個空間映射到另一個空間的複雜幾何轉換。你需要的只是足夠高維數的空間,以便捕捉原始數據中全部的關係範圍。
深度學習的局限性
用這個簡單策略實現的應用程序空間幾乎是無限的。然而,現有的深度學習技術對於更多的應用程序完全無能為力——即使提供了大量的人工注釋數據。例如,你可以嘗試收集成千上萬甚至百萬的關於軟體產品特徵的英文描述的數據集,由產品經理編寫,以及由工程師團隊開發的相應的源代碼來滿足這些要求。即使有了這些數據,你也無法訓練深入的學習模式去簡單地閱讀產品說明並生成適當的代碼庫。這只是其中的一個例子。一般來說,無論你投入多少數據,深度學習模型都無法實現任何需要推理的東西,如編程或科學方法的應用——長期規劃和類似演算法的數據操作。即使使用深度神經網路學習排序演算法也是非常困難的。
這是因為深度學習模型僅僅是將一個向量空間映射到另一個向量空間的簡單連續幾何變換鏈。它可以做的全部就是將一個數據流形 X 映射到另一個流形 Y,假設存在從 X到 Y 的可學習連續變換的話,並且可以使用密集的 X:Y 採樣作為訓練數據。因此,儘管深度學習模型可以被解釋為一種程序,反過來說的話,大多數程序不能被表達為深度學習模型——對於大多數任務來說,要麼沒有相應的實際大小的深度神經網路來解決任務,或者存在這樣的神經網路,但它可能無法學習,即相應的幾何變換可能太複雜,或者可能沒有合適的數據可用來學習它。
通過堆疊更多層並使用更多訓練數據來擴展當前的深度學習技術,只能在表面上緩解一些問題。它不能解決深度學習模型在他們可以表示的內容種類非常有限的基本問題,並且大多數被期望可學習的程序不能被表示為數據流形的連續幾何變形。
擬人化機器學習模型的風險當代人工智慧的一個非常現實的風險是人們誤解了深度學習模型的作用,並高估了他們的能力。人類思維的一個基本特徵是我們的「心智理論」,我們傾向於將意向,信仰和知識投射到我們身邊的事物上。在我們的意識中,在岩石上畫一個笑臉石頭就突然變「快樂」了。應用於深度學習,這意味著當我們能夠「基本成功」的訓練模型以生成用於描述圖片的標題時,我們就會相信該模型能夠「理解」圖片的內容以及「理解」它所生成的字幕。然後,當訓練數據中出現的圖像類別輕微偏離時,我們會非常驚訝地發現模型開始生成完全荒謬的標題。
尤其是「對抗性樣本」值得強調,這些例子是一個深度學習網路的輸入樣本,旨在誘騙模型對它們進行錯誤分類。你已經意識到,可以在輸入空間中進行梯度上升以生成最大化某個閉環過濾器激活的輸入,這是我們在第 5 章中介紹的過濾器可視化技術的基礎,以及第 8 章的 Deep Dream 演算法。同樣,通過梯度上升,人們可以稍微修改圖像以最大化給定類的類別預測。通過拍攝一張熊貓的圖片並添加一個「長臂猿」梯度,我們可以得到一個神經網路,將這隻熊貓歸類為長臂猿。這證明了這些模型的脆弱性,以及它們的輸入——輸出映射與我們人類自身認知之間的深刻差異。
總之,深度學習模型並不理解他們的輸入,至少沒有人類意識上的理解。我們人類對圖像,聲音和語言的理解是基於我們作為人類的感覺運動體驗——正如地球上的生物所表現的一樣。機器學習模型無法獲得這些經驗,因此無法以與人類一致的視角來「理解」他們的輸入。 通過注釋大量的訓練樣例來訓練我們的模型,我們讓他們學習在特定數據集上,將數據映射到人類概念的幾何變換,但這個映射只是我們頭腦中原始模型的簡單概要,這是我們作為人類實體的體驗得來的——它就像鏡子里的一個模糊的形象。
作為一名機器學習實踐者,請始終注意這一點,永遠不要陷入這樣一個陷阱,即相信神經網路理解他們所執行的任務——他們不會的,至少不會以對我們有意義的方式理解。不同於我們想教他們的任務,他們被訓練來執行更為狹窄的任務:僅僅將訓練集輸入逐點映射到訓練目標中。向他們展示任何偏離訓練數據的東西,他們將給出最荒謬的結果。
局部泛化與極限泛化
深度學習模型中從輸入到輸出的直接幾何變形,與人類思考和學習的方式之間幾乎是完全不同的。這不僅僅是人類從自身的經驗中學習而不是通過明確的訓練實例來學習的問題。除了學習過程不同之外,基本表徵的性質也存在根本差異。
人類能做的遠遠不只是像深度神經網路或昆蟲那樣把即時刺激映射成即時反應。人們維持著關於目前處境、關於他們自己和其他人的複雜抽象模型,並且可以使用這些模型來預測不同的可能發生的未來並執行長期規劃。他們能夠將已知的概念合併在一起,來表示他們以前從未經歷過的事物,例如描繪穿著牛仔褲的馬,或想像如果他們中了彩票就會做什麼。這種處理假設的能力,擴展了我們的心智模型空間,使其遠遠超出我們可以直接體驗到的事物空間,總而言之,進行抽象和推理,可以說是人類認知的決定性特徵。我稱之為「極限泛化」:這是一種在面對未經歷的情況時,使用很少的數據甚至根本沒有新的數據就能適應新情況的能力。
這與深度網路所做的形成鮮明對比,我稱之為「局部泛化」:如果新輸入與訓練時看到的略有不同,則由深度網路執行的從輸入到輸出的映射立馬失去意義。例如,來思考這樣一問題,想要學習使火箭在月球上著陸的合適的發射參數。如果你要使用深層網路來完成這項任務,無論是使用監督學習還是增強學習進行訓練,你都需要用數千乃至數百萬次的發射試驗進行訓練,也就是說,你需要將模型置於密集的輸入採樣點空間,以便學習從輸入空間到輸出空間的可靠映射。相比之下,人類可以利用他們的抽象能力來提出物理模型——火箭科學——並得出一個確切的解決方案,只需一次或幾次試驗即可獲得月球上的火箭的發射參數。同樣,如果你開發了一個控制人體的深度網路,要它能夠在城市中安全地駕駛汽車並不被其他汽車撞,那麼這個網路將不得不「死亡」數千次在各種場景中,直到它可以推斷出汽車和危險並制定適當的迴避措施。放到一個新的城市,網路將不得不重新學習已知的大部分知識。另一方面,人類就不必通過死亡來學習安全的行為,這要歸功於他們對假設情境的抽象建模的能力。
局部泛化:模式識別級別的泛化能力; 極限泛化:由抽象和推理得到的泛化能力
總之,儘管我們在機器感知方面取得了進展,但我們離人類級別的 AI 還很遠:我們的模型只能執行局部泛化,要適應一種新場景必須與原始數據聯繫的很緊密,而人類認知能夠極限泛化,快速適應全新的情況,或為長期的未來情況做出規劃。
引申以下是您應該記住的內容:到目前為止,深度學習的唯一真正成功之處就是在給定大量人工注釋數據的情況下,使用連續幾何變換將空間 X 映射到空間 Y 的能力。做好這件事對於每個行業來說都是一件改變行業遊戲規則的事兒,但它離人類級別的 AI 還有很長的路要走。
為了解除這些局限性並開始與人類大腦進行競爭,我們需要從簡單的輸入到輸出映射轉向推理和抽象。計算機程序可能是對各種情況和概念進行抽象建模的一個合適的基礎。我們之前書中已經說過,機器學習模型可以被定義為「可學習程序」;目前我們能學習的程序屬於所有可能程序中非常狹窄和特定子集。但是如果我們能夠以模塊化和可重用的方式學習任何程序呢?讓我們在下一部分中討論深度學習的未來發展之路。
via keras.io,雷鋒網 AI 科技評論編譯
※杭州城市大腦現交通行業論壇 視覺智能負責人華先勝分享大規模視頻智能分析經驗
※vivo X21黑金屏幕指紋版發布,4月25日預售28日全面上市
TAG:雷鋒網 |