當前位置:
首頁 > 最新 > Keras作者、谷歌研究員Chollet:深度學習的理論局限

Keras作者、谷歌研究員Chollet:深度學習的理論局限

王小新 編譯自 Keras Blog

量子位 出品 | 公眾號 QbitAI

從圖像處理,到自然語言處理,再到語音識別等多個領域,深度學習都取得了很好的成績,但是仍存在一些領域,還等待深度學習去攻堅克難。

Keras作者Francois Chollet昨天在博客上發布了一篇文章,講述了當下深度學習理論的局限性及發展方向。這篇文章是他的深度學習書《Deep Learning with Python》第9章第2節的修改版。

閱讀本文需要一定的深度學習基礎知識,如了解卷積神經網路、長短期記憶模型和生成對抗網路的基本原理等。

你也可以通過Deep Learning with Python的前八章,來學習一定的先驗知識。

以幾何視角看深度學習

現如今,使用深度學習是如此簡單,這也是最令人驚訝的一點。

十年前,沒人能想到用梯度下降演算法訓練得到的簡單參數模型,能在機器感知問題上取得這麼好的效果。事實證明,我們需要做的,只是構建規模足夠大的訓練樣本,通過梯度下降演算法學習得到一個參數足夠多的網路模型。

物理學家費曼曾經這樣描述宇宙:「它並不複雜,只是很多而已。」

這句話也適用於上述模型。

在深度學習中,一切數據都可看作為一個向量,即一切都是幾何空間中的一個點。

模型輸入(可以是文本、圖像和信號等)和目標標籤首先會被「向量化」,即轉換成對應的初始輸入向量空間和目標向量空間。

隨著輸入數據的經過,深度學習模型的每一層會進行一個簡單的幾何變換。這些層加起來,形成了一個非常複雜的幾何變換,也可看作是一系列簡單幾何變換的組合。這種複雜的幾何變換嘗試將輸入空間逐點映射到目標空間,變換的參數取決於各網路層的權重,而權重根據模型的當前訓練效果進行迭代更新。

模型的可微分性是這種幾何變換的一個關鍵特點,這也是能通過梯度下降來訓練網路參數的必要條件。直觀上說,從輸入到輸出的幾何變換必須是平滑且連續的,這是一個重要的約束條件。

將這種複雜的幾何變換應用到輸入數據中的整個過程,能夠在三維空間中可視化。

想像一個試圖展開紙團的人:皺巴巴的紙團是模型開始時輸入數據的流形,人對紙團所做的每個動作相當於每個網路層進行的簡單幾何變換,所有展開操作的手勢序列可以看作是整個模型進行的一系列複雜變換。

深度學習模型就是一種用於「展平」高維數據複雜流形的數學工具。

這就是深度學習的魅力所在:將實際值轉化為向量,進而轉換到幾何空間,然後逐步學習一種能將某個空間映射到另一個空間的複雜幾何變換。你只需要確定構建的空間具有足夠高的維度,其範圍能覆蓋在原始數據中挖掘到的所有關聯。

深度學習理論局限性

這種簡單策略,有著幾乎無限的應用空間。然而,即使有大量人工標註的數據集,目前的深度學習技術仍然無法實現很多應用程序所需的功能。

比如說,我們可以構建一個數據集,裡面包含成千上萬、甚至數百萬條產品經理寫的軟體功能描述,以及程序員們編寫的滿足這些要求的相應源代碼。就算有這樣一個數據集,也無法訓練一個深度學習模型來簡單地閱讀產品描述並生成合適的代碼庫。

這只是許許多多難題中的一個例子。

一般來說,無論構建多大規模的數據集,任何像編程這樣需要推理、長期規劃和類似演算法數據操作的任務,都無法使用深度學習模型來解決。甚至連最簡單的排序演算法,深度神經網路學起來也是相當困難的。

這是因為深度學習模型只是為了將一個向量空間映射到另一個向量空間,而構建了一系列簡單且連續的幾何變換操作。

假設從X到Y存在一種可學習的連續變換,深度學習能做的只是將一個數據空間X映射到另一個空間Y,並可以將X和Y配對數據的密集採樣作為訓練集。

因此,我們可以將一個深度學習模型解釋為一種應用程序,反之,大多數程序不能用深度學習模型來表示。

