本文將以 Alex-Net、VGG-Nets、Network-In-Network 為例,分析幾類經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)案例。
在此請讀者注意,此處的分析比較并不是不同網(wǎng)絡(luò)模型精度的“較量”,而是希望讀者體會卷積神經(jīng)網(wǎng)絡(luò)自始至今的發(fā)展脈絡(luò)和趨勢。
這樣會更有利于對卷積神經(jīng)網(wǎng)絡(luò)的理解,進而舉一反三,提高解決真實問題的能力。
01
Alex-Net 網(wǎng)絡(luò)模型
Alex-Net 是計算機視覺領(lǐng)域中首個被廣泛關(guān)注并使用的卷積神經(jīng)網(wǎng)絡(luò),特別是 Alex-Net 在 2012 年 ImageNet 競賽 中以超越第二名 10.9個百分點的優(yōu)異成績一舉奪冠,從而打響了卷積神經(jīng)網(wǎng)絡(luò)乃至深度學(xué)習(xí)在計算機視覺領(lǐng)域中研究熱潮的“第一槍”。
Alex-Net 由加拿大多倫多大學(xué)的 Alex Krizhevsky、Ilya Sutskever(G. E. Hinton 的兩位博士生)和 Geoffrey E. Hinton 提出,網(wǎng)絡(luò)名“Alex-Net”即 取自第一作者名。
關(guān)于 Alex-Net 還有一則八卦:由于 Alex-Net 劃時代的意義,并由此開啟了深度學(xué)習(xí)在工業(yè)界的應(yīng)用。
2015 年 Alex 和 Ilya 兩位作者連同“半個”Hinton 被 Google 重金(據(jù)傳高達 3500 萬美金)收買。
但為何說“半個”Hinton? 只因當(dāng)時 Hinton 只是花費一半時間在 Google 工作,而 另一半時間仍然留在多倫多大學(xué)。
下圖所示是 Alex-Net 的網(wǎng)絡(luò)結(jié)構(gòu),共含五層卷積層和三層全連接層。其中,Alex-Net 的上下兩支是為方便同時使用兩片 GPU 并行訓(xùn)練,不過在第三層卷積和全連接層處上、下兩支信息可交互。
由于兩支網(wǎng)絡(luò)完全一致, 在此僅對其中一支進行分析。下表列出了 Alex-Net 網(wǎng)絡(luò)的架構(gòu)及具體參數(shù)。
單在網(wǎng)絡(luò)結(jié)構(gòu)或基本操作模塊方面,Alex-Net 的改進非常微小,構(gòu)建網(wǎng)絡(luò)的基本思路變化不大,僅在網(wǎng)絡(luò)深度、復(fù)雜度上有較大優(yōu)勢。
圖1Alex-Net 網(wǎng)絡(luò)結(jié)構(gòu)
Alex-Net 網(wǎng)絡(luò)架構(gòu)及參數(shù)
不過仍需指出 Alex-Net 的幾點重大貢獻,正因如此,Alex-Net 方可在整個卷積神經(jīng)網(wǎng)絡(luò)甚至連接主義機器學(xué)習(xí)發(fā)展進程中占據(jù)里程碑式的地位。
Alex-Net 首次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于計算機視覺領(lǐng)域的海量圖像數(shù) 據(jù)集 ImageNet(該數(shù)據(jù)集共計 1000 類圖像,圖像總數(shù)約 128 多 萬張),揭示了卷積神經(jīng)網(wǎng)絡(luò)擁有強大的學(xué)習(xí)能力和表示能力。
另一方面,海量數(shù)據(jù)同時也使卷積神經(jīng)網(wǎng)絡(luò)免于過擬合。可以說二者相輔相成,缺一不可。自此便引發(fā)了深度學(xué)習(xí),特別是卷積神經(jīng)網(wǎng)絡(luò)在計算機視覺領(lǐng)域中“井噴”式的研究。
利用 GPU 實現(xiàn)網(wǎng)絡(luò)訓(xùn)練。在上一輪神經(jīng)網(wǎng)絡(luò)研究熱潮中,由于計算資源發(fā)展受限,研究者無法借助更加高效的計算手段(如 GPU),這也較大程度地阻礙了當(dāng)時神經(jīng)網(wǎng)絡(luò)的研究進程。
“工欲善其事,必先利其器”,在 Alex-Net 中,研究者借助 GPU 將原本需數(shù)周甚至數(shù)月的網(wǎng)絡(luò)訓(xùn)練過程大大縮短至 5~6 天。
在揭示卷積神經(jīng)網(wǎng)絡(luò)強大能力的同時,這無疑也大大縮短了深度網(wǎng)絡(luò)和大型網(wǎng)絡(luò)模型開發(fā)研究的周期并降低了時間成本??s短了迭代周期,正是得益于此,數(shù)量繁多、立意新穎的網(wǎng)絡(luò)模型和應(yīng)用才能像雨后春筍一般層出不窮。
一些訓(xùn)練技巧的引入使“不可為”變成“可為”,甚至是“大有可為”。如 ReLU 激活函數(shù)、局部響應(yīng)規(guī)范化操作、為防止過擬合而采取的數(shù)據(jù)增廣(data augmentation)和隨機失活(dropout)等。
這些訓(xùn)練技巧不僅保證了模型性能,更重要的是為后續(xù)深度卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建提供了范本。實際上,此后的卷積神經(jīng)網(wǎng)絡(luò)大體都遵循這一網(wǎng)絡(luò)構(gòu)建的基本思路。
局部響應(yīng)規(guī)范化(LRN)要求對相同空間位置上相鄰深度(adjacent depth)的卷積結(jié)果做規(guī)范化。
假設(shè)adi,j為第 d 個通道的卷積核在 (i, j) 位置處的輸出結(jié)果(即響應(yīng)),隨后經(jīng)過 ReLU 激活函數(shù)的作用,其局部響應(yīng)規(guī)范化的結(jié)果bdi,j可表示為:
其中,n 指定了使用 LRN 的相鄰深度卷積核數(shù)目,N 為該層所有卷積核數(shù)目。k、n、α、β 等為超參數(shù),需通過驗證集進行選擇,在原始 Alex-Net中這些參數(shù)的具體賦值如上表所示。
使用 LRN 后,在 ImageNet 數(shù)據(jù)集上Alex-Net 的性能分別在 top-1 和 top-5 錯誤率上降低了 1.4% 和 1.2%;此外,一個四層的卷積神經(jīng)網(wǎng)絡(luò)使用 LRN 后,在 CIFAR-10 數(shù)據(jù)上的錯誤率也從 13% 降至 11%。
LRN 目前已經(jīng)作為各個深度學(xué)習(xí)工具箱的標(biāo)準(zhǔn)配置,將 k、n、α、β等超參數(shù)稍做改變即可實現(xiàn)其他經(jīng)典規(guī)范化操作。如當(dāng) “k = 0,n = N,α = 1,β = 0.5”時便是經(jīng)典的 l2 規(guī)范化:
02
VGG-Nets 網(wǎng)絡(luò)模型
VGG-Nets 由英國牛津大學(xué)著名研究組 VGG(VisualGeometryGroup) 提出,是 2014 年 ImageNet 競賽定位任務(wù) (localization task) 第一名和分類 任務(wù)第二名做法中的基礎(chǔ)網(wǎng)絡(luò)。
由于 VGG-Nets 具備良好的泛化性能,因而其在 ImageNet 數(shù)據(jù)集上的預(yù)訓(xùn)練模型(pre-trained model)被廣泛應(yīng)用于 除最常用的特征抽取 (feature extractor)外的諸多問題。
如物體候選框 (object proposal) 生成、細(xì)粒度圖像定位與檢索 (fine-grained object localization and image retrieval)、圖像協(xié)同定位 (co-localization) 等。
以 VGG-Nets 中的代表 VGG-16 為例,下表列出了其每層具體參數(shù)信息。
可以發(fā)現(xiàn),相比 Alex-Net,VGG-Nets 中普遍使用了小卷積核以及“保持輸入大小”等技巧,為的是在增加網(wǎng)絡(luò)深度 (即網(wǎng)絡(luò)復(fù)雜度) 時確保各層輸入大小隨深度增加而不急劇減小。
同時,網(wǎng)絡(luò)卷積層的通道數(shù) (channel) 也從 3 → 64 → 128 → 256 → 512 逐漸增加。
VGG-16 網(wǎng)絡(luò)架構(gòu)及參數(shù)
03
Network-In-Network
Network-In-Network(NIN) 是由新加坡國立大學(xué) LV 實驗室提出的異于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的一類經(jīng)典網(wǎng)絡(luò)模型,它與其他卷積神經(jīng)網(wǎng)絡(luò)的最大差異是用多層感知機(多層全連接層和非線性函數(shù)的組合)替代了先前卷積網(wǎng)絡(luò)中簡單的線性卷積層,如下圖所示。
我們知道,線性卷積層的復(fù)雜度有限,利用線性卷積進行層間映射也只能將上層特征或輸入進行
“簡單”的線性組合形成下層特征。而 NIN 采用了復(fù)雜度更高的多層感知機 作為層間映射形式,這一方面提供了網(wǎng)絡(luò)層間映射的一種新可能。
另一方面增加了網(wǎng)絡(luò)卷積層的非線性能力,使得上層特征可以更復(fù)雜地被映射到下層,這樣的想法也被后期出現(xiàn)的殘差網(wǎng)絡(luò)和 Inception 等網(wǎng)絡(luò)模型所借鑒。
圖2 傳統(tǒng)卷積模塊(a)與 NIN 網(wǎng)絡(luò)卷積模塊(b)
同時,NIN 網(wǎng)絡(luò)模型的另一個重大突破是摒棄了全連接層作為分類層的傳統(tǒng),轉(zhuǎn)而改用全局匯合操作(global average pooling),如下圖所示。
NIN最后一層共有 C 張?zhí)卣鲌D(feature map),分別對應(yīng)分類任務(wù)的 C 個類別。全局匯合操作分別作用于每張?zhí)卣鲌D,最后將匯合結(jié)果映射到樣本真實標(biāo) 記。
可以發(fā)現(xiàn),在這樣的標(biāo)記映射關(guān)系下,C 張?zhí)卣鲌D上的響應(yīng)將很自然地分別對應(yīng)到 C 個不同的樣本類別,這也是相對先前卷積網(wǎng)絡(luò)來講,NIN 在模型可解釋性上的一個優(yōu)勢。
圖3 NIN 網(wǎng)絡(luò)模型整體結(jié)構(gòu)
此示例中的 NIN 堆疊了三個多層感知機卷積層模塊和一個全局匯合操作層作為分類層
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4797瀏覽量
102367 -
gpu
+關(guān)注
關(guān)注
28文章
4882瀏覽量
130408 -
計算機視覺
+關(guān)注
關(guān)注
9文章
1705瀏覽量
46480
原文標(biāo)題:3 個經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)案例分析
文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論