经典CNN模型特点总结
參考文章地址:https://www.cnblogs.com/skyfsm/p/8451834.html
1、LeNet
定義了CNN的最基本的架構:卷積層、池化層、全連接層。
2、AlexNet
特點:
- 更深的網絡
- 數據增廣技巧來增加模型泛化能力。
- 用ReLU代替Sigmoid來加快SGD的收斂速度
- 引入drop out防止過擬合
- Local Responce Normalization:局部響應歸一層
3、VGG-16
特點:
- 進一步加深;
- 卷積層都是same的卷積,下采樣完全是由max pooling來實現;
- 卷積層使用更小的filter尺寸和間隔,使用1×1和3×3的小卷積核;
- 3×3卷積核的優點:
(1)多個3×3的卷基層比一個大尺寸filter卷基層有更多的非線性,使得判決函數更加具有判決性
(2)多個3×3的卷積層比一個大尺寸的filter有更少的參數,假設卷基層的輸入和輸出的特征圖大小相同為C,那么三個3×3的卷積層參數個數3×(3×3×C×C)=27CC;一個7×7的卷積層參數為49CC;所以可以把三個3×3的filter看成是一個7×7filter的分解(中間層有非線性的分解) - 1*1卷積核的優點:
作用是在不影響輸入輸出維數的情況下,對輸入進行線性形變,然后通過Relu進行非線性處理,增加網絡的非線性表達能力。
4、GoogLeNet
特點:
(1)引入Inception結構(如下圖),增加深度也增加寬度;
Inception結構里的卷積stride都是1,另外為了保持特征響應圖大小一致,都用了零填充。最后每個卷積層后面都立刻接了個ReLU層。在輸出前有個叫concatenate的層,直譯的意思是“并置”,即把4組不同類型但大小相同的特征響應圖一張張并排疊起來,形成新的特征響應圖。Inception結構里主要做了兩件事:
- 通過3×3的池化、以及1×1、3×3和5×5這三種不同尺度的卷積核,一共4種方式對輸入的特征響應圖做了特征提取。
- 為了降低計算量。同時讓信息通過更少的連接傳遞以達到更加稀疏的特性,采用1×1卷積核來實現降維。
(2)中間層的輔助LOSS單元,目的是計算損失時讓低層的特征也有很好的區分能力,從而讓網絡更好地被訓練;
(3)后面的全連接層全部替換為簡單的全局平均pooling,減少參數個數;
5、ResNet
特點:
- 層數非常深,已經超過百層
- 引入殘差單元來解決退化問題
對于一般的網絡,如果簡單地增加深度,會導致梯度彌散或梯度爆炸。對于該問題的解決方法是正則化初始化和中間的正則化層(Batch Normalization),這樣的話可以訓練幾十層的網絡。
雖然通過上述方法能夠訓練了,但是又會出現另一個問題,就是退化問題,網絡層數增加,但是在訓練集上的準確率卻飽和甚至下降了。這個不能解釋為overfitting,因為overfit應該表現為在訓練集上表現更好才對。
退化問題說明了深度網絡不能很簡單地被很好地優化。也就是說想通過學習優化實現H(x)=x,即通過學習讓F(x)操作失效很困難,那么怎么解決退化問題呢?
深度殘差網絡。
增加一個連接(short cut),讓H(x)=x+F(x),即F(x)=H(x)-x,那么現在想解決退化,網絡只需要通過學習讓F(x)=0即可,而F(x)就是殘差,所以網絡叫殘差網絡,擬合殘差相對而言是要容易很多的。
考慮到x的維度與F(X)維度可能不匹配情況,需進行維度匹配。這里論文中采用兩種方法解決這一問題(其實是三種,但通過實驗發現第三種方法會使performance急劇下降,故不采用):
- zero_padding:對恒等層進行0填充的方式將維度補充完整。這種方法不會增加額外的參數
- projection:在恒等層采用1x1的卷積核來增加維度。這種方法會增加額外的參數
6、DenseNet
特點:
1,減輕了消失梯度(梯度消失)
2,加強了特征的傳遞
3,更有效地利用了特征
4,一定程度上較少了參數數量
DenseNet 是一種具有密集連接的卷積神經網絡。在該網絡中,任何兩層之間都有直接的連接,也就是說,網絡每一層的輸入都是前面所有層輸出的并集,而該層所學習的特征圖也會被直接傳給其后面所有層作為輸入。下圖是 DenseNet 的一個dense block示意圖,一個block里面的結構如下,與ResNet中的BottleNeck基本一致:BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3) ,而一個DenseNet則由多個這種block組成。每個DenseBlock的之間層稱為transition layers,由BN?>Conv(1×1)?>averagePooling(2×2)組成
密集連接不會帶來冗余嗎?不會!密集連接這個詞給人的第一感覺就是極大的增加了網絡的參數量和計算量。但實際上 DenseNet 比其他網絡效率更高,其關鍵就在于網絡每層計算量的減少以及特征的重復利用。DenseNet則是讓l層的輸入直接影響到之后的所有層,它的輸出為:xl=Hl([X0,X1,…,xl?1]),其中[x0,x1,…,xl?1]就是將之前的feature map以通道的維度進行合并。并且由于每一層都包含之前所有層的輸出信息,因此其只需要很少的特征圖就夠了,這也是為什么DneseNet的參數量較其他模型大大減少的原因。這種dense connection相當于每一層都直接連接input和loss,因此就可以減輕梯度消失現象,這樣更深網絡不是問題
需要明確一點,dense connectivity 僅僅是在一個dense block里的,不同dense block 之間是沒有dense connectivity的,比如下圖所示。
缺點:內存占用非常大
總結
以上是生活随笔為你收集整理的经典CNN模型特点总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量邮箱注册申请,邮箱注册申请这样才靠谱
- 下一篇: oracle定时导入dat文件夹,ora