【深智書摘】卷積神經網路(CNN)的發展與結構

2022/06/06閱讀時間約 6 分鐘
  卷積神經網路(Convolutional Neural Networks,CNN),其應用包括影像辨識、自然語言處理(NLP)等領域。若能從其發展至今的脈絡開始了解,必定可以更進一步地理解專案的想法,將該技術掌握得更得心應手。以下就其發展和結構分別說明。
  LeNet是最早的分類卷積網路,在1998年由Yann Lecun提出。當時,LeNet被設計用於手寫數字辨識,但是因為其理論解釋性較差,並且效果不如處理人工特徵的SVM,所以一直沒有得到重視。
  一直到2012年,AlexNet在ILSVRC(也就是ImageNet比賽)中一舉奪魁,才觸發了人們對於深度學習的熱情,從此深度學習進入了高速發展的時期,之後便誕生了VGG、ResNet等一系列卷積網路架構。
1. LeNet
  LeNet的結構如圖4-4所示,其中只有3種網路層——卷積層、池化層和全連接層。在啟動函數的選擇上,LeNet選擇了雙曲正切函數(Tanh),確定了卷積神經網路的基本結構。
圖4-4 LeNet 結構示意圖
  現在有些深度學習框架中已經不提供定義好的LeNet 網路了,即使有,也是經過簡化改良之後的LeNet-5,用於辨識MNIST資料集的LeNet-5結構如圖4-5 所示。
圖4-5 LeNet-5 結構圖
  Tanh 啟動函數被替換成了ReLU 啟動函數。
2. AlexNet
  AlexNet中主要是提出了ReLU啟動函數和Dropout方法,同時還引入了資料增強操作,使模型的泛化能力得到進一步提高。但是這個網路中的參數量達到了6000萬,AlexNet的作者使用了兩片GTX 580訓練了五六天才得到分類結果。最終的分類結果也不負所望,以超越第二名10.9%的絕對優勢奪得第一名。AlexNet 網路結構如圖4-6 所示。
  AlexNet中包含了5個卷積層和3個全連接層,層數比LeNet多,但是卷積、池化這樣的整體流程並沒有改變。AlexNet中用到的3個訓練技巧對最終的結果造成了積極作用。
圖4-6 AlexNet 網路結構示意圖
  • ReLU:ReLU啟動函數具有非線性的特徵,又不會像Sigmoid和Tanh那樣,容易出現梯度彌散的問題。
  • Dropout:其原理類似於sklearn中的整合演算法,在訓練過程中,會以一定機率讓神經網路節點失去活性。在預測過程中,會將所有節點的輸出乘以這個機率值。這樣訓練出來的神經網路能夠得到類似多模型整合的效果,緩解了模型的過擬合問題。
  • 資料增強:資料增強過程相當於增加了樣本的多樣性,使模型具有更強的泛化能力。
3. VGGNet
  我們可以將VGGNet看作一個加深版的AlexNet,它使用了3個全連接層,使模型的總參數量達到了1.3億,這個架構最大的貢獻是它證明了:使用小尺寸的卷積核心並增加網路深度可以有效提升模型效果。不過有關VGGNet的論文中提到,當網路層數疊加到19層時,其準確率幾乎達到飽和,即此時無法再透過加深網路來提高準確率了。
  這個網路在當時看來已經非常深了,VGG的作者在訓練VGG模型的時候,是先訓練了淺層網路(VGG-11),等淺層網路穩定之後,再往上增加新的卷積層,這樣逐步將網路深度增加到13、16、19。圖4-7展示了VGG-16的網路結構。
圖4-7  VGG-16 網路結構示意圖
  VGG使用多個小卷積核心替代了大卷積核心,比如使用3個3×3卷積核心得到的特徵圖尺寸和使用1個7×7卷積核心得到的特徵圖尺寸相同,7×7卷積核心有49×channel個參數,而3個3×3卷積核心只有27×channel個參數(channel 是通道數)。
  在VGG之後出現的網路中,卷積核心基本以3×3卷積和1×1卷積為主。
4. GoogleNet
  GoogleNet也叫InceptionNet,與AlexNet和VGGNet這種單純依靠加深網路結構進而改進網路性能的想法不一樣,它另闢蹊徑,在加深網路的同時,改進了網路結構:引入Inception模組(見圖4-8),使用分支結構。在僅有500萬參數的情況下,GoogleNet力壓VGG模型獲得2014年ILSVRC分類比賽的冠軍(VGG是定位比賽的冠軍和分類比賽的亞軍)。
圖4-8 Inception 模組
  GoogleNet為了能讓模型更進一步地收斂,在較淺層的特徵圖上設計了輔助損失單元,這樣得到的淺層特徵也能有很好的區分能力。
  Inception v2中提出了Batch Normalization(本書將其簡稱為BatchNorm),對啟動值進行了規範化操作,使網路梯度反向傳播時不再受參數尺度影響,這個方法已經被後來很多網路架構應用。在有些專案中,為了最佳化模型的速度和記憶體佔用情況,會將BatchNorm合併到卷積中。
5. ResNet
  ResNet可以說是卷積神經網路發展史上里程碑式的貢獻,其獨創的殘差結構(見圖4-9)能夠有效緩解梯度彌散問題,在網路層數達到100多層的時候,仍然可以有效地進行訓練。
  考慮到x的維度與F(x)的維度可能不匹配,需進行維度匹配工作,在恆等層採用1×1 卷積核心來增加維度。
  在網路進一步加深之後,圖4-9中的殘差模組變得不是特別有效,所以又設計了一種瓶頸參數模組,如圖4-10所示。第一個1×1卷積有著降維的作用,將原來256維的x降維到64維,從而使3×3卷積得以在較低維度上進行運算,有著提高運算效率的作用。3×3卷積計算完畢之後,再使用1×1卷積進行升維,以便與原有的x相加。
圖4-9 ResNet 中的殘差模組
圖4-10 瓶頸殘差模組
《PyTorch深度學習:電腦視覺流行專案親自動手》/ 郭卡、戴亮 編著
為什麼會看到廣告
深智數位
深智數位
在大數據 (Big Data)、人工智慧 (Artificial Intelligence) 的發展年代,團隊憑著擁有技術與熱誠,在出版方面將豐富的科技知識給社會大眾。在訊息紛沓而來的氛圍,深智堅持讓讀者、學生、相關人員尋找最有效率、愉快的學習途徑,取得知識與專業。
留言0
查看全部
發表第一個留言支持創作者!