扒一扒神经网络--NIN
Network in network
作為GoogLeNet等Inception網絡的設計提供了一個很好的開端,NIN這篇論文提供了一個很好trick,因此在分析Inception系列之前,我們先來扒一扒這篇network in network
Title:?Network in network
Author and affiliation:?Min Lin; 新加坡國立大學
Year: 2014
Datasets: CIFAR-10, CIFAR-100, SVHN, MINST
Main contributions:?
該論文旨在增強對于局部patch在感受野范圍內的辨別能力。
1.多層堆疊的復雜結構
傳統的卷積網絡的每一層都是由每個patch與卷積核進行加權求和,然后接上一個激活函數以增強模型的線性表達能力,也就是運用了GLM廣義線性模型來進行特征提取。但這種模型對于線性可分的concept(對于concept中的所有變量都屬于GLM定義的分割面的一側)也許是可以的,而CNN也正是以這個假設為前提的。但對于非線性的情況,GLM的能力就顯得有些不夠了,雖然可能通過很多的濾波器去提取所有可能的特征,但這種模式帶來的參數規模是巨大的,因此需要引入更有效的非線性模型去加強模型的表達能力。
由于對于輸入數據的分布是未知的,因此需要用一個通用的函數逼近器。徑向基網絡和多層感知機MLP是比較常用的通用函數逼近器。作者使用用MLP[1]作為一種“微型網絡”作為層來去逼近數據模型,并用后饋來對網絡進行訓練。主要有兩大原因:第一,MLP與卷積神經網絡的結構是兼容的,都可以通過后饋來訓練網絡,MLP只是增加了網絡的隱層個數;第二,MLP本身也是一種深度模型,因此這與特征復用的思想是一致的。如下圖可見,MLP包含了多個全連接層在兩層的特征圖之間。通過這種堆疊的方式來增強模型的非線性表達能力,同時比運用一大堆濾波器節省參數。
?
感知機神經網絡MLP通過下式進行計算:
其中n為MLP中的隱層數量(論文中取了n=2),k為特征圖對應的索引。在每一個隱層后都會接一個ReLu激活函數。
作者使用MLP去替代了傳統cnn中使用的GLM,結構區別見下圖,MLP通過多層隱層網絡,增加了模型的非線性表達能力。論文中的MLP在傳統卷積后接了兩個全連接層(等價于1*1的卷積層),隱層的第一層的神經單元就是patch中每個通道對應的每個像素賦予權重和bias后的計算值,然后再向后繼續重復這種計算n-1次,通過這種方式,通過對特征圖的線性組合實現了多通道之間的信息融合。
ps:徑向基RBF網絡的輸入層到隱藏層之間不是通過權值和閾值進行連接的,而是通過輸入樣本與隱藏層點之間的距離(與中心點的距離)連接的。RBF網絡可以逼近任一的非線性網絡,具有良好的泛化能力,且收斂速度快。RBF激活函數可通過下式大致了解下,之后會出篇專門介紹RBF的博客,這篇還是把重點放在MLP上吧~
此外,作者還將MLP與maxout網絡進行了對比[3]。maxout網絡一種基于MLP的模型,每個maxout模型內部可以有多個仿射變換,如下圖的maxout網絡模型。輸入層經過三個仿射變換(可以理解為三個channels的特征提取器)進行特征提取,我們不再用任何非線性激活函數去處理隱層的輸出,而是去這三個變換中的最大值最為這一層的輸出。需要注意的是,這里的選取最大值是跨通道的,即在所有通道中去選擇同一位置像素的最大值。通過這種方式,它通過線性變換組合了多個放射變換,使得整個maxout網絡是非線性變換。
通過高等數學的可以知道任意的凸函數都可由分段線性函數來擬合,而maxout可以近似于一種分段函數的實現。因此maxout可以去逼近任一凸函數。
論文中提出的MLP(激活函數使用的是ReLu)與maxout網絡相比,它屬于通用函數逼近器,而maxout屬于凸函數逼近器。因此MLP在擬合不同分布的輸入上有更好的能力。
2.全局平均池化替換全連接層
在傳統的神經網絡中,最后一個卷積層通常會被向量化輸入到全連接層,然后接一個softmax進行分類。但全連接層由于神經元多,參數量大,常常容易引起過擬合問題,影響了模型的泛化能力。dropout [2]是一種解決這個問題的方式。
作者提出了另一種方式直接替換掉了全連接層,那就是全局平均池化。這種方法將卷積的最后一層(在NIN中也就是MLP的最后一層)的結果,對于每個類別有一張特征圖(也就是將最后一層的特征圖數設為類別數)然后進行全局平均池化,其結果將被直接輸入到softmax中進行分類,得到每一個類別的預測值。
這樣做的好處是:
a. 由于對網絡的最后一層特征圖直接進行池化作為分類器的輸入,因此這種模式下可以使得特征圖與類別之間的對應關系得到了增強。在下圖的NIN可視化圖中也可以看出,最后一個MLP層的特征圖的最大激活區域與輸入圖像的真實物體的區域是相同的。
b. 這一層沒有多余參數,因此對比起全連接層可以在一定程度上避免過擬合
c. 全局平均池化結合了圖像的空間信息,因此這種模型對于輸入的空間轉換更魯棒。
?
Architecture:
該論文的網絡框架其實就是三層卷積,每個卷積層中都包含了一個MLP增強非線性能力。最后是一個全局平均池化層(GAP)層和softmax層。
Results:
作為正則化因子,在NIN中,除了最后一層,其余層都是用了dropout。其中的預處理部分同[3]中Goodfellow的一樣。
預處理:
- 全局對比度歸一化GCN
- ZCA白化(先用PCA提取主特征,再經過標準差歸一化處理,最后再變換到原始數據空間),去掉圖像的冗余信息。
a. CIFAR-10
圖像的尺寸為32*32的RGB圖像,作者用未經過數據增強和使用了數據增強的
b. CIFAR-100
c. SVHN
在SVHN上雖然不是效果最好的,但效果也還可以。
d. MNIST
在MNIST上雖然不是效果最好的,但效果與最好的十分相近。
e. GAP作為正則項
GAP層和全連接層很相似,都對特征向量做了線性轉換,但使用了不同的轉換矩陣。GAP的轉換矩陣是事先定義的并且僅在共享相同值的塊對角線元素上是非零的。這部分的實驗驗證了使用GAP的效果確實比使用全連接層要好一點。
Github:
Multilayer Perceptron
Reference:
[1]?Frank Rosenblatt. Principles of neurodynamics. perceptrons and the theory of brain mechanisms. Technical report, DTIC Document, 1961.
[2]?Geoffrey E Hinton, Nitish Srivastava, Alex Krizhevsky, Ilya Sutskever, and Ruslan R Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580, 2012.
[3]?Ian J Goodfellow, David Warde-Farley, Mehdi Mirza, Aaron Courville, and Yoshua Bengio. Maxout networks. arXiv preprint arXiv:1302.4389, 2013.
作者:miya_xu?出處:https://blog.csdn.net/u012885745/article/details/84714124 歡迎轉載或分享,但請務必聲明文章出處。
總結
以上是生活随笔為你收集整理的扒一扒神经网络--NIN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shiro权限框架详解02-权限理论介绍
- 下一篇: sql安装后pubs库丢失 解决方法