對於大多數任務,可能不存在一定規模且能解決問題的深層神經網路。即使存在對應模型,其可能不具備學習能力,即相應的幾何變換太過複雜,或者可能沒有可以用來學習的合適數據集。

通過堆疊更多網路層和使用更大規模的訓練集來擴展當前的深度學習技術,只能一定程度上解決其中的若干問題。但但程序不能表達為一種數據流的連續幾何變換時,深度學習技術能做的十分有限。

擬人化機器學習模型的風險

當前,人工智慧領域中存在著一個很嚴重的問題:人們誤解了深度學習模型的工作機理,並高估了網路模型的能力。

人類思想的根本特徵在於「心智理論」(theory of mind),即個體理解自己與他人的心理狀態,包括情緒意圖、期望、思考和信念等,並藉此信息預測和解釋他人行為的一種能力。在岩石上畫出一個笑臉,意味著我們心裡是開心的。

結合深度學習後,這意味著,我們在一定程度上能成功訓練出一個可以根據圖片內容生成文字描述的模型。因此,我們會認為這個模型「理解」了圖片中和它產生出來的文字。然而,當訓練集中某個圖像存在輕微改變,導致模型開始產生相當荒謬的字幕時,我們就會很驚訝。

深度學習模型把刷牙的小女孩,認成了「一個小男孩拿著棒球棒」。

「對抗樣本」——也就是那些經過特別處理,誘導模型將它錯認成其他類別的樣本——突出了這種問題。

在深度學習中,我們可以在輸入空間進行梯度上升,以生成能最大化某些卷積過濾器激活值的相應輸入,這是在第5章中卷積核可視化技巧和第8章中Deep Dream演算法的共同基礎。類似地,根據梯度上升方法,小幅修改圖像可以最大化給定類別的預測值。如果我們給定一隻熊貓的圖片,並設置相應的「長臂猿」梯度值,則得到的神經網路將這個熊貓圖片分類到長臂猿類。

這證明了模型的不穩定性,以及網路中輸入到輸出的映射關係與人類感知之間的巨大差異。

「對抗樣本」示例:小幅修改圖像可能影響模型的輸出類別。

總之,深度學習模型對輸入數據沒有任何理解,至少不是人類那種「理解」。

人類是基於感覺-運動經驗來理解圖像、聲音和語言的,而機器學習模型無法獲得這種感知經驗,因此不能通過人類的基本方法來「理解」輸入數據。

我們把大量標註後的訓練樣本輸入到網路模型中,讓它們學習一種特殊的幾何變換,能將數據映射到與人類意識相符合的特定類別上。

但是,這種映射只是人類思想中真實模型的簡單草圖,就像是一面鏡子中昏暗的圖像。

當前的機器學習模型,就像鏡子中的一個昏暗圖像。

作為一名機器學習研究人員,始終要記住這一點,不要誤以為神經網路理解它所執行的任務內容:不是的,如果非要說神經網路理解了任務,那也是以一種人類無法理解的方式。

神經網路以極其局限的任務目標來進行訓練,僅僅是將訓練樣本與訓練目標進行比較。一旦向網路輸入偏離訓練數據的任何內容,可能會輸出極其荒謬的信息。

局部泛化與極端泛化

深度學習模型中從輸入到輸出的簡單幾何變換,與人類思考和學習的方式似乎有著根本性的不同。

人類不是通過大量明確的訓練樣本來學習,而是通過具體的親身體驗。而除了學習過程不同之外,人類和機器學習的底層表徵性質也存在著根本性的不同。

將直接刺激映射到對應的直接反應中,是深度神經網路或者昆蟲都有的能力,人類的能力遠遠超過了這些。

人類對自身所處的環境、自己和他人都建立著多種複雜且抽象的模型,且可以使用這些模型來預測多種不同可能的後果,同時實現長期規劃。

人類有能力將已有的概念融合在一起,用來表徵先前從未見過的事物,如畫出一幅穿著牛仔褲的馬圖像,或是想像如果突然贏得了彩票大獎,我們會怎麼做。這種處理假想、將心理模型空間擴展到直接體驗之外的能力,或者說進行抽象和推理的能力,大概就是人類認知行為中的關鍵特徵。我將這種能力稱為「極端泛化」(extreme generalization):在相關數據非常少、甚至是沒有相關數據的情況下,適應在先前情境中從未經歷過的新奇事物的能力。

