你知道深度學習為什么叫做深度學習嗎?
這是一篇單純的推送,今天我們單純來聊一聊深度學習這個名字。
深度學習的復蘇,可以從2012算起,那一年,深度學習網絡AlexNet橫空出世,在ImageNet競賽中取得了冠軍,到了2016年,Alpha Go的勝利將深度學習推到了我們每一個人的面前。
但是,今天膾炙人口的深度學習,其實,從學習方式上來說,和存在了幾十年的神經網絡并沒有什么區別。
所以,到底為什么神經網絡突然就變成了深度學習?
well,用吳恩達的話來說,深度學習是神經網絡的一種re-branding,這個名字,至少聽上去,很有……深度……
wow, deep learning, it sounds so deep……
那么,深度學習的本質變了嗎?
沒有,變的只是數據量和計算力。
Like it or not, 目前在復雜的任務中達到人類水平的學習算法,與上世紀80年代努力解決玩具問題(toy example)的學習算法幾乎是一樣的。
這可不是我瞎掰,這是AI圣經花書里的原話。

AI圣經 —— “花書”
真正變革的,是我們有了這些算法得以成功訓練所需的資源 —— 數據量和計算力。
然而,深度就一定那么好?
不一定。
這個問題可以從兩方面來看,第一,一味的增加網絡的深度是不好的。太深的網絡不好訓練!太深的網絡不好訓練!太深的網絡不好訓練!
第二,一定要追究起來,其實網絡的深度和寬度都是好的,這個道理非常簡單,一個機器學習模型,模型的復雜度越高,(理論上)模型的學習能力就越強。這就好比說,使用更多的變量,你就能表達出更復雜的公式。從這個角度出發,一個神經網絡無論是變的更深了,還是更寬了,模型的復雜度都是提升了。
這是很自然的一種想法,所以在深度學習的發展過程中,也出現了這樣兩種風格的經典網絡。
一種看上去很深,比如網絡層數達到了152層的ResNet:

看上去很深的ResNet
還有一種看上去很胖(很寬),比如使用了Inception模塊的Inception網絡家族。

變寬了的Inception模塊
這都是好用的網絡結構,甚至還有結合了兩者之大成的網絡:Inception-ResNet。
這樣一種聽上去就很復雜的網絡的結構確實……也很龐大,這里就不放出來了。
當然,這樣一種深度和寬度的拓展,所要用到的計算資源也是杠杠的。
而在資源有限的情況下,深度比寬度更好,這就涉及到了直擊深度的靈魂問題 ——
深度到底是在做什么
學習!一種隨著網絡層的深入而進行的學習。這種學習有個專業術語叫做特征學習,或者表示學習。

《深度學習》一書中關于網絡學習的例子
一個深度學習網絡有很多層,當我們將一張圖像送進網絡,首先在最底層,好像我們看到的是像素一類的東西,一層層往上,網絡層“看到了”邊緣、輪廓、部件等等,網絡的深度,帶來的是逐層抽象的能力,所以有了深度的網絡有了學習的能力,和寬度所帶來的比較單純的計算力的上升,深度當然是更符合學習型模型的結構。
當然這只是一個示意,實際情況下神經網絡的分層是比較模糊的,而中間網絡層的輸出還是相對比較抽象的概念,很難說清楚哪一些網絡層就”看到了“什么特征。但是總體上當我們逐漸往上的時候,網絡確實是不斷在對對象進行抽象。而這是寬度所不能夠帶來的能力。所以,我們有深度學習,而不是寬度學習。
要說在一開始,深度學習或許只是一個好聽的名字,但是到了今天,我們所用到的和看到的網絡確實越來越深了。2012年令人矚目的AlexNet不過8層,而到了 2015 年,殘差的方式使訓練一個很深的神經網絡成為現實,Resnet的網絡深度直接到達了152層,到了 2016 年,ImageNet競賽的冠軍已經用上了 1207層的網絡了。
深度學習,真是深得叫你心服口服。