深度學習有很長的一段路要走!Keras作者談機器學習的局限性
深度學習:幾何視角
深度學習最令人驚訝的地方是它相當得簡單。十年前,沒有人會想到通過,使用梯度下降訓練的參數模型能夠讓我們在機器感知方面得到如此驚人的成果。現在,事實證明,你唯一需要的,是使用足夠多的實例來進行梯度下降訓練,並獲得足夠大的參數模型。費曼曾經這麼描述宇宙:「它並不複雜,只是包含了太多的東西」。
在深度學習中,一切都是向量,一切都是幾何空間中的一個點。模型輸入(它可以是文本,圖像等等)和目標首先會被「向量化」,例如轉換成某種初始輸入向量空間和目標向量空間。深度學習模型中的每一層都對通過它的數據進行簡單的幾何變換。模型的多個層鏈接在一起形成非常複雜的幾何變換,同時又可以分解成一系列簡單的幾何變換。這種複雜的轉換會將輸入空間映射到目標空間。該變換使用層的權重來進行參數化,這些層根據模型當前執行的程度進行迭代更新。這種幾何變換的關鍵特徵是它必須是可微分的,這是為了使我們能夠通過梯度下降來學習其參數。這意味著從輸入到輸出的幾何變換必須是平滑而連續的,這是一個顯著的局限性。
將這種複雜的幾何變換應用到輸入數據的整個過程,可以想像成是一個試圖將紙球弄平的人:皺巴巴的紙球是各種各種樣的輸入數據。而人撫平紙球的每個動作類似於每一層的簡單幾何變換。而撫平紙球的手勢就是整個模型的複雜變換。深度學習模型是用於解決高維度數據複雜流形的數學機器。
這就是深度學習的魔力:將意念轉化為向量,轉化為幾何空間,然後逐步學習將一個空間映射到另一個空間的複雜幾何變換。
機器學習的局限性
通過這種簡單策略實現的應用的空間幾乎是無限的。然而,即使擁有大量人為標註的數據,目前還是有很多的應用是無法通過深度學習來實現的。比方說,你可以搜集成千上萬條軟體產品的功能列表,就像是由產品經理編寫,並由一個軟體開發團隊來編寫相應的代碼那樣。但是,即使有這些數據,你也無法訓練出一個深度學習模型來閱讀產品描述並生成相應的代碼。一般來說,任何需要推理編程、或應用科學方法的長期規劃,以及像數據操作這樣的演算法,都無法用深度學習模型來實現。即使是學習深度神經網路的排序演算法也是非常困難的。
這是因為深度學習模型只是「簡單的」連續將一個向量空間映射到另一個向量空間的幾何變換鏈。假設存在從X到Y的可學習的連續變換,則它的唯一功能就是把X:Y的密集採樣的可用性作為訓練數據,將一個數據流行X映射到另一個流行Y。所以,深度學習模型可以解釋為一種程序,但反回來,大多數程序都不能表示為深度學習模型。對於大多數任務來說,要麼不存在相應大小的深度神經網路可以解決此任務,要麼即使是存在,也是不可學習的。例如,相應的幾何變換可能太複雜,或者可能沒有可用的數據來學習。通過堆疊更多層次和使用更多的訓練數據來擴展當前的深度學習技術,只能在表面上緩解一些問題。而且,深度學習模型可以表示的方面非常有限,大多數希望學習的程序也不能被表達為數據流連續的幾何變換,這些問題並不能從根本上得到解決。
擬人機器學習模型的風險
當代人工智慧存在一個非常現實的風險,那就是高估了深度學習模型的能力,不知道這個技術能做些什麼。人類思想的一個根本特徵是「思想理論」,我們傾向於把意圖、信念和知識延伸到周圍的事物上。在石頭上畫一個笑臉,則會在我們的思維里出現「開心」二字。如果把這種思想應用到深度學習上,就意味著,當我們成功地訓練出一個能夠為圖片生成描述性文字的模型時,就會認為該模型「理解」了圖片,並生成描述性文字。但是,當訓練數據中的圖像產生輕微偏離時,就可能會導致模型生成非常荒謬的文字。
「對抗性的例子」使得這個風險尤為突出,那就是向深度學習網路輸入特殊的樣本,試圖欺騙模型產生錯誤的分類。你應該已經意識到,可以在輸入空間中執行梯形上升,以生成最大限度地激活某些ConvNet過濾器的輸入。類似地,通過梯度上升,可以稍微修改一個圖像,以使給定類的類預測最大化。通過拍攝一隻熊貓,並添加一個「長臂猿」梯度,我們可以得到一個將這隻熊貓分類為長臂猿的神經網路。這證明了這些模型的脆弱性,以及輸入輸出映射和我們人類感知之間的深層差異。
簡而言之,深度學習模型對輸入的內容並不理解,至少不是以人類的方式去理解。我們對圖像、聲音和語言的理解,植根於我們作為實體人類的感官體驗之中。機器學習模型無法獲得這種經驗,因此不能以人類的方式去「理解」他們的輸入。
作為一名機器學習從業者,始終要注意這一點,不要錯誤地認為神經網路理解他們所執行的任務。他們接受的訓練比我們想要教他們的並不完全相同:僅僅是一個點一個點的從訓練輸入到訓練目標進行映射。在訓練數據中添加一些特殊的內容,可能會讓模型產生荒謬的結果。
局部泛化與極端泛化
深度學習模型在輸入與輸出之間所做的幾何變換,與人類思考學習的方式之間似乎存在著本質的區別。人類在親身體驗中學習,而不是在訓練中學習。除了學習過程不同之外,潛在的表現性質也存在著本質區別。
人類的能力並不只是將即時刺激映射成即時反應,就像深度網路或者昆蟲那樣。他們對自己及他人
目前的狀況維持著一種複雜並且抽象的模型,使用這些模型可以預測未來,並進行長遠規劃。他們有能力將已知概念融合在一起,來表示出以前從未經歷過的事情,比如說穿牛仔褲的馬,或者想像自己中了彩票之後會做什麼。這種處理假設、擴展心智模型空間的能力遠遠超出了我們直接能夠感受到的。簡單地說,進行抽象和推理是人類認知的特點。我稱之為「極端泛化」:幾乎不使用或者根本不使用新數據,就能適應新奇的或者從未經歷過的新情況的能力。
這與深度網路形成了鮮明的對比,我稱之為「局部泛化」:如果新的輸入與在訓練時間內看到的東西差異非常小,則從深度網路輸入到輸出的映射就會快速停止。例如,對於通過學習適當的發射參數來讓火箭登陸月球這個問題。如果你使用深度網路來實現這個任務,無論是使用監督學習還是強化學習進行訓練,都需要成千上萬次的啟動試驗。相比之下,人類可以利用自己的抽象力來提出物理模型(火箭科學),並得出一個精確的解決方案,只需一次或幾次試驗即可讓火箭飛到月球上。
同樣的,如果你開發出一個控制人體的深度網路,並希望它學會駕駛一輛車安全地穿過一座城市,並且不與其他車輛相撞,那麼這個網路需要在各種情況下讓人死掉數千次,直到可以推斷出車和危險,並制定適當的避讓行為。如果放到另一個城市,則網路必須重新學習大部分的知識。而另一方面,人類無需一而再再而三的死亡就能夠學會安全駕駛,這歸功於人類假設場景的抽象建模能力。
簡而言之,儘管我們在機器感知方面取得了進步,但我們離人類級別的AI還很遠:我們的模型只能執行局部泛化,適應與過去數據非常接近的新情況。而人類認知能夠極端泛化,迅速適應各種新的情況。
結論
迄今為止,深度學習唯一真正的成功之處,是在給出了大量的人為標註數據之後,使用連續的幾何變換將空間X映射到空間Y。 做好這一切,是每個行業遊戲制定者必備的能力,但對於人類級別的AI,仍然有很長的路要走。
文章原標題《The limitations of deep learning》,作者:Francois Chollet,譯者:夏天,審校:主題曲。
※沉澱|阿里高級專家應答:各種數據在一個統一計算平台上的融合,才能產生更大的價值
※深度學習中的奇怪循環 你知道幾個?
※螞蟻金服李小龍:「人工智慧+金融」機遇與挑戰並存,螞蟻金服都做了什麼?
※MaxCompute與OSS非結構化數據讀寫互通(及圖像處理實例)
TAG:雲棲社區 |
※AI、機器學習和深度學習三者有何不同?
※Johnnie-學習是無時無刻的,享受學習的過程
※Kaggle推出免費線上課程,覆蓋機器學習、深度學習等四門課
※Python+書籍推薦《深度學習》,無限的潛力,你學習了嗎?
※Fastai深度學習課程的八大最佳實踐
※學習Cornell課程,了解氣候變化
※Python編程與機器學習研討會
※Python學習的一些路徑推薦
※Tomaso Poggio:深度學習需要從鍊金術走向化學
※DeepMind元梯度強化學習演算法,提高大規模深度強化學習應用的性能
※Python學習之路懂得這些就夠了
※通過這個在線免費課程,Google 想讓更多人了解 AI 和機器學習
※Python與機器學習
※巧用Python實現深度學習
※DeepMind提出元梯度強化學習演算法,顯著提高大規模深度強化學習應用的性能
※「Google機器學習速成課程」您看了嗎?
※專訪機器學習祖師爺 Tom Mitchell:帶著理性擁抱機器學習的熱潮
※Mercury自熱夾克使用機器學習為穿著者提供合適的溫度
※Sentient提出基於深度多任務學習的偽任務增強,提高深度學習性能
※到底有沒有必要學習Python