什麼是 移動網路(MobileNet)?

MobileNet是一種針對移動和嵌入式設備設計的輕量級深度神經網路架構,旨在實現高效的資源利用和快速的推論速度。

核心概念

MobileNet的核心概念是深度可分離卷積 (Depthwise Separable Convolution)。傳統的卷積操作會同時執行空間相關性和通道相關性的計算,而深度可分離卷積將這兩個步驟分開,從而大幅減少計算量和參數數量。

  • 深度卷積 (Depthwise Convolution): 對每個輸入通道獨立應用一個卷積核。假設輸入特徵圖的尺寸為 H x W x C,深度卷積會使用 C 個尺寸為 D x D 的卷積核,每個卷積核只作用於一個輸入通道。這樣可以提取每個通道的空間特徵。
  • 逐點卷積 (Pointwise Convolution): 使用 1x1 的卷積核,對深度卷積的輸出進行線性組合,以實現通道間的資訊融合。這一步驟可以改變輸出通道的數量。

通過將傳統卷積分解為深度卷積和逐點卷積,MobileNet 能夠在保持相似準確度的前提下,顯著降低計算複雜度。

另一個重要的概念是寬度乘數 (Width Multiplier)解析度乘數 (Resolution Multiplier)。這兩個參數允許使用者根據具體的資源限制,進一步調整模型的尺寸和性能。

  • 寬度乘數 (α): 控制每一層的通道數量。α < 1 會減少通道數量,從而縮小模型尺寸和計算量。例如,α = 0.5 會將所有層的通道數量減半。
  • 解析度乘數 (ρ): 控制輸入圖像的解析度。ρ < 1 會降低輸入圖像的解析度,從而減少計算量。例如,ρ = 0.5 會將輸入圖像的尺寸縮小一半。

運作原理

MobileNet 的運作原理基於深度可分離卷積的有效性。以下是 MobileNet 模型的典型結構:

  1. 標準卷積層: 模型的第一層通常是一個標準的卷積層,用於提取初始的特徵。
  2. 深度可分離卷積層: 後續的層主要由深度可分離卷積層組成。每個深度可分離卷積層包含一個深度卷積層和一個逐點卷積層。
  3. 批次正規化 (Batch Normalization) 和 ReLU 激活函數: 每個卷積層之後通常會接一個批次正規化層和一個 ReLU 激活函數,以加速訓練並提高模型的泛化能力。
  4. 平均池化層 (Average Pooling): 在模型的最後,通常會使用一個平均池化層來降低特徵圖的尺寸。
  5. 全連接層 (Fully Connected Layer) 和 Softmax 層: 最後,使用一個全連接層和一個 Softmax 層來進行分類。

通過堆疊多個深度可分離卷積層,MobileNet 能夠有效地提取圖像的特徵,並在資源受限的設備上實現快速的推論速度。

MobileNetV2 在 MobileNetV1 的基礎上引入了線性瓶頸 (Linear Bottlenecks)反向殘差 (Inverted Residuals) 的概念,進一步提高了模型的效率和準確度。

  • 線性瓶頸: 在深度可分離卷積層之前,使用一個 1x1 的卷積層來降低通道數量,形成一個瓶頸結構。這樣可以減少深度卷積的計算量。
  • 反向殘差: 將殘差連接應用於瓶頸結構,而不是應用於擴展層。這樣可以更好地保留輸入資訊,並提高模型的準確度。

MobileNetV3 則進一步引入了網路架構搜尋 (Neural Architecture Search, NAS) 的技術,自動搜尋最佳的網路結構,以實現更高的效率和準確度。

實際應用

MobileNet 由於其高效性和輕量級的特性,在許多實際應用中都得到了廣泛的應用,包括:

  • 移動設備上的圖像分類: MobileNet 可以用於在移動設備上進行圖像分類,例如識別照片中的物體、場景和人物。
  • 物體檢測: MobileNet 可以作為物體檢測模型的骨幹網路,例如 SSD (Single Shot Detector) 和 YOLO (You Only Look Once)。
  • 人臉辨識: MobileNet 可以用於人臉辨識系統,例如解鎖手機和驗證身份。
  • 機器人學: MobileNet 可以用於機器人導航和物體識別。
  • 自動駕駛: MobileNet 可以用於自動駕駛系統中的交通標誌識別和行人檢測。
  • 擴增實境 (AR) 和虛擬實境 (VR): MobileNet 可以用於 AR 和 VR 應用中的場景理解和物體追蹤。
  • 嵌入式系統: MobileNet 可以部署在各種嵌入式系統中,例如智慧攝影機、無人機和物聯網 (IoT) 設備。

常見誤區

  • 誤區 1: MobileNet 的準確度一定比傳統的 CNN 低。 雖然 MobileNet 的模型尺寸和計算量較小,但通過深度可分離卷積和網路架構搜尋等技術,MobileNet 可以在許多任務上達到與傳統 CNN 相似甚至更高的準確度。關鍵在於選擇合適的 MobileNet 版本和進行適當的訓練。
  • 誤區 2: MobileNet 只能用於移動設備。 雖然 MobileNet 最初是為移動設備設計的,但它也可以用於其他資源受限的環境,例如嵌入式系統和雲端伺服器。在雲端伺服器上,MobileNet 可以用於降低計算成本和提高推論速度。
  • 誤區 3: MobileNet 的訓練很困難。 MobileNet 的訓練與傳統 CNN 類似,可以使用標準的訓練方法和優化器。然而,由於 MobileNet 的模型尺寸較小,可能需要使用更小的學習率和更長的訓練時間,以達到最佳的準確度。
  • 誤區 4: MobileNet 不需要進行微調 (Fine-tuning)。 雖然可以使用預訓練的 MobileNet 模型,但在實際應用中,通常需要使用自己的數據集進行微調,以提高模型的準確度。微調可以使模型更好地適應特定的任務和數據分佈。
  • 誤區 5: MobileNet 只能用於圖像相關的任務。 雖然 MobileNet 最初是為圖像分類設計的,但它也可以用於其他任務,例如語音辨識和自然語言處理。通過將 MobileNet 與其他模型結合,可以解決更複雜的問題。

相關術語

常見問題

← 回到 移動網路 快查頁

延伸學習

想看 移動網路 的完整影片教學?前往 美第奇 AI 學院