GoogLeNet 是 Google 在 2014 年 ImageNet 大型視覺識別挑戰賽 (ILSVRC) 中獲得冠軍的深度卷積神經網路 (CNN) 架構。它最顯著的特點是引入了名為 Inception Module 的創新結構,這使得網路在保持較低計算成本的同時,能夠有效地提取多尺度特徵並顯著提升性能。
以下是 GoogLeNet 的主要特點和架構:
- Inception Module: 這是 GoogLeNet 的核心創新。一個 Inception Module 可以在同一層並行地執行多種不同尺寸的卷積操作(例如:1x1, 3x3, 5x5)以及最大池化操作。這樣做的目的是讓網路能夠更好地適應不同尺寸的物體和特徵,並提取更豐富的圖像信息。模塊的輸出會將所有並行操作的結果在深度方向上進行拼接。
- Network in Network (NIN) 的思想: GoogLeNet 的 Inception Module 中使用了 1x1 的卷積層。1x1 卷積的主要作用是降低通道數(dimensionality reduction),從而減少計算量,並增加更多的非線性激活函數。這受到了 Network in Network 架構思想的啟發。
- 更深的網路但參數更少: 相較於同期的 VGGNet,GoogLeNet 擁有更深的網路結構(通常為 22 層),但由於 Inception Module 的高效設計,其參數數量卻遠遠少於 VGGNet。這使得 GoogLeNet 更容易訓練,且不易過擬合。
- 沒有完全依賴全連接層: GoogLeNet 在最後幾層中使用了全局平均池化 (Global Average Pooling) 來取代傳統的大部分全連接層。全局平均池化直接對每個特徵圖的平均值進行計算,並將其作為最終分類器的輸入。這樣做進一步減少了參數數量,並提高了模型對輸入圖像空間位置的魯棒性。
- 輔助分類器 (Auxiliary Classifiers): 為了幫助更深層次的網路進行訓練,GoogLeNet 在網路的中間層引入了幾個輔助分類器。這些輔助分類器的目標與最終分類器相同,它們的輸出會在訓練過程中被納入總的損失函數中,以提供額外的梯度信息。在測試階段,這些輔助分類器會被丟棄。
GoogLeNet 的整體架構是由多個堆疊的 Inception Module 組成的。其大致流程如下:
- 初始卷積層: 負責初步的特徵提取。
- 堆疊的 Inception Module: 這是 GoogLeNet 的核心部分,通過多個並行的卷積和池化操作提取多尺度特徵。
- 輔助分類器 (在中間層): 用於輔助訓練。
- 全局平均池化: 將最後一層的特徵圖轉換為固定長度的特徵向量。
- 全連接層 (用於分類): 最後一個全連接層用於輸出最終的分類結果。
- Softmax: 輸出每個類別的機率。
GoogLeNet 的重要性:
- 引入了 Inception Module: 這個創新性的結構有效地提高了 CNN 的性能,同時降低了計算成本。Inception 的思想對後來的許多網路架構產生了深遠的影響。
- 證明了更深的網路可以更有效: GoogLeNet 的成功進一步證明了網路深度對於提升模型性能的重要性。
- 強調了效率和實用性: 相較於參數量巨大的 VGGNet,GoogLeNet 在保持甚至超越其性能的同時,顯著減少了參數數量和計算複雜度,使其更易於部署到實際應用中。
- 開啟了 CNN 架構設計的新思路: GoogLeNet 不再像之前的網路那樣只是簡單地堆疊卷積層和池化層,而是開始關注如何設計更複雜、更有效的網路模塊。
總而言之,GoogLeNet 是一個非常重要的 CNN 架構。它通過引入 Inception Module 和全局平均池化等創新技術,在提升圖像識別性能的同時,也更加注重模型的效率和實用性,為後來的深度學習研究開闢了新的方向。