1. 介紹
什么是卷積神經網絡(CNN)?
卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一類專門用于處理具有網格結構數據的深度學習模型。最常見的應用是處理圖像數據,因為圖像可以被看作是一個二維的網格。
CNN通過卷積層、池化層和全連接層的組合來提取和處理數據中的特征:
. 卷積層(Convolutional Layer): 這是CNN的核心部分,它通過在輸入數據上應用卷積核(filters)來提取局部特征。這些卷積核在圖像上滑動(進行卷積操作),生成特征圖(featuremaps),從而檢測到不同的特征如邊緣、角等。
. 激活函數(Activation Function): 在每個卷積層之后,通常會應用一個非線性激活函數(如ReLU),以引入非線性并幫助模型學習復雜模式。
. 池化層(Pooling Layer): 該層通過對特征圖進行下采樣,減少數據的維度和計算量,同時保留 重要特征。常見的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling)。
. 全連接層(Fully Connected Layer): 在網絡的最后幾層,使用全連接層將前面提取到的特征進 行組合,并生成最終的輸出(如類別概率)。
CNN的主要特點
局部連接和權重共享: 卷積層的卷積核在整個輸入數據上共享參數,這顯著減少了需要訓練的參數 數量,提高了訓練效率。
空間不變性: 由于卷積和池化操作, CNN能夠識別圖像中的特征,無論這些特征在圖像中的位置如何。
層級特征提取: CNN的層次結構允許它從低級特征(如邊緣)到高級特征(如物體的形狀和類 別)逐步提取特征。
應用領域
圖像和視頻識別: 例如,手寫數字識別、面部識別、自動駕駛中的物體檢測。
自然語言處理: 如文本分類、情感
醫院圖像分析:用于疾病監測、分割醫學圖像中的區域等。
CNN因其強大的特征提取和模式識別能力,成為了許多計算機視覺任務的首選模型。
2. LeNet-5
LeNet-5 是由 Yann LeCun 等人在 1998 年提出的一種卷積神經網絡架構,最初設計用于手寫數字識別(例如 MNIST 數據集)。 LeNet-5 被認為是現代深度學習發展的奠基石之一,因為它成功地展示了卷積神經網絡在圖像識別任務中的強大能力。
架構
LeNet-5 的架構相對簡單,由以下幾層組成:
1. 輸入層: 輸入圖像大小為 32x32 像素的灰度圖像。
2. 第一個卷積層(C1): 應用 6 個大小為 5x5 的卷積核,輸出特征圖大小為 28x28。
3. 第一個池化層(S2): 應用平均池化(subsampling),窗口大小為 2x2,步長為 2,輸出特征圖 大小為 14x14。
4. 第二個卷積層(C3): 應用 16 個大小為 5x5 的卷積核,輸出特征圖大小為 10x10。
5. 第二個池化層(S4): 應用平均池化,窗口大小為 2x2,步長為 2,輸出特征圖大小為 5x5。
6. 第三個卷積層(C5): 應用 120 個大小為 5x5 的卷積核,輸出特征圖大小為 1x1。
7. 全連接層(F6): 包含 84 個神經元。
8. 輸出層: 包含 10 個神經元,對應 10 個類別(數字 0 到 9)。
應用
LeNet-5 最初用于手寫數字識別任務,并在 MNIST 數據集上取得了顯著的成功。它展示了卷積神經網絡 在圖像分類任務中的強大能力,為后續更復雜的網絡架構(如 AlexNet 和 VGGNet)奠定了基礎。
影響
LeNet-5 在當時是一個開創性的工作,它引入了卷積層和池化層的組合,成功解決了圖像數據的高維問 題。這一架構的成功證明了卷積神經網絡在處理圖像任務時的有效性,激勵了后來大量的研究和應用。
3.AlexNet
概述
AlexNet 由 Alex Krizhevsky、 Ilya Sutskever 和 Geoffrey Hinton 于 2012 年提出,并在當年的ImageNet 大規模視覺識別挑戰賽(ILSVRC)中取得了顯著勝利。 AlexNet 在比賽中遠超其他參賽模 型,標志著深度學習在計算機視覺領域的突破性進展。
架構
AlexNet 的架構比 LeNet-5 更加復雜,包括以下幾層:
1. 輸入層: 輸入圖像大小為 224x224x3 的 RGB 圖像。
2. 第一個卷積層(Conv1): 應用 96 個大小為 11x11 的卷積核,步長為 4,輸出特征圖大小為 55x55x96。接著是 ReLU 激活函數。
3. 第一個池化層(Max Pool1): 應用最大池化,窗口大小為 3x3,步長為 2,輸出特征圖大小為 27x27x96。
4. 第二個卷積層(Conv2): 應用 256 個大小為 5x5 的卷積核,步長為 1,輸出特征圖大小為 27x27x256。接著是 ReLU 激活函數。
5. 第二個池化層(Max Pool2): 應用最大池化,窗口大小為 3x3,步長為 2,輸出特征圖大小為 13x13x256。
6. 第三個卷積層(Conv3): 應用 384 個大小為 3x3 的卷積核,步長為 1,輸出特征圖大小為 13x13x384。接著是 ReLU 激活函數。
7. 第四個卷積層(Conv4): 應用 384 個大小為 3x3 的卷積核,步長為 1,輸出特征圖大小為 13x13x384。接著是 ReLU 激活函數。
8. 第五個卷積層(Conv5): 應用 256 個大小為 3x3 的卷積核,步長為 1,輸出特征圖大小為 13x13x256。接著是 ReLU 激活函數。
9. 第三個池化層(Max Pool3): 應用最大池化,窗口大小為 3x3,步長為 2,輸出特征圖大小為 6x6x256。
10. 第一個全連接層(FC1): 4096 個神經元,接著是 ReLU 激活函數和 dropout( 50%)。
11. 第二個全連接層(FC2): 4096 個神經元,接著是 ReLU 激活函數和 dropout( 50%)。
12. 輸出層(Output): 1000 個神經元,對應 1000 個類別,使用 softmax 激活函數。
創新點
AlexNet 的成功歸因于以下幾個創新點:
ReLU 激活函數: 引入了非線性的 ReLU 激活函數,使得訓練更加高效。
Dropout 正則化: 在全連接層使用 dropout 來防止過擬合。
數據增強: 使用數據增強技術,如圖像平移、翻轉等,提高了模型的泛化能力。
并行計算: 使用兩個 GPU 并行訓練,以處理更多的計算量。
影響
AlexNet 的成功引發了深度學習在計算機視覺領域的廣泛關注和研究。它不僅證明了深度神經網絡在大型數據集上的強大性能,還推動了后續一系列更深層次的網絡架構(如 VGGNet、GoogLeNet 和ResNet)的發展。
4. VGGNet
概述
VGGNet 是由牛津大學視覺幾何組(Visual Geometry Group,簡稱VGG)在 2014 年提出的,其代表 性論文為“Very Deep Convolutional Networks for Large-Scale Image Recognition” 。VGGNet 在 2014 年的 ImageNet 大規模視覺識別挑戰賽(ILSVRC)中取得了優異的成績,以其簡潔的設計和優良的性能 成為深度學習領域的重要里程碑。
架構
VGGNet 的設計理念是通過堆疊多個小卷積核(如 3x3)的卷積層來增加網絡的深度,從而提取更豐富 的特征。最常見的 VGGNet 版本是 VGG16 和 VGG19,它們分別包含 16 層和 19 層可訓練參數層。以 下是 VGG16 的詳細架構:
1. 輸入層: 輸入圖像大小為 224x224x3 的 RGB 圖像。
2. 卷積層組1:
o Conv1_1: 64 個 3x3 卷積核,步長為 1,輸出特征圖大小為 224x224x64。接著是 ReLU 激活 函數。
o Conv1_2: 64 個 3x3 卷積核,步長為 1,輸出特征圖大小為 224x224x64。接著是 ReLU 激活 函數。
o Max Pool1: 2x2 最大池化,步長為 2,輸出特征圖大小為 112x112x64。
3. 卷積層組2:
o Conv2_1: 128 個 3x3 卷積核,步長為 1,輸出特征圖大小為 112x112x128。接著是 ReLU 激 活函數。
o Conv2_2: 128 個 3x3 卷積核,步長為 1,輸出特征圖大小為 112x112x128。接著是 ReLU 激 活函數。
o Max Pool2: 2x2 最大池化,步長為 2,輸出特征圖大小為 56x56x128。
4. 卷積層組3:
o Conv3_1: 256 個 3x3 卷積核,步長為 1,輸出特征圖大小為 56x56x256。接著是 ReLU 激活 函數。
o Conv3_2: 256 個 3x3 卷積核,步長為 1,輸出特征圖大小為 56x56x256。接著是 ReLU 激活 函數。
o Conv3_3: 256 個 3x3 卷積核,步長為 1,輸出特征圖大小為 56x56x256。接著是 ReLU 激活 函數。
o Max Pool3: 2x2 最大池化,步長為 2,輸出特征圖大小為 28x28x256。
5. 卷積層組4:
o Conv4_1: 512 個 3x3 卷積核,步長為 1,輸出特征圖大小為 28x28x512。接著是 ReLU 激活 函數。
o Conv4_2: 512 個 3x3 卷積核,步長為 1,輸出特征圖大小為 28x28x512。接著是 ReLU 激活 函數。
o Conv4_3: 512 個 3x3 卷積核,步長為 1,輸出特征圖大小為 28x28x512。接著是 ReLU 激活 函數。
o Max Pool4: 2x2 最大池化,步長為 2,輸出特征圖大小為 14x14x512。
6. 卷積層組5:
o Conv5_1: 512 個 3x3 卷積核,步長為 1,輸出特征圖大小為 14x14x512。接著是 ReLU 激活 函數。
o Conv5_2: 512 個 3x3 卷積核,步長為 1,輸出特征圖大小為 14x14x512。接著是 ReLU 激活 函數。
o Conv5_3: 512 個 3x3 卷積核,步長為 1,輸出特征圖大小為 14x14x512。接著是 ReLU 激活 函數。
o Max Pool5: 2x2 最大池化,步長為 2,輸出特征圖大小為 7x7x512。
7. 全連接層(FC):
o FC1: 4096 個神經元,接著是 ReLU 激活函數和 dropout。
o FC2: 4096 個神經元,接著是 ReLU 激活函數和 dropout。
o 輸出層(Output): 1000 個神經元,對應 1000 個類別,使用 softmax 激活函數。
優缺點
優點:
結構簡單且統一: 使用相同大小的卷積核使得網絡設計和實現更加簡潔。
良好的性能: 在 ImageNet 數據集上取得了優秀的分類精度。
缺點:
計算成本高: 由于網絡層數多,卷積和全連接層的參數量大,導致計算資源需求高。
模型較大: 由于參數量大,模型存儲空間需求較大,不適合部署在資源受限的設備上。
影響
VGGNet 的設計理念影響了后續許多網絡架構的設計,特別是使用較小的卷積核和增加網絡深度的方 式。它成為了許多計算機視覺任務的基礎模型,并廣泛用于遷移學習中。
5. GoogLeNet (Inception)
概述
GoogLeNet,又稱 Inception V1,是由 Google 的研究團隊在 2014 年提出的,并在當年的 ImageNet 大規模視覺識別挑戰賽(ILSVRC)中贏得了冠軍。該網絡通過引入 Inception 模塊,大幅提高了計算效 率和模型性能。
架構
GoogLeNet 的架構采用了 Inception 模塊,該模塊通過并行路徑提取多尺度特征。整個網絡包含 22 層 深的卷積層和 5 個 Inception 模塊,以下是其詳細架構:
1. 輸入層: 輸入圖像大小為 224x224x3 的 RGB 圖像。
2. 卷積層:
o Conv1: 64 個 7x7 卷積核,步長為 2,輸出特征圖大小為 112x112x64。 o Max Pool1: 3x3 最大池化,步長為 2,輸出特征圖大小為 56x56x64。 o Conv2: 64 個 1x1 卷積核,步長為 1,輸出特征圖大小為 56x56x64。
o Conv3: 192 個 3x3 卷積核,步長為 1,輸出特征圖大小為 56x56x192。 o Max Pool2: 3x3 最大池化,步長為 2,輸出特征圖大小為 28x28x192。
3. Inception 模塊:
o Inception(3a):
1x1 卷積核輸出 64 個特征圖 3x3 卷積核輸出 128 個特征圖 5x5 卷積核輸出 32 個特征圖
3x3 最大池化后 1x1 卷積輸出 32 個特征圖 o Inception(3b):
1x1 卷積核輸出 128 個特征圖 3x3 卷積核輸出 192 個特征圖 5x5 卷積核輸出 96 個特征圖
3x3 最大池化后 1x1 卷積輸出 64 個特征圖
o Max Pool3: 3x3 最大池化,步長為 2,輸出特征圖大小為 14x14x480。
4. 更多 Inception 模塊:
Inception(4a) 到 Inception(4e) 的結構類似,每個模塊都包含 1x1、3x3 和 5x5 的卷積路徑及 最大池化路徑。
o Max Pool4: 3x3 最大池化,步長為 2,輸出特征圖大小為 7x7x832。
o Inception(5a) 和 Inception(5b):更深的 Inception 模塊。
5. 輸出層:
o Average Pool: 7x7 全局平均池化,輸出特征圖大小為 1x1x1024。
o Dropout (40%)
o 全連接層: 1000 個神經元,對應 1000 個類別,使用 softmax 激活函數。
創新點
GoogLeNet 的成功歸因于以下幾個創新點:
Inception 模塊: 通過并行路徑提取多尺度特征,極大地提高了模型的表示能力。
減少參數: 通過 1x1 卷積減少參數量和計算成本,同時增加了網絡的深度和寬度。
全局平均池化: 在最后使用全局平均池化代替全連接層,進一步減少了參數量和過擬合風險。
影響
GoogLeNet 的創新設計為后續深度神經網絡的發展提供了重要參考。Inception 模塊被廣泛應用于各種網絡架構中,如后續的 Inception V2、 Inception V3 和 Inception-ResNet。其成功展示了通過合理設計 網絡結構,可以在保持高性能的同時大幅減少計算成本和參數量。
6. ResNet
概述
ResNet( Residual Network)由何凱明等人在 2015 年提出,并在當年的 ImageNet 大規模視覺識別挑 戰賽(ILSVRC)中獲得了冠軍。 ResNet 的關鍵創新是引入了殘差連接(skip connections),解決了深度神經網絡在訓練過程中遇到的退化問題,使得訓練非常深的網絡成為可能。
架構
ResNet 的核心是殘差模塊,通過增加跳躍連接,讓信息可以直接從前面的層傳遞到后面的層。最常見的 版本是 ResNet-50、 ResNet-101 和 ResNet-152,分別包含 50、 101 和 152 層。以下是 ResNet-50 的 詳細架構:
1. 輸入層: 輸入圖像大小為 224x224x3 的 RGB 圖像。
2. 卷積層和池化層:
o Conv1: 64 個 7x7 卷積核,步長為 2,輸出特征圖大小為 112x112x64。接著是 ReLU 激活函 數。
o Max Pool1: 3x3 最大池化,步長為 2,輸出特征圖大小為 56x56x64。
3. 殘差模塊(Residual Blocks):
o Conv2_x: 3 個殘差塊,每個塊包含 3 層卷積:
1x1 卷積核,減少維度 3x3 卷積核
1x1 卷積核,恢復維度
o Conv3_x: 4 個殘差塊,每個塊包含 3 層卷積:
1x1 卷積核,減少維度 3x3 卷積核
1x1 卷積核,恢復維度
o Conv4_x: 6 個殘差塊,每個塊包含 3 層卷積:
1x1 卷積核,減少維度 3x3 卷積核
1x1 卷積核,恢復維度
o Conv5_x: 3 個殘差塊,每個塊包含 3 層卷積:
1x1 卷積核,減少維度
3x3 卷積核
1x1 卷積核,恢復維度
4. 全局平均池化層:
o 全局平均池化(Global Average Pooling):將每個特征圖的大小縮小到 1x1。
5. 全連接層:
o 1000 個神經元,對應 1000 個類別,使用 softmax 激活函數。
創新點
ResNet 的成功歸因于以下幾個創新點:
殘差連接: 通過增加跳躍連接,使得梯度可以直接傳遞,緩解了深度神經網絡的退化問題。
深度可擴展性: 由于殘差連接的存在, ResNet 可以輕松擴展到數百層甚至更深,提高了模型的表 現力和泛化能力。
簡潔高效: 使用標準的卷積層和池化層,通過堆疊殘差模塊,保持了網絡結構的簡潔性和計算效 率。
影響
ResNet 的引入大幅度推動了深度學習的發展,使得訓練非常深的網絡成為可能,并在許多計算機視覺任 務中取得了最先進的性能。殘差網絡的思想不僅在圖像分類中得到了成功應用,還被廣泛應用于目標檢 測、語義分割和其他領域。
7. DenseNet
概述
DenseNet(Densely Connected Convolutional Networks)由 Gao Huang 等人在 2016 年提出。
DenseNet 的關鍵創新是引入密集連接(dense connections),使得每一層都與前面所有層直接相連。 這種設計不僅緩解了梯度消失問題,還通過特征復用顯著減少了參數量。
架構
DenseNet 的核心是密集塊(Dense Block),在每個密集塊中,每一層都接收所有之前層的輸出作為其 輸入。常見的版本有 DenseNet-121、 DenseNet-169 和 DenseNet-201,分別包含 121、 169 和 201層。以下是 DenseNet-121 的詳細架構:
1. 輸入層: 輸入圖像大小為 224x224x3 的 RGB 圖像。
2. 初始卷積層:
o Conv1: 64 個 7x7 卷積核,步長為 2,輸出特征圖大小為 112x112x64。 o Max Pool1: 3x3 最大池化,步長為 2,輸出特征圖大小為 56x56x64。
3. Dense Block 和 Transition Layer:
o Dense Block 1: 包含 6 個密集層,每個層由 Batch Normalization、 ReLU 和 3x3 卷積組 成。輸出特征圖大小為 56x56x256。
o Transition Layer 1: 包含 1x1 卷積和 2x2 平均池化,輸出特征圖大小為 28x28x128。
o Dense Block 2: 包含 12 個密集層,每個層由 Batch Normalization、 ReLU 和 3x3 卷積組 成。輸出特征圖大小為 28x28x512。
o Transition Layer 2: 包含 1x1 卷積和 2x2 平均池化,輸出特征圖大小為 14x14x256。
o Dense Block 3: 包含 24 個密集層,每個層由 Batch Normalization、 ReLU 和 3x3 卷積組 成。輸出特征圖大小為 14x14x1024。
o Transition Layer 3: 包含 1x1 卷積和 2x2 平均池化,輸出特征圖大小為 7x7x512。
o Dense Block 4: 包含 16 個密集層,每個層由 Batch Normalization、 ReLU 和 3x3 卷積組 成。輸出特征圖大小為 7x7x1024。
4. 全局平均池化層:
o 全局平均池化(Global Average Pooling):將每個特征圖的大小縮小到 1x1。
5. 全連接層:
o 1000 個神經元,對應 1000 個類別,使用 softmax 激活函數。
創新點
DenseNet 的成功歸因于以下幾個創新點:
密集連接: 每層都接收之前所有層的輸出作為輸入,這種連接方式緩解了梯度消失問題,并促進了 特征復用。
特征復用: 通過直接使用之前層的特征圖, DenseNet 顯著減少了參數量,提高了計算效率。
高效訓練: 密集連接使得網絡訓練更加高效,并且容易優化。
影響
DenseNet 的引入進一步推動了深度學習模型設計的發展。其密集連接的思想在許多任務中得到了成功 應用,并影響了后續網絡架構的設計。 DenseNet 在圖像分類、目標檢測和語義分割等任務中均表現出色。
8. Inception-v3
概述
Inception-v3 是 Google 在 2015 年提出的卷積神經網絡架構,是 Inception 系列的第三個版本。它在Inception-v1 和 Inception-v2 的基礎上進一步優化了網絡結構,提高了計算效率和性能。
架構
Inception-v3 的架構主要由多個 Inception 模塊組成,每個模塊使用并行的卷積操作來捕獲不同尺度的 特征。以下是 Inception-v3 的主要架構特點:
1. 輸入層: 輸入圖像大小為 299x299x3 的 RGB 圖像。
2. 基礎網絡結構:
o Stem 結構: 初始的 3x3 卷積層用于提取低級特征,接著是多個 3x3 和 1x1 卷積層用于進一 步特征提取和降維。
3. Inception 模塊:
o Inception-A: 主要由多個并行的卷積層組成,包括 1x1、3x3 和 5x5 卷積核,以及 3x3 最 大池化。這些路徑的輸出會被串聯在一起,形成模塊的最終輸出。
o Reduction-A: 通過組合 1x1 卷積、 3x3 卷積和最大池化,用于減少特征圖的尺寸,提高計 算效率。
o Inception-B 和 Reduction-B: 類似于 Inception-A 和 Reduction-A,但結構稍有不同,用 于提取和降維更高級別的特征。
o Inception-C: 進一步擴展了 Inception-A 和 Inception-B 的設計,通過增加更多的并行卷積 路徑來捕獲更復雜的特征。
4. 全局平均池化和分類層:
。 全局平均池化(Global Average Pooling): 將最后一個 Inception 模塊的輸出進行全局平 均池化,將特征圖大小縮減為 1x1x最后特征圖數。
。 分類層: 全連接層用于將池化后的特征圖映射到最終的輸出類別上。
創新點
Inception-v3 的成功歸因于以下幾個創新點:
多尺度特征提取: 使用并行的卷積路徑來捕獲不同尺度和抽象級別的特征,使得網絡對多樣化的輸 入數據具有較強的適應能力。
優化的網絡結構: 通過精心設計的 Inception 模塊和降維策略,提高了網絡的計算效率和參數效 率。
高效的全局平均池化: 用于特征圖的最終匯總和分類,減少了全連接層的參數量和計算成本。
影響
Inception-v3 在計算機視覺任務中表現出色,特別是在圖像分類、目標檢測和語義分割等領域。其優化 的設計和高效的特征提取使得它成為許多應用中的首選模型之一,同時也影響了后續的深度學習架構設 計。
9. MobileNet
概述
MobileNet 是由 Google 在 2017 年提出的一種輕量級卷積神經網絡架構,專為移動和嵌入式設備設計。其主要目標是在保持較高的分類準確率的同時,顯著減少模型的計算量和參數量,以適應資源受限 的環境。
架構
MobileNet 的核心設計思想是使用深度可分離卷積(Depthwise Separable Convolution),這種卷積 結構可以顯著減少計算成本。以下是 MobileNet 的主要架構特點:
1. 輸入層: 輸入圖像大小為 224x224x3 的 RGB 圖像。
2. 深度可分離卷積層:
。 卷積層序列: 由深度可分離卷積和 Batch Normalization 組成,深度可分離卷積分為兩步: 首先是深度卷積(Depthwise Convolution),然后是逐點卷積(PointwiseConvolution)。
3. 模塊化設計:
。主要卷積塊: 由多個深度可分離卷積層組成,每個塊結束時可能會使用 1x1 卷積層來調整特
征通道數。
。 結構優化: 通過減少卷積核的數量和優化通道數來進一步減少參數量和計算量。
4. 全局平均池化和分類層:
。全局平均池化(Global Average Pooling): 將最后一個卷積塊的輸出進行全局平均池化, 將特征圖大小縮減為 1x1x最后特征圖數。
。 分類層: 全連接層用于將池化后的特征圖映射到最終的輸出類別上。
創新點
MobileNet 的成功歸因于以下幾個創新點:
深度可分離卷積: 通過深度卷積和逐點卷積的組合,有效降低了計算成本和參數量,同時保持了模 型的表現力。
模塊化設計: 使用簡單而有效的模塊化結構,使得 MobileNet 在輕量級和高效率之間找到了一個 良好的平衡點。
適應移動設備: 設計目標是在資源受限的移動和嵌入式設備上運行,因此特別關注了計算效率和模 型大小的優化。
影響
MobileNet 在移動端和嵌入式設備上有著廣泛的應用,尤其是在實時圖像處理、物體識別和邊緣計算等 場景中表現出色。其設計理念和結構在輕量級深度學習模型的研究和應用中產生了深遠的影響。
10. ShuffleNet
概述
ShuffleNet 是由 Xiangyu Zhang 等人在 2017 年提出的一種輕量級卷積神經網絡架構,旨在在保持模型 精度的同時,顯著減少模型的計算量和參數量,特別適用于移動端和嵌入式設備。
架構
ShuffleNet 的核心設計思想是使用深度可分組卷積(Depthwise Grouped Convolution)和通道隨機重 排(Channel Shuffle)。以下是 ShuffleNet 的主要架構特點:
1. 輸入層: 輸入圖像大小為 224x224x3 的 RGB 圖像。
2. 基礎網絡結構:
。 卷積層序列: 使用具有組卷積的深度可分組卷積結構,將輸入特征圖分為若干組,并在每組 內進行獨立的深度卷積操作。
3. 通道隨機重排(Channel Shuffle):
o Shuffle 單元: 通過將特征圖的通道分成多個組,并在組內進行隨機重排,促進了信息的交 流和特征的多樣性,有助于提高模型的表現力。
4. 模塊化設計:
o ShuffleNet 單元: 組合了深度可分組卷積和通道隨機重排操作,形成多個 ShuffleNet 單元 堆疊的基礎網絡結構。
5. 全局平均池化和分類層:
。 全局平均池化(Global Average Pooling): 將最后一個 ShuffleNet 單元的輸出進行全局 平均池化,將特征圖大小縮減為 1x1x最后特征圖數。
。 分類層: 全連接層用于將池化后的特征圖映射到最終的輸出類別上。
創新點
ShuffleNet 的成功歸因于以下幾個創新點:
深度可分組卷積: 使用分組卷積結構降低了計算復雜度,提高了模型的計算效率。
通道隨機重排: 引入了通道隨機重排操作,促進了特征之間的信息交流,提高了模型的表現力。
輕量級設計: 在保持精度的同時顯著減少了模型的參數量和計算量,適合移動端和嵌入式設備的部 署。
影響
ShuffleNet 在移動端和嵌入式設備上取得了顯著的應用成果,尤其在資源受限的環境中表現出色。其設 計理念和結構為輕量級深度學習模型的研究和應用提供了重要的參考,對相關領域產生了深遠的影響。
11. EfficientNet
概述
EfficientNet 是由 Google 在 2019 年提出的一種卷積神經網絡架構,旨在同時優化模型的精度和效率。 其主要創新在于引入了復合縮放方法,系統地平衡網絡深度、寬度和分辨率,從而在不同計算資源條件 下實現最佳性能。
架構
EfficientNet 的架構基于一種簡單而高效的基線網絡,通過復合縮放方法擴展到不同的模型尺寸。以下 是 EfficientNet 的主要架構特點:
1. 輸入層: 輸入圖像大小可以根據具體模型調整,例如 EfficientNet-B0 使用 224x224x3 的 RGB 圖 像。
2. 基礎網絡結構:
o MBConv 模塊: 基于移動端優化的倒置殘差塊(Inverted Residual Block),結合了深度可 分離卷積(Depthwise Separable Convolution)和擴展層(Expansion Layer),提高了模 型的計算效率和表現力。
3. 復合縮放方法:
。復合系數(Compound Scaling Coefficient): 通過聯合調整網絡的深度(Depth)、寬 度(Width)和分辨率(Resolution),實現最佳的模型縮放和性能平衡。
例如EfficientNet-B1 至 B7 通過不同的復合系數調整基線網絡,適應不同的計算資源條件。
4. 全局平均池化和分類層:
。全局平均池化(Global Average Pooling): 將最后一個卷積塊的輸出進行全局平均池化, 將特征圖大小縮減為 1x1x最后特征圖數。
。 分類層: 全連接層用于將池化后的特征圖映射到最終的輸出類別上,使用 softmax 激活函 數。
創新點
EfficientNet 的成功歸因于以下幾個創新點:
復合縮放方法: 系統地聯合調整網絡的深度、寬度和分辨率,確保在不同計算資源條件下實現最佳 性能。
高效的 MBConv 模塊: 結合深度可分離卷積和倒置殘差塊,提高了模型的計算效率和表現力。
模型族(Model Family): 提供了一系列從 EfficientNet-B0 到 B7 的模型,可以根據具體需求選 擇合適的模型尺寸,靈活適應不同的應用場景。
影響
EfficientNet 在多個計算機視覺任務中表現出色,如圖像分類、目標檢測和語義分割等,常常在保持較 高精度的同時顯著減少計算成本。其復合縮放方法和高效的網絡設計對后續的模型架構研究和優化具有 重要的參考價值。
總結
本文介紹了十種經典的卷積神經網絡(CNN)架構,包括 LeNet-5、AlexNet、VGGNet、
GoogLeNet(Inception)、 ResNet、 DenseNet、 MobileNet、ShuffleNet 和 EfficientNet。每種架構 都在不同的時期和應用背景下提出,旨在解決當時的特定問題,并推動了深度學習在計算機視覺領域的 發展。
關鍵創新點
1. LeNet-5 通過層次化的卷積和池化結構,實現了對手寫數字的高效識別,奠定了現代CNN的基礎。
2. AlexNet 引入了ReLU激活函數、大規模數據集(ImageNet)訓練和GPU加速計算,大幅提升了圖 像分類性能。
3. VGGNet 通過使用更深的網絡結構和更小的卷積核,展示了深度在特征提取中的重要性。
4. GoogLeNet(Inception) 提出了Inception模塊,通過多尺度卷積和減少計算量的方法,提高了 模型效率。
5. ResNet 引入了殘差連接,解決了深度網絡的梯度消失問題,使得訓練更深層次的網絡成為可能。
6. DenseNet 通過密集連接進一步緩解了梯度消失問題,并實現了特征復用和高效的參數利用。
7. MobileNet 使用深度可分離卷積,顯著減少了計算量和參數量,適用于移動設備和嵌入式設備。
8. ShuffleNet 引入了通道隨機重排(channel shuffle)操作,進一步優化了輕量級模型的計算效 率。
9. EfficientNet 通過復合縮放方法系統地平衡網絡深度、寬度和分辨率,在多種計算資源條件下實現 了最佳性能。
未來展望
隨著深度學習技術的不斷發展,新的網絡架構和優化方法將持續涌現。未來的研究可能會更加關注以下 幾個方面:
自動化架構搜索(NAS): 使用自動化工具來設計和優化神經網絡結構,進一步提高模型性能和 效率。
輕量級模型: 在保持高精度的同時,進一步減少計算量和參數量,以適應更多資源受限的應用場 景。
多任務學習: 設計能夠同時處理多個任務的統一模型,提升模型的通用性和應用價值。
解釋性和可解釋性: 提高模型的透明度和可解釋性,幫助用戶更好地理解和信任深度學習模型的決 策過程。
通過對這些經典架構的學習和研究,讀者不僅能夠深入理解CNN的核心概念和創新點,還可以為自己的 深度學習研究和應用提供重要的參考和啟示。