最強(qiáng)總結(jié),必會(huì)的六大卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)
1.LeNet
LeNet 是由 Yann LeCun 等人在 1990 年提出的,是最早的卷積神經(jīng)網(wǎng)絡(luò)之一,主要用于手寫數(shù)字識(shí)別。
LeNet 的架構(gòu)簡(jiǎn)單,但為現(xiàn)代 CNN 的發(fā)展奠定了基礎(chǔ)。
架構(gòu)
- 輸入:32×32 像素的灰度圖像
- 第1層:卷積層,使用 6 個(gè) 5×5 的卷積核,輸出尺寸為 28×28。
- 第2層:池化層,采用平均池化,步幅為 2,輸出尺寸為 14×14。
- 第3層:卷積層,使用 16 個(gè) 5×5 的卷積核,輸出尺寸為 10×10。
- 第4層:池化層,再次使用平均池化,輸出尺寸為 5×5。
- 第5層:全連接層,將 5×5 的特征圖拉直,輸入到全連接層,輸出 120 個(gè)神經(jīng)元。
- 第6層:全連接層,輸出 84 個(gè)神經(jīng)元。
- 輸出層:10 個(gè)神經(jīng)元,用于分類 10 種手寫數(shù)字。
圖片
特點(diǎn):
- 引入了卷積和池化的概念。
- 使用了 Sigmoid 或 Tanh 作為激活函數(shù)。
2.AlexNet
AlexNet 是 2012 年 ILSVRC 競(jìng)賽中的冠軍,由 Alex Krizhevsky 等人提出,標(biāo)志著深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的巨大突破。
它在 ImageNet 數(shù)據(jù)集上表現(xiàn)優(yōu)異,成功應(yīng)用了 ReLU 激活函數(shù)和 Dropout。
架構(gòu)
- 輸入:224×224×3 的 RGB 圖像
- 第1層:卷積層,96 個(gè) 11×11 的卷積核,步幅為 4,輸出尺寸為 55×55×96,接 ReLU 激活。
- 第2層:池化層,最大池化,步幅為 2,輸出尺寸為 27×27×96。
- 第3層:卷積層,256 個(gè) 5×5 的卷積核,步幅為 1,輸出尺寸為 27×27×256,接 ReLU 激活。
- 第4層:池化層,最大池化,步幅為 2,輸出尺寸為 13×13×256。
- 第5層:卷積層,384 個(gè) 3×3 的卷積核,步幅為 1,輸出尺寸為 13×13×384,接 ReLU 激活。
- 第6層:卷積層,384 個(gè) 3×3 的卷積核,輸出尺寸為 13×13×384。
- 第7層:卷積層,256 個(gè) 3×3 的卷積核,輸出尺寸為 13×13×256。
- 第8層:池化層,最大池化,輸出尺寸為 6×6×256。
- 第9層:全連接層,4096 個(gè)神經(jīng)元,接 Dropout。
- 第10層:全連接層,4096 個(gè)神經(jīng)元,接 Dropout。
- 輸出層:1000 類的 Softmax 分類。
圖片
特點(diǎn)
- 使用了 ReLU 代替 Sigmoid,解決了梯度消失問(wèn)題。
- Dropout 防止過(guò)擬合。
- 使用了多個(gè) GPU 進(jìn)行并行訓(xùn)練。
3.ZFNet
ZFNet 是 AlexNet 的改進(jìn)版本,由 Matthew Zeiler 和 Rob Fergus 提出,旨在通過(guò)更好的超參數(shù)調(diào)整(如卷積核大小和步幅)來(lái)改進(jìn) AlexNet 的性能。
架構(gòu)
- 輸入:224×224×3 的 RGB 圖像
- 第1層:卷積層,96 個(gè) 7×7 的卷積核,步幅為 2,輸出尺寸為 55×55×96,接 ReLU 激活。
- 第2層:最大池化層,步幅為 2,輸出尺寸為 27×27×96。
- 第3層:卷積層,256 個(gè) 5×5 的卷積核,步幅為 2,輸出尺寸為 27×27×256。
- 第4層:最大池化層,步幅為 2,輸出尺寸為 13×13×256。
- 第5層:卷積層,384 個(gè) 3×3 的卷積核,輸出尺寸為 13×13×384。
- 第6層:卷積層,384 個(gè) 3×3 的卷積核,輸出尺寸為 13×13×384。
- 第7層:卷積層,256 個(gè) 3×3 的卷積核,輸出尺寸為 13×13×256。
- 第8層:最大池化層,輸出尺寸為 6×6×256。
- 后續(xù)結(jié)構(gòu)與 AlexNet 類似,經(jīng)過(guò)全連接層和 Softmax 分類。
圖片
特點(diǎn)
- 改進(jìn)了卷積核大小,提升了感受野。
4.VGGNet
VGGNet 是 2014 年由 Oxford University's Visual Geometry Group 提出的,它因其結(jié)構(gòu)簡(jiǎn)單、深度較深而聞名。
VGGNet 使用了較小的卷積核(3×3),并通過(guò)堆疊多個(gè)卷積層來(lái)增加模型深度,而不是使用大的卷積核。
VGGNet 提供了 VGG-16 和 VGG-19 兩個(gè)變體,分別包含 16 和 19 個(gè)卷積層。
架構(gòu)
- 輸入:224×224×3 的 RGB 圖像。
- 使用固定的 3×3 卷積核,步幅為 1,padding 為 1,以保持輸入輸出大小相同。
- 每經(jīng)過(guò)幾個(gè)卷積層之后,應(yīng)用 2×2 的最大池化層,步幅為 2,減半圖像尺寸。
- 有兩種主要變體:
- VGG-16:13 個(gè)卷積層,3 個(gè)全連接層,共 16 層。
- VGG-19:16 個(gè)卷積層,3 個(gè)全連接層,共 19 層。
- 最終的全連接層為 4096 個(gè)神經(jīng)元,之后是一個(gè) 1000 類分類器(用于 ImageNet 數(shù)據(jù)集)。
圖片
特點(diǎn)
- 全部使用 3×3 的卷積核,堆疊較多層數(shù)。
- 參數(shù)量較大,計(jì)算代價(jià)較高。
5.GoogLeNet
GoogLeNet,或稱為 Inception v1,是 Google 在 2014 年提出的網(wǎng)絡(luò)結(jié)構(gòu),它的主要貢獻(xiàn)是引入了 Inception 模塊,它通過(guò)結(jié)合不同尺度的卷積操作來(lái)提高特征提取的多樣性,從而更好地捕捉不同層次的特征。
Inception 模塊
Inception 模塊的核心在于捕捉不同尺度的特征。
通過(guò)引入多個(gè)并行的卷積操作(1x1、3x3、5x5),以及一個(gè)池化操作,網(wǎng)絡(luò)可以從不同的卷積層中提取多尺度信息。
這種結(jié)構(gòu)減少了對(duì)特定卷積核大小的依賴,增強(qiáng)了網(wǎng)絡(luò)的魯棒性。
- 1x1卷積,主要用于減少通道維度,降低計(jì)算復(fù)雜度。
- 3x3卷積和5x5卷積,用于提取局部特征。
- 最大池化,增加網(wǎng)絡(luò)的平移不變性,減少過(guò)擬合。
每個(gè)Inception模塊會(huì)將這些操作的輸出進(jìn)行拼接,合成為一個(gè)新的特征圖,再傳遞給下一層。
圖片
架構(gòu)細(xì)節(jié)
- 輸入層,輸入圖像大小為224x224x3。
- 卷積層和池化層,最初的幾層是常規(guī)的卷積和池化層。
- Inception模塊,從網(wǎng)絡(luò)的中間部分開始,重復(fù)使用Inception模塊。
- 全局平均池化,在最后的卷積層后,GoogLeNet 使用全局平均池化替代全連接層,減少了參數(shù)數(shù)量。
- 輔助分類器,為了應(yīng)對(duì)梯度消失問(wèn)題,GoogLeNet在中間層引入了兩個(gè)輔助分類器(Auxiliary Classifier)。這些分類器在訓(xùn)練過(guò)程中提供額外的監(jiān)督,保證梯度能夠有效傳播。
圖片
6.ResNet
ResNet 是一種深度卷積神經(jīng)網(wǎng)絡(luò),它通過(guò)引入殘差連接(Residual Connection)解決了隨著網(wǎng)絡(luò)深度增加而產(chǎn)生的梯度消失或梯度爆炸問(wèn)題,從而使網(wǎng)絡(luò)能夠更有效地訓(xùn)練更深層次的網(wǎng)絡(luò)。
圖片
原理
ResNet 的核心思想是殘差學(xué)習(xí),它的創(chuàng)新點(diǎn)在于引入了“跳躍連接”,即殘差塊(Residual Block)。
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,每一層直接學(xué)習(xí)一個(gè)新的變換 H(x),而 ResNet 提出的思想是讓每一層學(xué)習(xí)一個(gè)“殘差”函數(shù),即 ,因此實(shí)際的輸出是 。
圖片
殘差塊
針對(duì)不同深度的 ResNet,作者提出了兩種殘差塊。
圖片
- 基本殘差塊
基本殘差塊是最基礎(chǔ)的殘差單元,適用于較淺的網(wǎng)絡(luò)結(jié)構(gòu),如 ResNet-18 和 ResNet-34。
這種殘差塊包含兩個(gè)連續(xù)的 3x3 卷積層,每一層后面都緊跟著批歸一化和 ReLU 激活函數(shù)。 - 瓶頸殘差塊
瓶頸殘差塊是為深層網(wǎng)絡(luò)設(shè)計(jì)的,如 ResNet-50、ResNet-101 和 ResNet-152。
它的目的是在減少計(jì)算復(fù)雜度的同時(shí),仍保持足夠的表征能力。
瓶頸殘差塊通過(guò)先壓縮通道數(shù),然后進(jìn)行卷積操作,再擴(kuò)展回原通道數(shù)的策略,減少了計(jì)算開銷。
第一層,使用 1×1 卷積核,主要目的是減少輸入的維度,這有助于減少后續(xù)層的計(jì)算負(fù)擔(dān)。
第二層,標(biāo)準(zhǔn)的 3×3 卷積層,在降維后的特征上進(jìn)行空間特征提取。
第三層,再次使用 1×1 卷積核,目的是恢復(fù)通道數(shù),為將輸出與跳躍連接相加做準(zhǔn)備。
跳躍連接,如果輸入與輸出的維度不匹配(通常在跨越殘差塊時(shí)會(huì)改變維度),快捷連接上也會(huì)應(yīng)用 1×1 卷積來(lái)調(diào)整維度,確保能夠與主路徑上的輸出相加。