• 沒有找到結果。

第三章 研究方法

3.2 CNN 模型

立 政 治 大 學

N a

tio na

l C h engchi U ni ve rs it y

3.2 CNN模型

3.2.1 VGG

VGG是牛津大學Visual Geometry Group和Google DeepMind研究員共同研發的深度卷積

神經網路。VGG透過反覆堆疊3 x 3的卷積核與2 x 2的最大池化層,且不斷加深網路架構來 提升其性能,成功的建構了16至19層深的卷積神經網路。相比於之前state-of-the-art的網路 架構,其錯誤率大幅的下降,並取得ISLVRC 2014比賽分類項目的第二名以及定位項目的第 一名。圖3-7所示為VGG各個版本的網路架構圖,其中D與E也就是我們時常聽到的VGG-16 與VGG-19,圖3-8則為每一版本的參數量,雖然從A到E網路逐漸加深,但網路的參數量並 沒有增加很多,這是由於大部分的參數量都集中在最後3個全連接層。

圖3-7 VGG各版本網路架構圖[19]

圖3-8 VGG各版本網路參數量(單位為百萬)[19]

3.2.2 ResNet

ResNet(Residual neural network)是由Kaiming He等人所提出,透過使用殘差學習模塊

(Residual block)成功訓練152層深的神經網路,在ILSVRC 2015比賽中獲得了冠軍,得到 3.57%的top-5錯誤率,但其參數量卻比VGG低,效果相當突出。

由於網路深度對於CNN的辨識結果相當重要,但在不斷加深神經網路的深度時,會出 現兩個問題,第一個是梯度消失問題,也就是在越深的網路中,梯度下降法(Gradient descent) 越難更新到越前面的層,導致參數更新的極度緩慢,然而此問題在Sergey loffe與Christian Szegedy提出BN(Batch Normalization)[21]後被順利解決,BN層能對各層的輸出做正規化,這 樣梯度在反向層層傳遞時仍能保持大小穩定,不會出現過小或過大的情況。第二個是準確 率下降問題(Degradation problem),當網路越深時意味著參數空間更大,最佳化問題也變得 更難,因此增加網路深度反而出現更高的訓練誤差,為了解決準確率下降的問題,ResNet 採用了Schmidhuber在Highway Network[22]所提出的概念,Highway Network提出除了非線 性轉換外,會保留一定比例的原始輸入直接輸出到下一層中,而ResNet中的Residual block 也利用了此概念,每兩層卷積層會有一個捷徑(Identity mapping)將原始輸入直接傳輸到後面

圖3-9 Residual block[13]

在ResNet論文中,提出了兩層與三層的Residual block,如圖3-10所示。兩層的Residual

‧ 國

立 政 治 大 學

N a

tio na

l C h engchi U ni ve rs it y

block包含兩個相同輸出通道數的3 x 3卷積層,由於殘差等於目標輸出減去輸入,因此輸入、

輸出的維度需保持一致,三層的Residual block則在3 x 3卷積層的前後使用了1 x 1的卷積層,

有先降維在升維的動作。圖3-11所示為ResNet在不同層數時的網路架構,其基礎結構相當類 似,皆是兩層或三層Residual block的堆疊。

圖3-10 兩層及三層的Residual block[13]

圖3-11 ResNet不同層數時的網路架構[13]

‧ 國

立 政 治 大 學

N a

tio na

l C h engchi U ni ve rs it y

3.2.3 DenseNet

DenseNet(Dense convolution network)是由康乃爾大學(Cornell University)的Gao Huang等

人所提出。DenseNet相比於ResNet擁有更多的Skip-connection,在ImageNet資料集上,

DenseNet使用與ResNet相比大約一半的參數量即可達到與其相同的辨識準確率。

DenseNet是一種具有密集連接的卷積神經網絡,在該網路中任兩層之間都有直接的連 接,也就是說,網路每一層的輸入都是前面所有層輸出特徵圖的連接(Concatenate),而該層 所學習的特徵圖也會被直接傳給其後面所有層做為輸入。圖3-12為一個包含5層卷積層的 Dense block,其中每一層卷積層輸出的特徵圖數量稱為Growth rate(k),在此例中k = 4。在 DenseNet網路架構中會包含許多個Dense block,如圖3-13為使用3個Dense block所組成的分 類器,Block與Block之間則透過Transition layer連接在一起,Transition layer包含了1 x 1卷積 層與平均池化層,其用意在於降低特徵圖的大小,而各個Dense block內的特徵圖大小必須 是相同的,在做拼接時才不會發生特徵圖大小不一致的問題。

圖3-12 包含5層卷積層的Dense block,其中k = 4[20]

圖3-13 包含3個Dense block的DenseNet[20]

‧ 國

立 政 治 大 學

N a

tio na

l C h engchi U ni ve rs it y

論文中針對ImageNet資料集設計了四種版本的DenseNet架構,如圖3-14所示。可以看到

此處每個Dense block的3 x 3卷積層前都加了一層1 x 1的卷積層,就是所謂的Bottleneck layer,

目的是為了減少輸入的特徵圖數量,既能降低維度減少運算量,又能融合輸入特徵圖各個 通道的特徵,其預設輸出特徵圖的通道數為4k,論文中將增加Bottleneck layer後的DenseNet 架構稱為DenseNet-B。另外Transition layer也可以起到壓縮模型的作用,假設Transition layer 從上一層Dense Block所得到的特徵圖通道數量為m,透過Transition layer中1 x 1的卷積層,

可以將通道數變為⌊𝜃𝑚⌋,θ為壓縮比率且0 < θ ≤ 1,當θ = 1時,特徵圖通道數經過 Transition layer後保持不變,即無壓縮,而當θ < 1時,Transition layer輸出特徵圖通道數變 為⌊𝜃𝑚⌋,論文中將這種架構稱為DenseNet-C,且預設θ = 0.5。DenseNet-BC所指的是包含 Bottleneck layer且Transition layer壓縮比率不為1時的網路架構。

圖3-14 針對ImageNet所設計的四種DenseNet架構,其中k = 32[20]

‧ 國

立 政 治 大 學

N a

tio na

l C h engchi U ni ve rs it y

相關文件