原文鏈接:blog.csdn.net/langb2014/article/details/52787095
來自caffeCN的一個簡要的總結(http://caffecn.cn/?/question/255):
先上Paper列表:
[v1] Going Deeper with Convolutions, 6.67% test error,http://arxiv.org/abs/1409.4842
[v2] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, 4.8% test error,http://arxiv.org/abs/1502.03167
[v3] Rethinking the Inception Architecture for Computer Vision, 3.5% test error,http://arxiv.org/abs/1512.00567
[v4] Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning, 3.08% test error,http://arxiv.org/abs/1602.07261
大體思路:
Inception v1的網絡,將1x1,3x3,5x5的conv和3x3的pooling,stack在一起,一方面增加了網絡的width,另一方面增加了網絡對尺度的適應性;
v2的網絡在v1的基礎上,進行了改進,一方面了加入了BN層,減少了Internal
Covariate Shift(內部neuron的數據分布發生變化),使每一層的輸出都規范化到一個N(0,
1)的高斯,另外一方面學習VGG用2個3x3的conv替代inception模塊中的5x5,既降低了參數數量,也加速計算;
v3一個最重要的改進是分解(Factorization),將7x7分解成兩個一維的卷積(1x7,7x1),3x3也是一樣(1x3,3x1),這樣的好處,既可以加速計算(多余的計算能力可以用來加深網絡),又可以將1個conv拆成2個conv,使得網絡深度進一步增加,增加了網絡的非線性,還有值得注意的地方是網絡輸入從224x224變為了299x299,更加精細設計了35x35/17x17/8x8的模塊;
v4研究了Inception模塊結合Residual
Connection能不能有改進?發現ResNet的結構可以極大地加速訓練,同時性能也有提升,得到一個Inception-ResNet
v2網絡,同時還設計了一個更深更優化的Inception v4模型,能達到與Inception-ResNet
v2相媲美的性能
=========================================================================================
基礎單元:
一個5x5的網格等于兩個3x3的降級
一個3x3的可以降維成一個由3x1的卷積的3個輸出網絡
35降維可以理解為1+9+25
17降維理解為每次降7個點,17=>11=>5
8降維可以理解為8=>6=>4=>2
這個是V1對應的3個Inception結構,V2添加相應的BN就可以。
=========================================================================================
推薦參考博客:
http://blog.csdn.net/cv_family_z/article/details/50789805
http://blog.csdn.net/stdcoutzyx/article/details/51052847
Github上面有寫好的這幾個版本的python實現:
https://github.com/soeaver/caffe-model
https://github.com/titu1994/Inception-v4
Keras框架是一個不錯的框架,不僅框架安裝方便,代碼易修改,更重要的是API文檔寫的非常完美,個人推薦用Keras上手學習DL。