標籤:

TensorFlow從1到2 | 第三章:深度學習革命的開端:卷積神經網路

歡迎關注我們的微信公眾號「人工智慧LeadAI」(ID:atleadai)

關於全連接神經網路(Full Connected Neural Network,FC)的討論已經說的不少了,本篇將要介紹的是,從2006年至今的神經網路第三次浪潮中,取得巨大成功、處於最核心位置的技術——卷積神經網路,Convolutional Neural Network(CNN)。

視覺皮層

來源:lilianweng.github.io/li

一戰成名

2012年AlexNet在ImageNet上一戰成名,點爆了深度學習革命,這是歷史性的時刻。其中

的故事,推薦朱瓏(Leo Zhu)的《深度學習三十年創新路》,講的很精彩,下面的引用部分就是片段節選。

標誌性事件是,2012年底,Geoff Hinton的博士生Alex Krizhevsky、Ilya Sutskever(他們研究深度學習時間並不長)在圖片分類的競賽ImageNet上,識別結果拿了第一名。其實類似的比賽每年很多,但意義在於,Google團隊也在這個數據集上做了測試(非公開的,Google沒有顯式參加學術界的「競賽」),用的也是深度學習,但識別精度比Geoff Hinton的團隊差了很多,這下工業界振奮了。

ImageNet

如上圖所示,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,架構如下圖所示:

LeNet-5

迂迴前進的歷史

卷積神經網路並不是一夜之間發明出來的,從2012年AlexNet開始追溯的話,還需要更多歷史性時刻的支撐,即使是最早的卷積神經網路出現,也在Hubel和Wiesel實驗的二十年後了。儘管神經科學給出了啟示,卻並沒有告訴我們該如何訓練卷積網路:

  • 1980年,日本科學家Fukushima構建了卷積神經網路,但當時反向傳播演算法還未準備好;
  • 1986年,Hinton成功將反向傳播演算法用於訓練神經網路;
  • 1989年,LeCun開始基於反向傳播演算法訓練二維卷積網路;
  • 1998年,LeCun提出第一個正式的卷積神經網路LeNet-5;

歷史就是這樣迂迴前進的,一開始是各個獨立、隨機的小支流,隨著時間的推進,最終匯聚在一起產生革命性的時刻。


推薦閱讀:

cs20si: tensorflow for research學習筆記4
五分鐘喝不完一杯咖啡,但五分鐘可以帶你入門TensorFlow
TensorFlow與中文手寫漢字識別

TAG:TensorFlow |