本文將介紹AlexNet、VGGNet、ResNet、Inception和DenseNet架構體系的相關內容。
AlexNet
AlexNet是第一個在ImageNet分類上表現出色的大規模卷積神經網絡體系結構。AlexNet在比賽中大大超越了以前所有基於非深度學習的模型。
AlexNet體系結構是:卷積層、池化層、歸一化層、conv-pool-norm、幾個卷積層、池化層,然後是幾個全連接層。實際上看起來與LeNet網絡非常相似,只是有更多層。在最終的全連接層進入輸出類之前,有5個conv層和2個全連接層。
AlexNet在ImageNet上接受了訓練,輸入是大小為227 x 227 x 3的圖像。我們看一下第一層,它是AlexNet的卷積層,它是11 x 11 filters,其中96個filters應用stride 4。第一層的輸出為55 x 55 x 96,參數為35K。第二層是池化層,3個3 x 3的filters(stride 2)。池化層的輸出為27 x 27 x 96,池化層不學習任何東西,因為參數是嘗試學習的權重。
網絡一開始有11 x 11個filters,然後是5x5和3x3。最後,我們有兩個大小為4096的全連接層,最後一層是FC8到softmax,也就是1000個ImageNet類。該架構是ReLu非線性的首次使用。
超參數:
這種結構是第一次使用ReLU非線性。AlexNet也使用了歸一化層。在數據增強方面,ALexNet使用了翻轉、裁剪、顏色歸一化等方法。其他參數包括:Dropout為0.5, SGD + Momentum為0.9,初始學習率為1e-2(當驗證精度趨於平緩時再次降低10)。該網絡的正則化為L2,權重衰減為5e-4。
在ImageNet大規模視覺識別挑戰賽(ILSVRC)中,它的錯誤率為16.4。
AlexNet是2012年ImageNet大規模視覺識別挑戰賽(ILSVRC)分類基準的贏家。
VGGNet
VGG16架構
VGG 16是16層結構。VGG網絡的概念是更深的網絡和更小的filters。VGGNet將AlexNet的層數(8層)進行了增加,現在它擁有16到19層的變體模型。重要的一點是,這些模型始終保持非常小的filters,並具有3 x 3的卷積,這基本上是最小的conv filter size。
VGG架構共有16個卷積和全連接層。在VGG 16中有16層,VGG 19中有19層(這只是一個非常相似的架構,但有更多的conv層)。
這是一個非常昂貴的計算,總參數為138M,每個圖像的內存是96MB,這比普通圖像大得多。在ILSVRC挑戰中,它擁有7.3的錯誤率。
VGGNet在2014年ImageNet大規模視覺識別挑戰賽(ILSVRC)類別基準測試中獲得亞軍。
ResNet
ResNet的主要基礎元素是殘差塊。隨著我們深入到具有大量層的網絡中,計算變得更加複雜。這些層相互疊加,每一層都試圖學習所需函數的一些底層映射,我們嘗試擬合殘差映射。
簡而言之,隨著我們深入網絡,由於我們有大量的層,所以很難學習H(X)。這裡我們用skip connection,並學習F(x)直接輸入x作為最終輸出。F(x)被稱為殘差。
這種非常深的體系結構的另一特點是,它最多可以支持150層。我們還將filters數量加倍,並使用stride 2在空間上進行下採樣。
關於超參數:
在ResNet中,在每個conv層之後都使用批歸一化。使用SGD + Momentum進行Xavier初始化。學習率是0.1,當驗證誤差變為常數時,學習率除以10。batch-size為256,權重衰減為1e-5。重要的是在ResNet中沒有使用dropout。
ResNet在ILSVRC和COCO 2015競爭中獲得第一名,錯誤率僅為3.6%。(比人類的表現還要好)
Inception
Inception v3是一個被廣泛使用的圖像識別模型,它在ImageNet數據集上的準確率已經達到了78.1%以上。
模型本身由對稱和非對稱構建塊組成,包括卷積、平均池化、最大池化、dropout和全連接層。批歸一化在整個模型中被廣泛使用,並應用於激活輸入。損失是通過Softmax來進行計算的。
Inception使用因式分解卷積。因式分解卷積用於減少要學習的連接和參數的數量,這將提高速度並提供良好的性能。
GoogleNet使用5x5卷積層,而Inception使用兩個3x3層來減少學習參數的數量。在5 x 5中有25個參數,而兩個3x3的參數是3 x 3 + 3 x 3,共有18個參數要學習。
在Inception中還使用了非對稱卷積的因式分解,這也有助於減少學習參數。
1個3×1卷積,然後是1個1×3卷積(替換了1個3×3卷積)。3 x 3總共有9個參數,而3 x 1 + 1 x 3總共有6個參數,因此它減少了33%的參數。當您在訓練中深入學習時,此方法不太可能使模型過擬合。
它有42層,計算成本僅比GoogleNet高2.5左右,比VGGNet的效率高得多。
集成了144種作物和4個模型的Inception-v3,獲得了3.58%的top-5錯誤率,最終在ILSVRC 2015中獲得了第一名(圖像分類)。
DenseNet
DenseNet由Dense塊組成。在這些塊中,各個層緊密地連接在一起:每層都從先前層的輸出特徵映射中獲取輸入。殘差的這種極高的重用性產生了深度監督,因為每一層都從前一層接收到更多的監督,因此損失函數將做出相應的反應。
DenseNet包含2個塊:
1.Dense塊:單個塊由以下層組成:批歸一化、ReLU激活、3x3卷積。
2.Transition層:在ResNet中,將執行殘差的總和,而Densenet是將所有特徵映射連接在一起。層的組成:批歸一化、1x1卷積、平均池化。
基本上,Densenet的卷積生成較少的特徵映射。DenseNet對寬層的需求較低,因為隨著層之間的緊密連接,學習到的特徵幾乎沒有冗餘。層的輸出特徵映射數定義為增長率。最終,增長率控制了每一層向全局貢獻了多少新信息。
簡而言之,DenseNet架構最大限度地利用了殘差機制,使得每一層都緊密地連接到它的後續層。模型的緊湊性使得學習到的特徵是非冗餘的,因為它們都是通過集體知識(collective knowledge)共享的。另外由於連接較短,梯度更容易反向流動。