博客:blog.shinelee.me | 博客園 | CSDNgithub
本文重點在於回顧深度神經網絡在CV領域的First Blood——AlexNet,AlexNet是首個在大規模圖像識別問題取得突破性進展的深度神經網絡,相比基於SIFT+FVs、稀疏編碼的傳統方法,性能提高了10多個百分點(error rate 26.2% → 15.3%,ILSVRC-2012),並由此開啓了深度神經網絡血洗CV各領域的開端,以下圖所示(SuperVision即AlexNet)。spring
截止本文時間2019年9月2日,AlexNet論文的引用量達45305,論文做者Alex Krizhevsky、Ilya Sutskever和「深度學習之父」Geoff Hinton。網絡
AlexNet的原始網絡結構以下,能夠參見caffe的網絡定義bvlc_alexnet,pytorch等也給出了變種實現,見torchvision/models/alexnet.py。app
整個網絡大致由5個卷積層和3個全鏈接層組成,受限於當時的計算資源,網絡經過2塊GTX580 3GB的GPU訓練,上圖可見,整個網絡上下一分爲二,各用1塊GPU訓練(在caffe中經過group層實現),每一個GPU放一半的神經元,網絡中第3個卷積層和3個全鏈接層跨GPU鏈接。與使用單個GPU和50%神經元的網絡相比,這個雙GPU方案的Top1和Top5錯誤率分別下降了1.7%和1.2%。ide
每層的配置以下,第一個卷積層的kernel size爲11,stride爲4:函數
爲了得到最佳表現,論文中綜合應用了不少技術,有些後來已成爲通用的標準作法。性能
使用ReLU做爲激活函數,做爲non-saturating非線性激活函數有效避免了梯度消失問題,同時與tanh(saturating非線性激活函數)相比,訓練速度提高了數倍(CIFAR-10上訓練達到25%錯誤率速度快了6倍)。學習
多GPU訓練,實際上至關於增長了網絡的寬度,如上節所述,Top1和Top5錯誤率比單GPU網絡分別下降了1.7%和1.2%。編碼
提出了LRN(Local Response Normalization)層,使用相鄰\(n\)個特徵圖上同位置的值對當前值進行歸一化,公式以下。LRN被認爲沒有太大效果,已不被後來者採用。
\[ b_{x, y}^{i}=a_{x, y}^{i} /\left(k+\alpha \sum_{j=\max (0, i-n / 2)}^{\min (N-1, i+n / 2)}\left(a_{x, y}^{j}\right)^{2}\right)^{\beta} \]
使用Overlapping Max-Pooling,如上節圖中,Pooling層的kernel size \(z=3\),stride \(s=2\),\(z > s\),與\(s=z=2\)相比,Top1和Top5錯誤率分別降低了0.4%和0.3%。
經過Data Augmentation數據增廣下降過擬合,提升預測準確度
對前2個全鏈接層使用Dropout技術,訓練時每次隨機讓50%的神經元輸出爲0,以此來下降過擬合,預測時將權重乘以0.5。這樣能夠強迫網絡學習到更魯棒的特徵,也能夠從集成學習的視角理解,預測階段至關於對隨機到的全部模型求了個指望。
batchsize 128,SGD Momentum 0.9,weight decay 0.0005,initial learning rate 0.01 停滯時divide by 10,
\[ \begin{aligned} v_{i+1} & :=0.9 \cdot v_{i}-0.0005 \cdot \epsilon \cdot w_{i}-\epsilon \cdot\left\langle\left.\frac{\partial L}{\partial w}\right|_{w_{i}}\right\rangle_{D_{i}} \\ w_{i+1} & :=w_{i}+v_{i+1} \end{aligned} \]
回顧AlexNet論文,發現論文中說起了不少有意思的點,有些僅僅是一筆帶過,可是可能啓發了後面大量的工做,翻回來看才發現「祖師爺」早有預兆。
finetune,在一個庫上訓練,在另外一個庫上finetune
權重可視化,僅可視化第1個卷積層的96個卷積核權重,發現網絡學到了頻率方向性的特徵,更有意思的是,GPU1上的48個卷積核是顏色無關的,GPU2上的是顏色相關的。
匹配與檢索,使用最後一個全鏈接層的輸出做爲特徵,經過歐氏距離可計算圖像間的特徵類似度,可作匹配,提出能夠經過auto-encoder進一步壓縮獲取到short binary code,可用於檢索,以下圖所示,檢索與最左邊一列特徵最近的圖像
深度十分重要,增長深度能夠進一步提高性能,當前性能只是受限於計算資源和訓練時間(微笑)
在ILSVRC 2012上作的報告展現了使用AlexNet作detection的結果,以下
不愧是開創性工做的paper,給這含金量跪了。