Backbone Models
1. Inception
Version 1
模型特點(diǎn):
- 采用<u>不同大小的卷積核意味著不同大小的感受野竖席,最后拼接意味著不同尺度特征的融合</u>;
- 之所以卷積核大小采用1杉编、3和5秦效,主要是為了方便對(duì)齊礁竞。<u>設(shè)定卷積步長stride=1之后,只要分別設(shè)定pad=0靖苇、1滴劲、2,那么卷積之后便可以得到相同維度的特征顾复,然后這些特征就可以直接拼接在一起了</u>班挖;
- 文章說很多地方都表明pooling挺有效,所以Inception里面也嵌入了芯砸。
- 網(wǎng)絡(luò)越到后面萧芙,特征越抽象,而且每個(gè)特征所涉及的感受野也更大了假丧,因此隨著層數(shù)的增加双揪,3x3和5x5卷積的比例也要增加。
但是包帚,<u>使用5x5的卷積核仍然會(huì)帶來巨大的計(jì)算量</u>渔期。 為此,文章借鑒NIN2,采用1x1卷積核來進(jìn)行降維疯趟。
例如:上一層的輸出為100x100x128拘哨,經(jīng)過具有256個(gè)輸出的5x5卷積層之后(stride=1,padding=2)信峻,輸出數(shù)據(jù)為100x100x256倦青。其中,卷積層的參數(shù)為128x5x5x256盹舞。假如上一層輸出先經(jīng)過具有32個(gè)輸出的1x1卷積層产镐,再經(jīng)過具有256個(gè)輸出的5x5卷積層,那么最終的輸出數(shù)據(jù)仍為為100x100x256踢步,但卷積參數(shù)量已經(jīng)減少為128x1x1x32 + 32x5x5x256癣亚,大約減少了4倍。
Inception Block結(jié)構(gòu):
[圖片上傳失敗...(image-7d0877-1548856862938)]
模型結(jié)構(gòu):
[圖片上傳失敗...(image-c123b9-1548856862938)]
Version 2
模型改進(jìn):
- 使用BN層获印,將每一層的輸出都規(guī)范化到一個(gè)N(0,1)的正態(tài)分布述雾,這將有助于訓(xùn)練,因?yàn)橄乱粚?strong><u>不必學(xué)習(xí)輸入數(shù)據(jù)中的偏移蓬豁,并且可以專注與如何更好地組合特征</u>(也因?yàn)樵趘2里有較好的效果,BN層幾乎是成了深度網(wǎng)絡(luò)的必備)菇肃;<u>BN層能夠提升模型的訓(xùn)練速度</u>
Inception Block結(jié)構(gòu):
[圖片上傳失敗...(image-ea7142-1548856862938)]
Result on ImageNet:
[圖片上傳失敗...(image-1acbac-1548856862938)]
Version 4
Inception Block:
[圖片上傳失敗...(image-d6d2d6-1548856862938)]
Conclusion:
- Inception網(wǎng)絡(luò)模式人工痕跡太重地粪,模型太復(fù)雜。容易過擬合琐谤。
- 模式屬于split-transform-merge模式蟆技,每一路通道進(jìn)行單獨(dú)轉(zhuǎn)換,最后所有通道concate(級(jí)聯(lián))
- 版本越往后面參數(shù)越多斗忌,訓(xùn)練所花費(fèi)的時(shí)間和資源越多
2. ResNet
3. ResNext
模型特點(diǎn):
- 在ResNet模型的基礎(chǔ)上增加了Residual Block的寬度(通道)质礼,檢驗(yàn)了模型寬度所帶來的精度提升。
- 最后所有通道僅僅是相加起來便可以融合织阳。符合split-transform-merge模式
- 進(jìn)一步驗(yàn)證了split-transform-merge模式的普遍性和有效性
ResNext Block:
- 左ResNet 右ResNext(32 Paths)
- a為基本的ResNext Block單元
- 如果將最后1x1的合并到一起眶蕉,等價(jià)于網(wǎng)絡(luò)b中擁有和Inception-ResNet的結(jié)構(gòu)(concate)
- 進(jìn)一步將輸入的1x1合并,等價(jià)于網(wǎng)絡(luò)c中和通道分組卷積網(wǎng)絡(luò)結(jié)構(gòu)類似
Conclusion:
- ResNext-101 (32x4d)大小和Inception v4相當(dāng)唧躲,精度略差造挽。但是訓(xùn)練速度快很多
- ResNext-101 (64x4d)大小和Inception-ResNet大一點(diǎn),精度相當(dāng)或略差弄痹,速度快非常多
- 結(jié)構(gòu)簡單饭入,可以防止對(duì)特定數(shù)據(jù)集的過擬合。
4. VGG
模型特點(diǎn)
- 整個(gè)網(wǎng)絡(luò)都使用了同樣大小的卷積核尺寸(3 x 3)和最大池化尺寸(2 x 2)
- 1 x 1卷積的意義主要在于線性變換肛真,而輸入通道數(shù)和輸出通道數(shù)不變谐丢,沒有發(fā)生降維。
- 兩個(gè)3 x 3的卷積層串聯(lián)相當(dāng)于1個(gè)5 x 5的卷積層,即一個(gè)像素會(huì)跟周圍5 x 5的像素產(chǎn)生關(guān)聯(lián)乾忱,可以說感受野大小為5 x 5讥珍。而3個(gè)3 x 3的卷積層串聯(lián)的效果則相當(dāng)于1個(gè)7 x 7的卷積層。除此之外饭耳,3個(gè)串聯(lián)的3 x 3的卷積層串述,擁有比1個(gè)7 x 7的卷積層更少的參數(shù)量,只有后者的(3 x 3 x 3)/(7 x 7)=55%寞肖。最重要的是纲酗,3個(gè)3 x 3的卷積層擁有比1個(gè)7 x 7的卷積層更多的非線性變換(前者可以使用三次ReLU激活函數(shù),而后者只有一次)新蟆,使得CNN對(duì)特征的學(xué)習(xí)能力更強(qiáng)觅赊。
- VGGNet在訓(xùn)練時(shí)有一個(gè)小技巧,先訓(xùn)練級(jí)別A的簡單網(wǎng)絡(luò)琼稻,再復(fù)用A網(wǎng)絡(luò)的權(quán)重來初始化后面的幾個(gè)復(fù)雜模型吮螺,這樣訓(xùn)練收斂的速度更快。在預(yù)測時(shí)帕翻,VGG采用Multi-Scale的方法鸠补,將圖像scale到一個(gè)尺寸Q,并將圖片輸入卷積網(wǎng)絡(luò)計(jì)算嘀掸。然后在最后一個(gè)卷積層使用滑窗的方式進(jìn)行分類預(yù)測紫岩,將不同窗口的分類結(jié)果平均,再將不同尺寸Q的結(jié)果平均得到最后結(jié)果睬塌,這樣可提高圖片數(shù)據(jù)的利用率并提升預(yù)測準(zhǔn)確率泉蝌。在訓(xùn)練中,VGGNet還使用了Multi-Scale的方法做數(shù)據(jù)增強(qiáng)揩晴,將原始圖像縮放到不同尺寸S勋陪,然后再隨機(jī)裁切224x224的圖片,這樣能增加很多數(shù)據(jù)量硫兰,對(duì)于防止模型過擬合有很不錯(cuò)的效果诅愚。
模型結(jié)構(gòu)
[圖片上傳失敗...(image-7ce165-1548856862938)]