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

更新於 發佈於 閱讀時間約 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深度學習:電腦視覺流行專案親自動手》/ 郭卡、戴亮 編著
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
9會員
25內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
深智數位的沙龍 的其他內容
Kubernetes是什麼? 1. Kubernetes是Google嚴格保密十幾年的秘密武器——Borg的一個開放原始碼版本。 2. Kubernetes是一個開放的開發平台。 3. Kubernetes是一個完備的分散式系統支撐平台。
大部分處理影像的神經網路,例如簡單的神經網路、CNN、物件偵測、語義分割、臉部辨識等,都是以像素為輸入特徵,圖神經網路 (GNN) 則是以圖形理論 (Graph Theory) 為基礎,以向量作為輸入,內含節點 (Node) 及邊 (Edge),如下圖,以圖形表達集團交叉持股的關係及持股比例。
要徹底了解深度學習,必須從數學/統計奠定基礎,從張量運算、偏微分、梯度下降優化求解,最後依據機率統計衡量模的效能指標,包括準確率 (Accuracy)、精確率 (Precision)、召回率 (Recall),乃至於混淆矩陣 (Confusion Matrix)。
TensorFlow、PyTorch 是目前佔有率最高的深度學習框架,初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展重點有所不同,例如在偵錯方面,PyTorch比較容易,但Tensor
2020年VMware發布VMware vSphere 7.0,透過整合資料中心伺服器、靈活設定資源等方式降低了營運成本,同時還可在不增加成本的情況下提供給使用者高可用、災難恢復等進階特性。
行動通訊系統十年一代,從 1G 到 4G,歷經了「模擬、數位、資料、寬頻」四次技術變革,為全世界的億萬使用者帶來了「前所未有」的嶄新感受。尤其是 4G 技術開啟了行動網際網路時代,深刻改變了人們的生活方式。
Kubernetes是什麼? 1. Kubernetes是Google嚴格保密十幾年的秘密武器——Borg的一個開放原始碼版本。 2. Kubernetes是一個開放的開發平台。 3. Kubernetes是一個完備的分散式系統支撐平台。
大部分處理影像的神經網路,例如簡單的神經網路、CNN、物件偵測、語義分割、臉部辨識等,都是以像素為輸入特徵,圖神經網路 (GNN) 則是以圖形理論 (Graph Theory) 為基礎,以向量作為輸入,內含節點 (Node) 及邊 (Edge),如下圖,以圖形表達集團交叉持股的關係及持股比例。
要徹底了解深度學習,必須從數學/統計奠定基礎,從張量運算、偏微分、梯度下降優化求解,最後依據機率統計衡量模的效能指標,包括準確率 (Accuracy)、精確率 (Precision)、召回率 (Recall),乃至於混淆矩陣 (Confusion Matrix)。
TensorFlow、PyTorch 是目前佔有率最高的深度學習框架,初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展重點有所不同,例如在偵錯方面,PyTorch比較容易,但Tensor
2020年VMware發布VMware vSphere 7.0,透過整合資料中心伺服器、靈活設定資源等方式降低了營運成本,同時還可在不增加成本的情況下提供給使用者高可用、災難恢復等進階特性。
行動通訊系統十年一代,從 1G 到 4G,歷經了「模擬、數位、資料、寬頻」四次技術變革,為全世界的億萬使用者帶來了「前所未有」的嶄新感受。尤其是 4G 技術開啟了行動網際網路時代,深刻改變了人們的生活方式。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本篇文章專注於消息傳遞(message passing)在圖神經網絡(GNN)中的應用,並以簡單的例子解釋了消息傳遞的過程和機制。
Thumbnail
本文主要筆記使用pytorch建立graph的幾個概念與實作。在傳統的神經網路模型中,數據點之間往往是互相連接和影響的,使用GNN,我們不僅處理單獨的數據點或Xb,而是處理一個包含多個數據點和它們之間連結的特徵。GNN的優勢在於其能夠將這些連結關係納入模型中,將關係本身作為特徵進行學習。
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
Thumbnail
U-Net演算法架構解析,首次介紹了U-Net的設計,架構,以及在Stable-diffusion中的應用。詳盡分析了U-Net的收縮路徑、擴展路徑、最終層,以及形變不變性的應用。同時提供了相關論文以及PyTorch實作的參考資料。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 首先先展示 Transformer 的架構圖: 可以看到架構中不再出現 RNN 、 LSTM 、 CNN 等物件,因為 Recurrence 已被摒棄。
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在AI說書 - 從0開始 - 16走過了部分AI發展軌跡,接著繼續: 在1980年代Yann LeCun設計了Convolutional Neural N
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
卷積神經網路(CNN)是一種專門用於影像相關應用的神經網路。本文介紹了CNN在影像辨識中的應用,包括圖片的組成、Receptive Field、Parameter Sharing、以及Pooling等技術。通過本文,讀者將瞭解CNN在影像辨識領域的優勢和運作原理。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本篇文章專注於消息傳遞(message passing)在圖神經網絡(GNN)中的應用,並以簡單的例子解釋了消息傳遞的過程和機制。
Thumbnail
本文主要筆記使用pytorch建立graph的幾個概念與實作。在傳統的神經網路模型中,數據點之間往往是互相連接和影響的,使用GNN,我們不僅處理單獨的數據點或Xb,而是處理一個包含多個數據點和它們之間連結的特徵。GNN的優勢在於其能夠將這些連結關係納入模型中,將關係本身作為特徵進行學習。
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
Thumbnail
U-Net演算法架構解析,首次介紹了U-Net的設計,架構,以及在Stable-diffusion中的應用。詳盡分析了U-Net的收縮路徑、擴展路徑、最終層,以及形變不變性的應用。同時提供了相關論文以及PyTorch實作的參考資料。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 首先先展示 Transformer 的架構圖: 可以看到架構中不再出現 RNN 、 LSTM 、 CNN 等物件,因為 Recurrence 已被摒棄。
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在AI說書 - 從0開始 - 16走過了部分AI發展軌跡,接著繼續: 在1980年代Yann LeCun設計了Convolutional Neural N
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
卷積神經網路(CNN)是一種專門用於影像相關應用的神經網路。本文介紹了CNN在影像辨識中的應用,包括圖片的組成、Receptive Field、Parameter Sharing、以及Pooling等技術。通過本文,讀者將瞭解CNN在影像辨識領域的優勢和運作原理。