TensorFlow從1到2 - 3 - 深度學習革命的開端:卷積神經網路
關於全連線神經網路(Full Connected Neural Network,FC)的討論已經說的不少了,本篇將要介紹的是,從2006年至今的神經網路第三次浪潮中,取得巨大成功、處於最核心位置的技術——卷積神經網路,Convolutional Neural Network(CNN)。
一戰成名
2012年AlexNet在ImageNet上一戰成名,點爆了深度學習革命,這是歷史性的時刻。其中的故事,推薦依圖科技CEO朱瓏(Leo Zhu)的《深度學習三十年創新路》,講的很精彩,下面的引用部分就是片段節選。
標誌性事件是,2012年底,Geoff Hinton的博士生Alex Krizhevsky、Ilya Sutskever(他們研究深度學習時間並不長)在圖片分類的競賽ImageNet上,識別結果拿了第一名。其實類似的比賽每年很多,但意義在於,Google團隊也在這個資料集上做了測試(非公開的,Google沒有顯式參加學術界的“競賽”),用的也是深度學習,但識別精度比Geoff Hinton的團隊差了很多,這下工業界振奮了。
如上圖所示,2012年AlexNet的驚豔之處在於,它比上一年冠軍的錯誤率25.8%低了近10個百分點。正是這前所未有的進步,引領人們穿透迷霧,望見了未來。
但更有意思的是(很有啟發性並值得思考),Alex Krizhevsky 和 Geoff Hinton的競賽用的正是 Yann Lecun 發明的卷積神經網,但結果剛出來時(實現細節還沒有公佈),Yann Lecun和他的NYU實驗室成員甚至沒法重複Geoff Hinton的結果。自己發明的演算法,使用結果不如另外一個組。這下炸了鍋,Yann Lecun開了組會,反思的主題是“為什麼過去兩年我們沒有得到這樣的成績” 。
黑馬AlexNet並不“新”,如上面節選所說,它其實脫胎於1998年即14年前就被Lecun提出的卷積神經網路LeNet-5,改動非常有限:
- 採用ReLU而非S型神經元;
- 網路更深;
- 訓練資料量更大;
- 採用GPU訓練;
前兩點與網路架構相關,雖然ReLU的應用貢獻良多,但就整個演算法框架來說它們都算不上有實質性的改變。而後兩點或許才是更根本的,得益於大資料和摩爾定律,AlexNet獲得了可以用更多資料來訓練網路所需要的算力。
而LeNet-5在當時的資料與算力條件下,顯然不如其他的機器學習演算法(核方法、圖模型、SVM等)更有前景,冰封十餘載才獲得了認可。
神經科學的啟示
就像20世紀40、50年代,受神經科學發現的啟示,人類構建了人工神經元一樣,1959年Hubel和Wiesel對哺乳動物視覺皮層機理的發現,讓人類再次受到造物主的饋贈,卷積神經網路就是最成功的應用之一。
哈佛大學的神經生理學博士Hubel和Wiesel觀察了貓大腦中的單個神經元如何響螢幕上的影象,他們發現處於視覺系統較前面區域的神經元對特定的光模式反應強烈,而對其他模式完全沒有反應,這個部分被稱為初級視覺皮層,Primary Visual Cortex,也被稱為V1。他們憑藉這個開創性的研究,在1981年獲得了諾貝爾生理學或醫學獎。
V1的發現開啟了對人腦視覺系統進一步的認知,如本篇最前面引用的那幅圖中所繪製的,當眼睛檢視外界物件時,資訊從視網膜流到V1,然後到V2(Secondary Visual Cortex),V4,之後是IT(Inferior Temporal Gyrus,顳下回)。哺乳動物的視覺系統是分層遞進的,每一級都比前一級處理更高層次的概念:
- V1:邊緣檢測;
- V2:提取簡單的視覺要素(方向、空間、頻率、顏色等)
- V4:監測物體的特徵;
- TI:物體識別;
卷積神經網路就是根據V1的3個性質設計的:
- 空間對映:根據V1的空間對映特性,卷積神經網路中的各層都是基於二維空間結構的(末端的全連線層除外);
- 簡單細胞:V1中有許多簡單細胞(simple cell),它們具有區域性感受野,卷積網路中的卷積核據此設計;
- 複雜細胞:V1中有許多複雜細胞(complex cell),用於響應簡單細胞檢測的特徵,且對於微小偏移具有不變形,這啟發了卷積網路中的池化單元;
V1其後的視覺區域,其實與V1具有相同的原理,特徵檢測與池化策略反覆執行。同樣,卷積網路架構的設計,也是卷積層和池化層重複疊加,形成深度層級。具有開創性的現代卷積網路LeNet-5,架構如下圖所示:
在深度學習之前,影象識別面臨的最大挑戰就是特徵工程,研究者需要根據自己的經驗和洞察、具體場景和領域知識,人為的進行特徵的設計和提取,之後再進行分類的訓練。而卷積神經網路自帶特徵提取能力,特徵學習和分類訓練一氣呵成,使得網路可以直接使用原始的影象資料作為輸入,輸出分類結果。這種端到端的影象識別極大的簡化了演算法設計的複雜度和工作量。
迂迴前進的歷史
卷積神經網路並不是一夜之間發明出來的,從2012年AlexNet開始追溯的話,還需要更多歷史性時刻的支撐,即使是最早的卷積神經網路出現,也在Hubel和Wiesel實驗的二十年後了。儘管神經科學給出了啟示,卻並沒有告訴我們該如何訓練卷積網路:
- 1980年,日本科學家Fukushima構建了卷積神經網路,但當時反向傳播演算法還未準備好;
- 1986年,Hinton成功將反向傳播演算法用於訓練神經網路;
- 1989年,LeCun開始基於反向傳播演算法訓練二維卷積網路;
- 1998年,LeCun提出第一個正式的卷積神經網路LeNet-5;
歷史就是這樣迂迴前進的,一開始是各個獨立、隨機的小支流,隨著時間的推進,最終匯聚在一起產生革命性的時刻。
共享協議:署名-非商業性使用-禁止演繹(CC BY-NC-ND 3.0 CN)
轉載請註明:作者黑猿大叔(簡書)
相關文章
- 深度學習革命的開端:卷積神經網路深度學習卷積神經網路
- 深度學習三:卷積神經網路深度學習卷積神經網路
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 深度學習筆記------卷積神經網路深度學習筆記卷積神經網路
- 深度學習卷積神經網路筆記深度學習卷積神經網路筆記
- 深度學習——LeNet卷積神經網路初探深度學習卷積神經網路
- 卷積神經網路CNN-學習1卷積神經網路CNN
- 深度學習經典卷積神經網路之AlexNet深度學習卷積神經網路
- 深度剖析卷積神經網路卷積神經網路
- [譯] 淺析深度學習神經網路的卷積層深度學習神經網路卷積
- 卷積神經網路-1卷積神經網路
- 卷積神經網路-3卷積神經網路
- 卷積神經網路-2卷積神經網路
- [action]tensorflow深度學習實戰 (4) 實現簡單卷積神經網路深度學習卷積神經網路
- 1. 從多層感知機到卷積神經網路卷積神經網路
- 深度學習-卷積神經網路-演算法比較深度學習卷積神經網路演算法
- Tensorflow-卷積神經網路CNN卷積神經網路CNN
- 【深度學習】LeCun親授的深度學習入門課:從飛行器的發明到卷積神經網路深度學習LeCun卷積神經網路
- 學習OpenCL與卷積神經網路 Day1卷積神經網路
- 【卷積神經網路學習】(4)機器學習卷積神經網路機器學習
- 卷積神經網路學習資料卷積神經網路
- 深度學習--基於卷積神經網路的歌唱嗓音識別深度學習卷積神經網路
- 深度學習入門筆記(十八):卷積神經網路(一)深度學習筆記卷積神經網路
- TensorFlow 卷積神經網路系列案例(1):貓狗識別卷積神經網路
- [譯] TensorFlow 教程 #02 - 卷積神經網路卷積神經網路
- 個人學習卷積神經網路的疑惑解答卷積神經網路
- 【Tensorflow_DL_Note6】Tensorflow實現卷積神經網路(1)卷積神經網路
- 從全卷積網路到大型卷積核:深度學習的語義分割全指南卷積深度學習
- 【Tensorflow_DL_Note7】Tensorflow實現卷積神經網路(2)卷積神經網路
- 卷積神經網路 part2卷積神經網路
- 【深度學習原理第4篇】卷積神經網路詳解(CNN)深度學習卷積神經網路CNN
- 卷積神經網路卷積神經網路
- Ng深度學習筆記——卷積神經網路基礎深度學習筆記卷積神經網路
- TensorFlow上實現卷積神經網路CNN卷積神經網路CNN
- TensorFlow 卷積神經網路之貓狗識別卷積神經網路
- 利用Tensorflow實現卷積神經網路模型卷積神經網路模型
- 如何更好的理解分析深度卷積神經網路?卷積神經網路
- 卷積神經網路學習筆記——SENet卷積神經網路筆記SENet