生活随笔
收集整理的這篇文章主要介紹了
图像分类模型 I. 从LeNet到ResNet
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從LeNet到ResNet,神經網絡沿著越來越深方向演進。
LeNet
LeNet是最早發布的卷積神經網絡,取得了與SVM性能相媲美的效果,廣泛應用于ATM數字識別。代碼實現
模型亮點: 1)使用2個卷積塊(每個卷積塊由卷積層、非線性激活函數、匯聚層組成)提取特征,后接3個全連接層進行圖像分類。 2)為了構造高性能的卷積神經網絡,對卷積層進行排列,逐漸降低空間分辨率,同時增加通道數。
知識點: feature map空間分辨率計算公式:N =??(W-K+2P)/S? + 1
- 輸入圖片大小:W×W,卷積核大小:K×K,padding大小:P×P,步長:S
AlexNet
AlexNet由Hinton和學生Alex Krizhevsky提出,斬獲ILSVRC?2012(ImageNet Large Scale Visual Recognition Challenge)冠軍。分類準確率由傳統的70%+提升至80%+。代碼實現
模型亮點: 1)首次利用GPU進行網絡加速訓練。 2)采用ReLU作為激活函數。 3)全連接層采用Dropout正則化技術減少過擬合。
VGG
VGG由牛津大學著名研究組VGG(Visual Geometry Group)提出,斬獲ILSVRC 2014 Localization Task第一名和Classification Task第二名。代碼實現
注:224=2^5?× 7(對應5個卷積塊+3個全連接層)
模型亮點: 1)采用可復用的卷積塊構造網絡,使得復雜網絡的設計更加簡潔有效。 2)通過堆疊多個3×3的卷積核代替大尺度卷積核,減少模型參數,提升計算機視覺任務性能。
知識點: 感受野
- 感受野計算公式:F(i) = (F(i+1) - 1)?× S + K,其中 步長:S,卷積核大小:K。
- 堆疊2個3×3的卷積核代替5×5的卷積核,堆疊3個3×3的卷積核可以代替7×7的卷積核(擁有相同的感受野)。
- 7×7卷積核所需參數:7×7×C×C=49C2,堆疊3個3×3卷積核所需參數:3×3×C×C?×3=27C2。
GoogLeNet
GoogLeNet由Google團隊提出,斬獲ILSVRC 2014 Classification Task第一名。代碼實現
| | Inception module with dimension reductions? |
模型亮點: 1)引入了Inception塊(融合不同尺度的特征信息), Inception塊的通道數分配之比是在ImageNet數據集上通過大量的實驗得來的。 2)使用1×1的卷積核進行降維以及映射處理。 3)使用平均匯聚層代替全連接層,大大減少模型參數。GoogLeNet網絡參數約為VGG16的1/20。 4)添加2個輔助分類器幫助訓練。
知識點: Inception結構:
ResNet
ResNet由微軟實驗室的He?Kaiming等提出,斬獲ILSVRC 2015年分類任務第一名,目標檢測第一名。COCO數據集目標檢測第一名,圖像分割第一名。代碼實現
注: - 224=2^5?× 7(對應5個卷積塊?—對應 conv1~conv5)。
- 代碼實現中有兩個參數比較重要。主卷積的輸出通道數(conv2~conv5按64逐步翻倍),每個residual block的膨脹系數(按主卷積的輸出通道進行膨脹,bottleneck expansion=4,?basicblock expansion=1)。
- conv1/max pool/conv3_1/conv4_1/conv5_1 stride=2,每個模塊分辨率減為1/22。conv3_1/conv4_1/conv5_1分辨率變化,對于bottleneck conv3_1+/conv4_1+/conv5_1+通道數發生變化。只要形狀發生變化(包括分辨率和通道數)需要增加 Down-sampling,保證residual結構有效(詳見Residual Block)。
模型亮點: 1)利用residual塊可以訓練出有效的超深神經網絡,對后續神經網絡設計范式產生深遠影響。 2)使用Batch Normalization加速網絡訓練。
知識點: 1)退化問題(degradation problem)
- 深度神經網絡容易產生退化問題(如左圖,訓練欠擬合) ?
- ResNet可以解決深度神經網絡的退化問題(如右圖)
2)Residual Block
- 較淺神經網絡(resnet18/resnet34)選擇重量級residual block(稱為basicblock),較深神經網絡(resnet50/resnet101/resnet152)選擇輕量級的residual block(稱為bottleneck)(使用1×1的卷積核來進行降維和升維,可以極大地減少模型參數)。
- conv3_1/conv4_1/conv5_1 通過設置主卷積(代碼實現中選擇第2個3x3卷積作為主卷積)的stride=2,使得分辨率減為1/22?,shortcut為了保持和主分支Shape一致(包括分辨率和深度),需要增加Down-Sampling(Option B)。
| resnet18/resnet34 | resnet50/resnet101/resnet152 |
| | |
3)Batch Normalization
- Batch Normalization(google, 2015)是對feature map進行標準化處理(均值為0方差為1),類似于圖像預處理中的標準化處理一樣,可以加速網絡收斂并提升準確率。
- BN操作。μ、σ2?是正向傳播過程中統計得到的「類似于momentum方法」,γ、β是反向傳播過程中訓練得到的。
- BN層通常放在卷積層和激活函數之間,且卷積層不需要使用bias。
ResNeXt
ResNeXt是ResNet的改進版本,主要是更新了block。代碼實現
模型亮點: 1)更新了block,采用了帶有組卷積的bottleneck(僅對resnetresnet50/resnet101有意義)。 2)相同計算量的前提下,錯誤率更低。
知識點: 1)相同計算量的前提下,錯誤率更低。 2)Group Convolution,參數 DW Conv是一種特殊的組卷積。
總結
以上是生活随笔為你收集整理的图像分类模型 I. 从LeNet到ResNet的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。