论文阅读:Network In Network
源碼及論文地址:https://github.com/BVLC/caffe/wiki/Model-Zoo#network-in-network-model
這篇paper改進(jìn)了傳統(tǒng)的CNN網(wǎng)絡(luò),采用了少量的參數(shù)就輕松擊敗了Alexnet網(wǎng)絡(luò),Alexnet網(wǎng)絡(luò)參數(shù)大小是230M,采用這篇paper的算法才29M,減小了將近10倍。另外,這篇paper提出的網(wǎng)絡(luò)結(jié)構(gòu),是對傳統(tǒng)CNN網(wǎng)絡(luò)的一種改進(jìn)。
先看一下摘要,對NIN有個(gè)簡單的了解:
文章中的兩個(gè)創(chuàng)新點(diǎn):
1. MlpConv卷積層
傳統(tǒng)卷積層時(shí)下圖左側(cè)方式的,可以理解為是一個(gè)簡單的單層網(wǎng)絡(luò),而MlpConv可以看成是每個(gè)卷積的局部感受野中還包含了一個(gè)微型的多層網(wǎng)絡(luò),用來提高非線性。利用多層Mlp的微型網(wǎng)絡(luò),對每個(gè)局部感受野的神經(jīng)元進(jìn)行更加復(fù)雜的運(yùn)算,而以前的卷積層,局部感受野的運(yùn)算僅僅只是一個(gè)單層的神經(jīng)網(wǎng)絡(luò)罷了。
一個(gè)MlpConv的網(wǎng)絡(luò)結(jié)構(gòu)如下:
其實(shí)結(jié)構(gòu)很簡單,就是三個(gè)卷積層的堆疊,我們用Netscope可視化后可以看到一個(gè)MlpConv層的結(jié)構(gòu)如下圖:
2. 全局平均池化(Global Average Pooling)
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)卷積運(yùn)算一般是出現(xiàn)在低層網(wǎng)絡(luò)。對于分類問題,最后一個(gè)卷積層的特征圖通過量化然后與全連接層連接,最后在接一個(gè)softmax邏輯回歸分類層。這種網(wǎng)絡(luò)結(jié)構(gòu),使得卷積層和傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)層連接在一起。我們可以把卷積層看做是特征提取器,然后得到的特征再用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)進(jìn)行分類。
然而,全連接層因?yàn)閰?shù)個(gè)數(shù)太多,往往容易出現(xiàn)過擬合的現(xiàn)象,導(dǎo)致網(wǎng)絡(luò)的泛化能力不盡人意。于是Hinton采用了Dropout的方法,來提高網(wǎng)絡(luò)的泛化能力。
本文提出采用全局均值池化的方法,替代傳統(tǒng)CNN中的全連接層。與傳統(tǒng)的全連接層不同,我們對每個(gè)特征圖一整張圖片進(jìn)行全局均值池化,這樣每張?zhí)卣鲌D都可以得到一個(gè)輸出。這樣采用均值池化,連參數(shù)都省了,可以大大減小網(wǎng)絡(luò),避免過擬合,另一方面它有一個(gè)特點(diǎn),每張?zhí)卣鲌D相當(dāng)于一個(gè)輸出特征,然后這個(gè)特征就表示了我們輸出類的特征。這樣如果我們在做1000個(gè)分類任務(wù)的時(shí)候,我們網(wǎng)絡(luò)在設(shè)計(jì)的時(shí)候,最后一層的特征圖個(gè)數(shù)就要選擇1000。
論文中提到的全局平均池化的優(yōu)點(diǎn):
1. 相比于用全連接操作,feature map和類別之間用池化操作更自然些;
2. 參數(shù)量少了很多;
3. 全局平均池化考慮了圖像的空間特性,因此對輸入的空間變換有很好的魯棒性。
在實(shí)驗(yàn)部分,作者在CIFAR-10數(shù)據(jù)庫上給出了驗(yàn)證:
第一行是MlpConv結(jié)構(gòu)+全連接,由于存在過擬合,因此結(jié)果不是很好;第二行加入了dropout,結(jié)果提升了一些。第三行采用全局池化,結(jié)果是最優(yōu)的。
最后,NIN采用的網(wǎng)絡(luò)結(jié)構(gòu)是:
總結(jié)
以上是生活随笔為你收集整理的论文阅读:Network In Network的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机主机配置有哪些,电脑主机配置清单有
- 下一篇: sql去重复查询distinct_SQL