這與深度神經網路形成了鮮明的對比,我將深度神經網路的能力稱為「局部泛化」(local generalization):如果新的測試數據與訓練時使用的數據集略有差異,則深度神經網路中從輸入到輸出的映射會很快地停止工作。

例如學習合適的發射參數來解決火箭登陸月球的問題。如果你準備使用深度神經網路來完成此項任務,在訓練中不管是使用監督學習還是強化學習,都需要進行成千上萬次的登陸試驗來獲取訓練集。理論上,這解釋為將訓練數據轉換為輸入空間的密集採樣,以便模型能學習從輸入空間到輸出空間的可靠映射。

相比之下,人類也可以利用抽象能力來提出一種針對火箭發射的物理模型,並只需一次或幾次試驗即可得出一個用於火箭登月的精確解決方案。

同樣地,如果你開發出一種能控制人類身體的深度神經網路,並讓它學會駕車安全無事故地通過一座城市,那麼這個網路需要在多種情境下發生過事故,直到該網路能推斷出這輛車何時發生危險並作出適當的迴避行為。當行駛到一個新的城市,這個網路必須重新學習大部分先驗知識。

而人類並非只在發生事故後,才能學習到安全行為知識,這要歸功於人類具有能假設情境實現抽象建模的能力。

局部泛化與極端泛化

簡言之,儘管我們在機器感知領域取得了不錯的進展,但是離擬人化人工智慧還很遠:當前的深度學習模型只能實現局部泛化,適應與先前數據保持非常接近的新樣本,而人類認知屬於極端泛化,能迅速適應大膽新奇的新環境,或對未來發展進行長期規劃。

總結與討論

到目前為止,深度學習的唯一真正的成功點在於,當給定大量人工標註後的數據集,它具有使用連續幾何變換將空間X映射到空間Y的能力。

在每個行業中,要做好這些,基本上就可以改變這個行業的遊戲規則。

但是從擬人化人工智慧的角度來看,仍然還有很長的路要走。

為了解決深度學習的這些局限性並開始與人類大腦進行競爭,我們不能滿足於直接構建從輸入到輸出簡單映射關係的現狀,要將研究重點轉移到推理和抽象領域。對各種情境和概念進行抽象建模也應該屬於某種計算機程序。

在「Deep Learning with Python」一書中已經提到,機器學習模型可以被定義為「可學習的程序」。

目前,技術上可訓練的程序,是在所有可能程序中一個非常狹窄且特定的子集。但是,如果能以模塊化和重複利用的方法來學習任何程序,會發生什麼現象?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 量子位 的精彩文章:

用演算法做服裝設計:從30億款女式襯衫中找出最受歡迎的9種
未來戰爭是全自動的?造AK-47那家公司推出了人工智慧機關槍
馬斯克:20年內方向盤將消失,AI是人類存在的最大風險
谷歌用AI「攝影」大師,把街景變成專業級作品
為什麼AI工程師要懂一點架構?創新工場深度學習訓練營第一課

TAG:量子位 |

您可能感興趣

深度學習之CapsuleNets理論與Python實踐!
Fran?ois Chollet 談深度學習的局限性和未來-下篇
Fran?ois Chollet 談深度學習的局限性和未來 - 下篇
Fran?ois Chollet 談深度學習的局限性和未來-上篇
Fran?ois Chollet 談深度學習的局限性和未來 - 上篇
深度學習綜述:Hinton、Yann LeCun和Bengio經典重讀
《Tensorflow:實戰Google深度學習框架》
深度學習戰爭:Facebook 支持的 PyTorch與Google的TensorFlow
《Tensorflow:實戰Google深度學習框架》圖書推薦
Google 搜索架構技術總監李雙峰:基於TensorFlow的大規模深度學習系統
Jeff Dean等發文《Nature Medicine》,綜述深度學習在醫療領域的應用
基於 Jetson在Aerial 系統內進行深度學習
LeCun、Bengio、Hinton三巨頭曾合體,Nature發文綜述深度學習
深度學習基礎-TensorFlow 概覽
第55期:Python機器學習實踐指南、Tensorflow 實戰Google深度學習框架
深度學習的「教父」Geoff Hinton:從神經科學適應AI的想法
深度學習之解剖Hello World
類Keras的PyTorch 深度學習框架——PyToune
深度學習的爆發要歸功給誰?Yann LeCun、Fran?ois Chollet各執一詞
Rethink Deepfakes,淺談深度學習落地