卷積神經網路 (CNN) 的發展
介紹
卷積神經網路(Convolutional Neural Network, CNN)是深度學習裡極為重要的一門分支,電腦視覺這領域便是因為它的關係在近幾年有了許多重大的進展,然而這種神經網路的一大特點即為「卷積」。卷積是什麼? 卷積是一種數學的運算,其功用是可以對資料(如: 訊號、影像)做特徵的萃取,萃取出來的特徵會再送到下一個卷積層做進一步的特徵萃取,如此的方式增強了神經網路的學習效率,在圖像辨識上,比起一般的深度神經網路效果高出太多,因此它也成為了各家爭相研究的對象。
CNN的演進
1950s~1960s, Hubel & Wiesel
1950~1960年代,神經生理學家 Hubel 和 Wiesel 基於對貓和猴子視覺的研究,提出了腦中兩種基本型態的視覺細胞,分別稱為 simple cells 和 complex cells。
上圖是 simple cells 和 complex cells 的架構示意圖,這例子說明了 simple cells 會被特定位置的鉛直邊緣形狀給激發,激發後會再將訊號傳給下一階段的 complex cells ,值得注意的是每一個 simple cell 的感知域較小,會受圖形位置的影響激發與否,而 complex cells 再這樣的連結中卻不會受鉛直邊緣圖形所在位置,只要是在橘色長方形框中都可受到激發,所以感知域較大。
1980, Neocognitron
受到 Hubel 和 Wiesel 的啟發,1980 年日本電腦科學家福島邦彥提出 Neocognitron (神經感知機) ,它可說是現今 CNN 架構的源頭。
Neocognitron 主要是由兩種不同的 cells 分別稱作 S-cells 和 C-cells 交錯堆疊而成。S-cells 對應到大腦中的 simple cells,其功用為 feature extraction。C-cells 對應到大腦中的 complex cells,有較大的 receptive field,具有 downsampling 的效果。
1987, TDNN (Time Delay Neural Networks)
1987 年 Alex Waibel 和 Geoffrey Hinton 等人在日本的 ATR (Advanced Telecommunication Research Institute) 發表時間延遲神經網路 (TDNN)。TDNN 是第一個使用 backpropagation 做梯度下降訓練的卷積神經網路 。
TDNN 是一個語音識別模型,而非圖像識別模型。上圖是 TDNN 的網路架構圖,可以看到在 input layer ,convolutional kernel 延著時間方向掃過抓取聲音特徵。
時間延遲 (time-delay) 是指對同一個音素 (phoneme) /b/, /d/, 或 /g/ 在不同的時間點上進行採樣後,一起作為模型的輸入,如此以提昇模型的準確度。
1989~1998, Yann LeCun
Yann LeCunn 法裔美國電腦科學家,1989~1998年間相繼發表了許多關於CNN的研究,為現代 CNN 架構打下了確實的基礎,他也被稱為卷積網路 (convolutional nets) 之父。
1989 年貝爾實驗室 Denker 等人發表了「手寫郵遞區號的神經網路辨識」的方法,該方法運用了卷積做特徵選取。不過此方法中卷積核 (convolutional kernel) 的參數都是人工設計,並非神經網路自動學習得來。
同年,Y. LeCun 等人於貝爾實驗室亦發表了針對「手寫郵遞區號數字辨識」的卷積神經網路。
如此架構的神經網路是 Y. LeCun 基於他先前的論文「Generalization and Network Design Strategies」所提出的概念所設計,不同於 DenKer 等人先前的作法,這次模型卷積核參數的選取完全是機器自動學來,並非人工設計。
LeNet-5 於 1998 年提出,其架構與現今的 CNN 已經別無二致,且在文字圖像辨識上可說是已經技壓群雄,但受限於當時的算力與資料量,神經網路的優勢在當時並不十分顯著。另一方面,當時正是 SVM 大放異彩的年代,神經網路要能被關注大約是在 10 年後的事。
2006, GPU-implementation of CNNs
2006 年 Kumar Chellapilla 等人,利用 GPU 平行運算的能力,將 CNN 模型 forwardpropagation 和 backpropagation 速度提昇3~4倍,使 CNN 模型不論是在訓練或測試時,時間都大幅縮短,這也是第一個用GPU進行訓練的 CNN。
2006, ImageNet
ImageNet 是個大型的視覺資料集,超過 1400萬張人工標注的相片,包含 2 萬種以上不同的類別,像是氣球,草莓等日常所能見的物品。
ImageNet dataset 是由史丹佛大學電腦科學教授李飛飛於 2006 年所開創,其目的是希望能擴大及增進訓練 AI 所能使用的資料,ILSVRC 競賽所用的資料庫即為 ImageNet。
2012, AlexNet
AlexNet 是由 Hinton 學生Alex Krizhevsky 所設計的 CNN 架構,於 2012 年參與 ILSVRC 競賽,在圖像分類任務上取得優勝,其 Top 5 error rate 領先當時的第 2 名近 10 個百分點, ILSVRC 競賽是以 ImagNet dataset 當作 database 從中取出一部份作為該年比賽用的資料,訓練資料共包涵 1000個類別,每類別約 1000張照片,總計訓練資料 1200 萬張照片,其 validation set 和 testing set 照片數量各為 5 萬及 10 萬張。
由於 AlexNet 在這一年的競賽中遙遙領先其他使用非 CNN 架構的隊伍,這使得 CNN 受到大家的關注,在往後幾年的比賽中,第一名也都被 CNN 架構的模型所包辦。
AlexNet 是個 8 層的神經網路 (不包含 input 層) ,所接收的圖像大小是 224*224*3,可以看到 AlexNet 在 input 的維度與堆疊的層數上都已較以前的 LeNet-5 來得多與深。
2014, VGG & GoogleNet
2014 年牛津大學的 VGG 以 19 層的 CNN 將 Top 5 error rate 從原本 AlexNet 的 16.4% 下降到 7.3%,而 GoogleNet 再以 22 層的 CNN 將 Top 5 error rate 下降到 6.7%,此時距離要達到人類的 Top 5 error rate: 5.1% 已經不遠。
2015, ResNet
隨著 AlexNet, VGG, GoogleNet 在層數上的加深模型表現也越來越好,開始出現一個問題:The deeper, the better?
但答案並非那麼的顯然,甚至人們發現在層數加更深的情況下模型表現反而下降
解決這問題的是 2015 年在微軟研究院的何凱明,當時他設計了帶有殘差結構的神經網路,並發表了深達 152 層的 ResNet.。
ResNet 在該年的 ILSVRC 競賽中拿下第一,Top 5 error rate 達到 3.57% ,準確率已經超越人類的 5.1%,ResNet 的出現也為 ILSVRC 的該項分類競賽畫上了句點。
References :
- https://commons.wikimedia.org/wiki/File:3D_Convolution_Animation.gif
- https://www.i-programmer.info/news/105-artificial-intelligence/8823-golden-goose-award-to-hubel-a-wiesel.html
- https://www.brains-explained.com/how-hubel-and-wiesel-revolutionized-neuroscience/
- http://personalpage.flsi.or.jp/fukushima/index-e.html
- https://www.kiv.zcu.cz/studies/predmety/uir/NS/Neocognitron/en/example3.html
- https://en.wikipedia.org/wiki/Alex_Waibel
- https://www.wikiwand.com/en/Yann_LeCun
- https://en.wikipedia.org/wiki/Fei-Fei_Li
- Alexander H. Waibel, Toshiyuki Hanazawa, and Kevin J. Lang, Phoneme recognition using time-delay neural networks
- Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, L. D. Jackel, Backpropagation Applied to Handwritten Zip Code Recognition
- Kumar Chellapilla, Sidd Puri, and Patrice Simard, High Performance Convolutional Neural Networks for Document Processing
- Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, ImageNet Classification with Deep Convolutional Neural Networks
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition