以前被問到了CNN類基礎模型的一些特性,好比1X1卷積,還有經典卷積網絡發展及爲何採用此結構,結果被問住了。學習過程當中其實沒有作過更深層次的思考,好比爲何會選擇這種架構,可不能夠採用其餘結構來替換,只是會用一些經典模型。到最後別人問幾個爲何就不知道了。基礎仍是要增強呀。如今先參考別人的專欄還有論文總結一下。html
參考: https://www.cnblogs.com/guoyaohua/p/8534077.html https://zhuanlan.zhihu.com/p/50754671 網絡
LeNet-5架構
最先的卷積網絡結構,引入了卷積結構提取圖像特徵,同時包含池化,激活函數和全鏈接層結構,最先用來進行手寫體數字識別,準確率達到99%函數
AlexNet性能
結構以下:學習
結構與LeNet比深刻了不少,同時採用了relu激活函數,有效避免了梯度消失現象。堆疊卷積層,能夠看到兩次池化後卷積操做變多(由於尺寸逐漸變小,因此降採樣採用的次數減小),同時採用Dropout來下降過擬合。google
論文裏是使用兩個GPU跑的,因此看到網絡分紅了兩部分,如今的話綜合成 一個便可。3d
VGG-16htm
深度更深了,反覆堆疊3*3卷積(小卷積)及2*2池化,論證了深度與性能關係。也有VGG-19,可是性能和VGG-16差很少。blog
Inception系列
Inception 系列是google提出的,VGG-16證實通常加強模型質量手段是增長模型寬度和深度,可是同時會帶來過擬合和運算量的缺點,Inception系列
以下圖所示。優勢1. 採用不一樣的卷積核表示不一樣大小的感覺野,最後拼接表明不一樣尺度的特徵融合。2. 卷積核採用1*1,3*3和5*5,步長爲1,padding=0,1,2,採用same卷積能夠獲得相同維度的特徵。3. 到最後感覺野逐漸增多,隨着層數增長,3*3和5*5的卷積核數量也要增長。4.先採用1*1卷積進行降維操做,以後再進行3*3或者5*5的卷積,有利於下降計算量。其實1*1卷積還能夠增長非線性及跨層鏈接做用,以此增長模型的信息容量。可參考1*1卷積的實現方式。但主要應該是進行降維和升維。
5.最後一層引入了全局池化,做用應該是下降參數量。 整個結構還有兩個附屬loss,目的是防止梯度消失,增長正則性。
Inception V2
InceptionV2採用了BN層,避免梯度消失或爆炸。同時,它採用兩個3*3的卷積核代替5*5的卷積核(步長爲1),由於兩種方式感覺野相同,可是前一種計算量小。
InceptionV3
提出n*n的卷積核是否能夠用1*n和n*1的卷積核來代替。但實際並很差,對n處於12到20之間的卷積核纔好一點。
另外一個改進是再也不使用pooling層直接做爲下采樣,而是採用卷積核pooling結合的策略
總體的架構比較複雜,仍是要看下專門的博客講的詳細。
ResNet
由於InceptionV4引入了殘差模塊,因此先講一下殘差網絡。
直連神經網絡並非深度越深性能越好,而是隨着深度的加深,先變好,後退化。以前能夠考慮多增長的層數學習成恆等形式,這樣增長的深度就能夠抵消了,可是恆等形式比較難學。因此引入殘差模塊,殘差相對而言比較好學。以下圖結構,以後隨着網絡加深,模型準確率逐漸提升。
Inception Resnet
分別在InceptionV1-V4引入了殘差模塊,結構以下
Xception
xception是對每個通道進行卷積。即先經過1*1得到多通道信息,再使用3*3對每個通道進行卷積,從而得到每個通道的區域相關性,同時也借鑑了殘差模塊。結構以下:
所謂的對1*1卷積後的網絡每個通道再進行3*3卷積,以下,也減小了不少參數量。