一文帶你理解深度學習的侷限性
深度學習:幾何檢視
深度學習最令人驚訝的特點便是極易上手。十年以前,沒有人可以猜得到經過梯度下降法訓練過的簡單引數模型可以在機器感知問題上實現如此驚人的結果。現在,事實證明,研究者所需要做的只是使用足夠大的梯度下降素材來訓練引數模型。正如 Feynman 曾經描述宇宙一樣,“它並不複雜,只是裡面包含的東西實在太多。”
在深度學習中,所有的東西都是一個向量(任何的東西都是幾何空間中的一個點)。模型的輸入(可能是文字,圖片,等等)和目標首先被向量化(變成了一些初始輸入向量空間和目標向量空間)。深度學習模型中的每個層都對通過它的資料進行一個簡單的幾何變換。同時,模型的層鍊形成一個非常複雜的幾何變換,分解成一系列簡單的幾何變換。這種複雜的轉換嘗試將輸入空間對映到目標空間,一次一個點。該變換按層級的比重進行引數化,這些層根據模型當前執行的程度進行迭代更新。這種幾何變換的一個關鍵特徵是它必須是可微分的,這是為了使我們能夠通過梯度下降來學習來獲得其引數。更直接一點,這意味著從輸入到輸出的幾何變形必須是平滑和連續的——這是一個顯著的約束。
這種複雜的幾何變換應用到輸入資料的整個過程可以理解為一個試圖破壞紙球的人在3D中被視覺化。褶皺的紙球可以理解為模型開始時的大量輸入資料。每一次人的行為則是資料通過不同層級被處理的過程。完整的不起眼的人的手勢序列是整個模型的複雜變換。深度學習模型是用於解決高維資料的複雜流形的數學機器。
這便是深度學習的奧妙:將含義轉化為向量,幾何空間,然後逐步學習將一個空間對映到另一個空間的複雜幾何變換。所以開發者需要有足夠高的維度的空間以便擁有原始資料關係的全部範圍。
深度學習的侷限性
可以通過這種簡單策略實現的應用程式空間幾乎是無限的。然而到目前為止,更多的應用程式對於當前的深入學習技術是完全無法實現的——即使是大量人為註釋的資料。例如,你可以組裝一個數據,數十萬甚至數百萬的英文語言描述軟體產品的功能。由產品經理編寫,由一個團隊開發的相應的原始碼並且有工程師滿足這些要求。即使有這些資料,也不能訓練出一個深入的學習模型來簡單地閱讀產品描述並生成相應的程式碼庫。這只是其中一個例子。
一般來說,無論投入多少資料,任何需要推理式程式設計或應用科學方法(長期規劃和類似演算法的資料操作)都無法使用深度學習模式進行實現。 即使是學習具有深層神經網路的排序演算法也是非常困難的。
這是因為一個深入的學習模型是“簡單的”連續的幾何變換鏈,將一個向量空間對映到另一個。他所可以做的是將一個數據包X對映到另一個數據包Y,並假設存在從X到Y的可學習的連續變換與X:Y的祕籍採用可用性作的資料。所以即使一個深入的學習模型可以被解釋為一種程式,相反的大多數程式不能表示為深度學習模型 – 對於大多數任務,要麼沒有相應的實際大小的深層神經網路來解決任務,要麼即使存在一個,它也可能不可學習,即相應的幾何變換可能太複雜,或者可能沒有可用的資料來學習它。通過堆疊更多層次和使用更多的培訓資料來擴充套件當前的深度學習技術,只能表面緩解其中的一些問題。 深度學習模式在可以代表的方面是非常有限的,而且大多數希望學習的程式不能被表達為連續幾何變形的資料流。
擬人化機器學習模型的隱患
現階段人工智慧的一個不得不面對的問題在於研究者們誤解了深度學習模式的做法,並高估了自己的實力。人類思想的一個根本特徵是我們的“主觀意識”,我們傾向於對我們周圍的事物投射意向,信仰和知識。在一個石頭上畫一個笑臉感覺石頭都變高興了。同樣在深度學習中,當我們有能力成功地訓練一個模型來創作描述圖片的標題時,我們誤認為該模型“理解”圖片的內容以及它產生的標題。然而,當輕微改變訓練資料中存在的影象時,研發者會非常驚訝的發現模型開始創作完全荒謬的字幕。
通常,這類行為被強調為對抗例子,是通過向深度學習網路輸出錯誤的樣本來欺騙模型進行分類。通過梯度上升,可以稍微修改影象,以便最大化給定類的預測。 通過拍攝一隻熊貓,並新增一個“長臂猿”梯度,我們可以得到一個神經網路將這隻熊貓分類為長臂猿。 這證明了這些模型的脆弱性,以及它們執行的輸入到輸出對映與我們自己的人類感知之間的深刻差異。
簡而言之,深度學習模式對他們的輸入沒有任何理解,至少不是從人的意義上來說。我們對影象,聲音和語言的理解是基於我們的運動感覺體驗。然而機器人卻沒有這種經驗,因此不能以任何以人為本的方式理解他們的駛入。通過輸入大量的培訓示例來訓練我們的模型,我們讓他們學習一個幾何變換,將資料對映到這個特定的一組示例上的人類概念,但是這個對映只是我們思想中原始模型的簡單草圖, 從我們的體驗中發展出來的假想——就像一面鏡子中的一個昏暗的形象。
作為一名機器學習從業者,始終要注意這一點,不要陷入陷阱,認為神經網路瞭解他們所執行的任務(並不會) – 至少不會對我們有意義。 他們接受了不同於我們教導,進行了不同的,更窄的任務的訓練:即將訓練投入與訓練目標進行比較。 如果向他們展示偏離訓練資料的任何東西,機器將以最荒謬的方式打破以前的結論。
區域性泛化與極端泛化
在深度學習模型所做的輸入與輸出之間的簡單的幾何變形以及人類思考和學習的方式之間似乎存在著根本的區別。人類不僅僅是從親身體驗中進行學習,還提供了明確的學習方法。除了不同的學習過程外,底層的特性有著根本的卻別。
人類的能力遠不止對刺激做出迴應,因為深網或者昆蟲也可以。人會對目前的情況形成抽象複雜的模型,並根據這些模型來預測不同的未來,且進行長期的規劃。人類有能力將已知的概念融合在一起,來表現以前從未經歷過的事情,比如穿著牛仔褲的馬,或者想象如果中了彩票會做什麼。這種處理假設的能力,使我們的心理模型空間遠遠超過了我們可以直接體驗到的一切。這種行為被稱為極端泛化。
這與深層網路的區域性泛化形成了鮮明的對比:如果訓練時間內新的輸入資訊差異甚微,則停止從輸入到輸出的對映。假設使用機器來學習適當的發射引數以解決火箭登陸月球的問題,在使用深網進行此項任務時,無論是使用監督學習還是強化學習進行培訓,都需要數以千萬次的啟動試驗作為補充,以便學習從入空間到輸出空間的可靠對映。相比之下,人類可以利用抽象能力來提出物理模型——火箭科學,並得到一個精確地解決方案,只需要一次或幾次時間即可以讓火箭成功登月。同理,如果開發一款控制人體的深網,並希望他學會安全的在城市裡行駛。那麼在在這種情況下則需要現在各種情況下死掉數千次直到可以推斷出危險的行車路線並制定合適的迴避行為。當進入一個新的城市,深網有需要重新學習大部分知識。相反,人類能夠直接學習安全行為而不用經歷死亡,這都要歸功於人腦的抽象建模。
簡而言之,儘管我們在機器感知方面取得了不小的進步,但是我們仍然離人類級別的人工智慧有很大區別。我們的模型只能執行區域性泛化,在過去中學習來適應最新的情況。而人類可以極端泛化,迅速適應大膽新奇的情況,或為長期未來的情況進行規劃。
總結
作為一個開發者應當記住:迄今為止,深入學習的唯一真正的成功是使用大量的人為註釋的資料讓機器使用連續的幾何變換將空間X對映到空間Y。 做好這一切,則可以改變行業的遊戲規則。但想讓AI擁有人類的智慧,仍然有很長的路要走。