目的:
改進CNN,可以學習到更加抽象和有效的非線性特徵
常規卷積層: conv→relu
- conv: conv_out=∑(x·w)
- relu: y=max(0, conv_out)
maxout: several conv(full)→max
- maxout:一種激活函數形式
- several conv (full): conv_out1 = x·w_1, conv_out2 = x·w_2, …
- max: y = max(conv_out1, conv_out2, …)
- 線性變化+Max操作可以擬合任意的的凸函數
NIN: serveral conv(full)→relu→conv(1x1)→relu
- several conv (full): conv_out1 = x·w_1, conv_out2 = x·w_2, …
- relu: relu_out1 = max(0, conv_out1), relu_out2 = max(0, conv_out2), …
- conv(1x1): conv_1x1_out = [relu_out1, relu_out2, …]·w_1x1
- relu: y = max(0, conv_1x1_out)
- NIN想表明:不僅能夠擬合任何凸函數,而且能夠擬合任何函數,因爲它本質上可以說是一個小型的全連接神經網絡
1.MLP Convolution Layers
-
mlpconv網絡層替代傳統的convolution層
-
mlpconv網絡層:卷積 + 傳統的mlp(多層感知器)
-
在跨通道(cross channel,cross feature map)情況下,mlpconv 等價於 卷積層 + 1×1卷積層
-
1×1卷積層 實現多個feature map的線性組合,實現跨通道的信息整合
CNN高層特徵是低層特徵通過某種運算的組合
在每個局部感受野中進行更加複雜的運算(包含一個微型的多層網絡),提高非線性
同一層中,不同特徵層之間(每一層之間的特徵提取又加上了一個小的神經網絡。)
2.Global Average Pooling
替代全連接層,減少參數
feature map數量等於category數量
- 傳統:卷積出現在底層網絡,最後一個卷積層的特徵圖通過量化送到全連接,接一個softmax邏輯迴歸分類層
(特徵提取+傳統網絡) - 優化:卷積之後,對每個特徵圖一整張圖片進行全局均值池化,這樣每張特徵圖都可以得到一個輸出。
(每張特徵圖相當於一個輸出特徵,表示輸出類的特徵。) - 特點:強化特徵圖與類別的關係,沒有參數需要進行優化
3.補充
- 仿射特徵圖(affine feature maps):是直接由線性卷積得到的特徵圖,沒有通過激活函數進行非線性映射。
4.重點知識
- 1×1卷積核:
(1)一個通道:同一個w去乘以原圖像上的每一個像素點,相當於做了一個scaling
(2)多個通道:實現跨通道的交互和信息整合
(卷積操作本身就可以做到各個通道的重新聚合的作用)
(3)卷積時:11* 11* 3* 96(11*11的卷積kernel,輸出map 96個)對於一個patch輸出96個點,是輸出feature map同一個像素的96個channel,但是現在多加了一層MLP,把這96個點做了一個全連接,又輸出了96個點——很巧妙,這個新加的MLP層就等價於一個1 * 1 的卷積層
(4)1 * 1的卷積可以看作是 對 每個feature map 對應的 相關 patch 做全連接(加權求和) - the author’s goal was to generate a deeper network without simply stacking more layers.
It replaces few filters with a smaller perceptron layer with mixture of 1x1 and 3x3 convolutions. In a way,
it can be seen as “going wide” instead of “deep”,