LeNet原始論文中的版本 數(shù)據(jù)集為MNIST,輸入:32?32?1

下采樣的方式為 這里,w 和 b 是可學(xué)習(xí)參數(shù)。
conv2使用了包括3層、4層、6層三種通道數(shù)不同的filters,然后將它們的輸出拼接在一起作為這一層的輸出。

這里使用多組不同形式的卷積的原因: 最后一層是RBF,雖是全連接,但參數(shù)W是給定值。輸入的84維向量相當(dāng)于12?7的比特圖。輸出的每一個(gè)值,代表了輸入與輸出對(duì)應(yīng)的參數(shù)權(quán)重的均方誤差MSE。 要求損失函數(shù)可以使正確的label對(duì)應(yīng)的輸出值越小越好。 Caffe中的實(shí)現(xiàn),輸入的 batch size 64,歸一化scale 0.00390625

損失函數(shù)為 SoftmaxWithLoss 細(xì)節(jié):
AlexNet - ImageNet Classification with Deep Convolutional Neural Networks結(jié)構(gòu)

浮點(diǎn)乘法運(yùn)算量: 55?55?96?11?11?3+27?27?256?5?5?96+13?13?384?3?3?256+13?13?384?3?3?384+13?13?256?3?3?384+6?6?256?4096+4096?4096+4096?1000 參數(shù)60 Million,MACs 1.1 Billion (實(shí)際計(jì)算量比這個(gè)值小,因?yàn)镃onv層中使用了group)
第一次引入ReLU,并使用了 overlapping Max Pooling 在前兩個(gè)全連接層使用了系數(shù)為0.5的 Dropout,因此測(cè)試時(shí)需要將結(jié)果乘以0.5 在論文中,還引入了局部響應(yīng)歸一化層LRN。但后來證明沒有效果提升。同時(shí),overlapping Max Pooling也沒有被廣泛應(yīng)用。 訓(xùn)練細(xì)節(jié): batch size 128,momentum 0.9,weight decay 5e-4 學(xué)習(xí)率初始為0,每當(dāng)error停止下降,就除以10 數(shù)據(jù)增強(qiáng) 對(duì)于訓(xùn)練集,隨機(jī)剪裁。對(duì)于測(cè)試集,將原始圖片和對(duì)應(yīng)的水平鏡像從中間和四邊剪切,然后將這十個(gè)預(yù)測(cè)結(jié)果取平均 PCA jittering。基于整個(gè)訓(xùn)練集特征值 λ 和特征向量 P,對(duì)于每個(gè)epoch的每一張圖像,從均值0、方差0.1的高斯分布隨機(jī)抽取 α。對(duì)原始圖片三維通道做 λ * α * P 映射
ZFNet - Visualizing and Understanding Convolutional Networks引入 DeconvNet 來可視化某一 feature map 將該層其余 feature maps 設(shè)置為0,然后經(jīng)過一系列的 (i) unpool (ii) rectify (iii) filters 映射回像素級(jí)別。 其中,(i) unpool:max-pooling同時(shí)記錄位置信息。(ii) ReLU。(iii) 原卷積對(duì)應(yīng)矩陣的轉(zhuǎn)置。 論文中使用可視化方法: 對(duì)于某一層的某個(gè) feature map,我們?cè)隍?yàn)證集中尋找使該 feature map 的 response 最大的九張圖片,畫出這九張圖片中的該 feature map 反卷積映射的結(jié)果,并和原圖相對(duì)應(yīng)的 patch 對(duì)比 特征可視化:層數(shù)越高,提取的特征越復(fù)雜,不變性越明顯,越 discrimination。 訓(xùn)練過程中特征收斂過程:層數(shù)越低,收斂越早 特征不變性:(1) 圖像縮放、平移對(duì)模型第一層影響較大,對(duì)后面基本沒有影響;(2) 圖像旋轉(zhuǎn)后,特征不具有不變性。 通過第一層和第二層可視化對(duì)AlexNet進(jìn)行改造得到ZFNet:減小感受野,降低步長(zhǎng)。 模型對(duì)局部特征敏感 模型具有特征泛化性,因此可以用于遷移學(xué)習(xí)。
Network in Network引入1x1卷積 Original:Conv 3x3 -> ReLU -> Pooling MLPConv: Conv 3x3 -> ReLU -> Conv 1x1 -> ReLU -> ... -> Pooling 使用 average pooling 取代 FC 結(jié)構(gòu):MLPConv 堆疊 + global average pooling
VGG - Very Deep Convolutional Networks for Large-Scale Image Recognition使用了統(tǒng)一的卷積結(jié)構(gòu),證明了深度對(duì)模型效果的影響。LRN層沒有提升效果。 堆疊多個(gè)3x3的感受野,可以獲得類似于更大感受野的效果。同時(shí),多層3x3卷積堆疊對(duì)應(yīng)的參數(shù)更少(減少參數(shù)相當(dāng)于正則化效果) 運(yùn)用了 Network in Network 中提出的1x1卷積。 訓(xùn)練方式: 256 batch size,0.9 momentum,5e-4 weight decay,0.5 dropout ratio。learning rate:初始1e-2,每當(dāng)停止提升后下降為之前的十分之一 數(shù)據(jù)增強(qiáng) 顏色增強(qiáng) color jittering,PCA jittering
尺度變換:訓(xùn)練集隨機(jī)縮放到[256, 512],然后隨機(jī)剪切到224x224 尺度變換對(duì)應(yīng)的測(cè)試方法:(1) 隨機(jī)裁剪,取平均,類似AlexNet (2) 將FC轉(zhuǎn)為Conv,原始圖片直接輸入模型,這時(shí)輸出不再是1x1x1000,而是NxNx1000,然后取平均。
GoogLeNet - Going deeper with convolutions論文發(fā)表之前相關(guān)的工作:當(dāng)時(shí)研究者關(guān)注增加層數(shù)和filter數(shù)目(可能會(huì)導(dǎo)致小樣本過擬合,并需要大量的計(jì)算資源),并通過Dropout防止過擬合。盡管有人認(rèn)為 Max Pooling 造成了空間信息的損失,但這種結(jié)構(gòu)在 localization、detection、human pose estimation 中均取得很好的成績(jī)。 Network-In-Network 中引入1x1卷積,增加了神經(jīng)網(wǎng)絡(luò)的表示能力【representational power】。GoogLeNet中的 Inception 結(jié)構(gòu)也運(yùn)用了1x1卷積來進(jìn)行降維處理。 為解決過擬合和計(jì)算代價(jià)高的問題,使用稀疏網(wǎng)絡(luò)來代替全連接網(wǎng)絡(luò)。在實(shí)際中,即使用卷積層。 Inception結(jié)構(gòu):對(duì)于輸入的 feature maps,分別通過1x1卷積、3x3卷積、5x5卷積和 Max-Pooling 層,并將輸出的 feature maps 連接起來作為 Inception 的輸出【同時(shí)獲得不同感受野的信息】。在3x3卷積、5x5卷積前面和池化層后面接1x1卷積,起降維的作用。
Inception v2 v3 - Rethinking the Inception Architecture for Computer VisionCNN的通用設(shè)計(jì)思想 通常,隨著網(wǎng)絡(luò)層數(shù)增加,空間特征數(shù)逐漸降低,通道數(shù)逐漸增加。
不要過度壓縮損失精度信息,避免表征瓶頸。
增加非線性特征可以解耦合特征。
卷積的實(shí)現(xiàn)形式為空間聚合【spatial aggregation】
1x1卷積降維不會(huì)產(chǎn)生嚴(yán)重的影響。猜測(cè):相鄰?fù)ǖ乐g具有強(qiáng)相關(guān)性,卷積前降維基本不會(huì)損失信息。
5x5卷積的感受野與兩個(gè)3x3卷積堆疊所對(duì)應(yīng)的感受野相同。使用后者可以大大減少網(wǎng)絡(luò)參數(shù)。7x7同理。此外,兩個(gè)3x3卷積后各連接一個(gè)非線性層的效果優(yōu)于僅在最后連接一個(gè)非線性層 NxN的卷積可以用1xN與Nx1的卷積堆疊實(shí)現(xiàn)。 使用 Label Smoothing 增加網(wǎng)絡(luò)的正則能力。使用 Batch Normalization 和 RMSProp
ResNet - Deep Residual Learning for Image Recognition網(wǎng)絡(luò)過深會(huì)導(dǎo)致退化問題,通過短路連接解決該問題。 通常,一個(gè) residual unit 的殘差部分使用二至三層的函數(shù)映射(或稱卷積層),shortcut 部分與殘差部分進(jìn)行 eltwise add 后再連接非線性層。
補(bǔ)充:論文Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 相比v3,Inception v4的主要變化是網(wǎng)絡(luò)的加深,卷積和的個(gè)數(shù)也大大增加 Inception-ResNet即將ResNet的殘差結(jié)構(gòu)替換成了簡(jiǎn)單的Inception結(jié)構(gòu) 文中認(rèn)為ResNet對(duì)提高精度的幫助較小【ResNet論文中提到ResNet解決了退化問題】,加快過深網(wǎng)絡(luò)的訓(xùn)練速度是其主要優(yōu)勢(shì)。對(duì)于特別深的殘差網(wǎng)絡(luò),可以通過在殘層結(jié)構(gòu)后接一個(gè)scaling【如殘層結(jié)構(gòu)輸出的一個(gè)元素乘以0.2】來提高模型穩(wěn)定性。
Wide Residual Networks 很多論文在ResNet的網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上進(jìn)行了細(xì)微的改動(dòng)。主要的觀點(diǎn)是ResNet存在diminishing feature reuse的問題。網(wǎng)絡(luò)過深,很多殘差塊對(duì)最終結(jié)果只做出了很少的貢獻(xiàn)。甚至,有些殘差塊沒有學(xué)到有用的信息,反而在之前學(xué)到的feature representation中加入了輕微噪聲 ResNet提高一點(diǎn)精度可能需要將深度增加一倍,而且會(huì)產(chǎn)生diminishing feature reuse問題,因此提出增加殘差塊的寬度,減少網(wǎng)絡(luò)深度的WRNs 文中提到論文 Deep Networks with Stochastic Depth 中通過使殘差塊隨機(jī)失活來降低每次訓(xùn)練使網(wǎng)絡(luò)的深度。 作者做了大量的實(shí)驗(yàn),表明兩個(gè)3x3卷積堆疊的殘差塊的效果優(yōu)于其他殘差塊結(jié)構(gòu)。 同時(shí)增加深度和寬度可以提高精度,但需要正則。增加寬度比增加深度更容易訓(xùn)練。 在瘦長(zhǎng)和矮胖的網(wǎng)絡(luò)中,在殘差塊中的兩個(gè)卷積間增加 Dropout 層均有效果。在不做大量的數(shù)據(jù)增強(qiáng)的前提下,Dropout 的效果比 Batch Normalization 更好
Aggregated Residual Transformations for Deep Neural Networks 指出 Inception 過于復(fù)雜,不易遷移到其他問題上;ResNet 存在 diminishing feature reuse 的問題。 提出了基數(shù)的概念,殘差塊采用 split-transform-merge 的策略,基數(shù)類似 group,表示 split 的數(shù)目。這種架構(gòu)可以接近 large and dense layers 的表示能力,但只需要很少的計(jì)算資源。 ResNeXt 有一種基本形式和兩種變體,一種類似 Inception-ResNet,一種使用 group 實(shí)現(xiàn)。
Densely Connected Convolutional Networks DenseNet 極大地增加了特征重用的能力,其有以下優(yōu)點(diǎn)。1. 參數(shù)少,通過向后連接的方式保留學(xué)到的信息;2. 改進(jìn)了前向、反向傳播,更易訓(xùn)練;3. 增加了監(jiān)督學(xué)習(xí)的能力;4. 在小數(shù)據(jù)上不易過擬合,即增加了正則化的能力。 Dense Block 中,對(duì)于任意一層的 feature maps,一方面會(huì)通過 BN-ReLU-Conv(1x1)-BN-ReLU-Conv(3x3)得到下一層的 feature maps,另一方面會(huì)與其后的每一層 feature maps 連接在一起。并提出了 growth rate 的概念,增長(zhǎng)率 k 是3x3卷積層輸出的 feature maps 數(shù), 而1x1卷積層輸出的 feature maps 數(shù)為 4k 在 ImageNet 比賽中運(yùn)用的模型,每?jī)蓚€(gè) Dense Block 中間以 Batch Normalization - ReLU - Conv(1x1) - Aver Pooling(2x2) 相連。
Squeeze-and-Excitation Networks 
SqueezeNet, ShuffleNet, MobileNet, Xception SqueezeNet 的基本結(jié)構(gòu)是 File Module,輸入的 feature maps 先經(jīng)過1x1卷積降維,然后分別通過1x1卷積和3x3卷積,并將兩個(gè)輸出連接起來,作為這個(gè)模塊整體的輸出。SqueezeNet 的結(jié)構(gòu)就是多個(gè) File Module 堆疊而成,中間夾雜著 max pooling。最后用 deep compression 壓縮 MobileNet 的基本結(jié)構(gòu)是 3x3 depth-wise Conv 加 1x1 Conv。1x1卷積使得輸出的每一個(gè) feature map 要包含輸入層所有 feature maps 的信息。這種結(jié)構(gòu)減少了網(wǎng)絡(luò)參數(shù)的同時(shí)還降低了計(jì)算量。整個(gè) MobileNet 就是這種基本結(jié)構(gòu)堆疊而成。其中沒有池化層,而是將部分的 depth-wise Conv 的 stride 設(shè)置為2來減小 feature map 的大小。 ShuffleNet 認(rèn)為 depth-wise 會(huì)帶來信息流通不暢的問題,利用 group convolution 和 channel shuffle 這兩個(gè)操作來設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)模型, 以減少模型使用的參數(shù)數(shù)量,同時(shí)使用了 ResNet 中的短路連接。ShuffleNet 通過多個(gè) Shuffle Residual Blocks 堆疊而成。

Xception 相對(duì)于借鑒了 depth-wise 的思想,簡(jiǎn)化了 Inception-v3。Xception的結(jié)構(gòu)是,輸入的 feature maps 先經(jīng)過一個(gè)1x1卷積,然后將輸出的每一個(gè) feature map 后面連接一個(gè)3x3的卷積(再逐通道卷積),然后將這些3x3卷積的輸出連接起來。
補(bǔ)充:權(quán)重初始化方式Xavier - Understanding the difficulty of training deep feedforward neural networks MSRA - Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
轉(zhuǎn)載:https://www.cnblogs.com/viredery/p/convolution_neural_networks_for_classification.html
|