【AI學習筆記8】卷積神經網絡CNN原理 The Principle of Convolutional Neural Network
卷積神經網絡CNN原理 The Principle of Convolutional Neural Network
- CNN基本原理與結構
CNN(Convolutional Neural Network):卷積神經網絡,通過卷積和池化操作有效地處理高維圖像數據,降低計算復雜度,并提取關鍵特征進行識別和分類。
CNN通過模擬人的視覺神經系統,卷積感受野如同人眼掃描觀察范圍,提取圖像局部特征,最后根據特征組合來識別圖像。
CNN相比于MLP,利用局部連接和權值共享的方式減少參數數量(而不是像MLP一樣每個神經元都和上一層中的所有節點連接),從而減少了參數,提高了訓練效率。如果一個圖像的尺寸是(28,28,1),即代表這個圖像的是一個長寬均為28,channel為1的圖像(channel也叫depth,此處1代表灰度圖像)。如果使用全連接的網絡結構,即,網絡中的神經與與相鄰層上的每個神經元均連接,那就意味著網絡有28 * 28 =784個神經元,hidden層采用了15個神經元,那么需要的參數個數(w和b)就有:784*15*10+15+10=117625個,這個參數太多了,隨便進行一次反向傳播計算量都是巨大的,從計算資源和調參的角度都不建議用MLP神經網絡。【1】

如圖,CNN網絡由卷積層(Convolutional)、池化層(Pooling)、全連接層(FCN)組成:【2】
- 輸入層
輸入層接收原始圖像數據。圖像通常由三個顏色通道(紅、綠、藍)組成,形成一個二維矩陣,表示像素的強度值。如果是灰度圖,則只有一個顏色通道。【3】

- 卷積層和激活函數(Convolutional Layer& Activation Function)
卷積層將輸入圖像與卷積核進行卷積操作,提取圖像的邊緣、紋理和圖案等特征。然后,通過應用激活函數(如ReLU)來引入非線性。這一步使網絡能夠學習復雜的特征。
- 池化層(Pooling)
池化層通過減小特征圖的大小來減少計算復雜性。它通過選擇池化窗口內的最大值(Max Pooling)或平均值(Average Pooling)來實現。這有助于提取最重要的特征。
- 多層堆疊
CNN通常由多個卷積和池化層的堆疊組成,以逐漸提取更高級別的特征。深層次的特征可以表示更復雜的模式。
- 全連接層(FCN)和輸出
最后,全連接層將提取的特征映射轉化為網絡的最終輸出。這可以是一個分類標簽、回歸值或其他任務的結果。可以用Softmax生成概率。
- CNN主要模塊展開
- 卷積層Convolutional Layer【4】

輸入圖像數據image data --> 卷積核kernel組成的filter --> 特征圖feature map

Image通過filter滑窗卷積,得到Feature

計算過程如上圖示例【5】
- 卷積核:或稱作濾波器,通過卷積提取特征(如水平邊緣檢測、垂直邊緣檢測、“X”檢測等)【6】

- 多卷積核: 通過多個卷積核,學習多種不同的特征,對應產生多個通道(Channel)的特征圖(feature map)【7】

- Stride:Filter滑窗每次滑動的步長【4】

- Padding:當Filter滑動到邊緣時,如果圖像不是Filter的整數倍,則可以在周圍填充數據來padding補齊(補零稱為 Zero Padding)【4】

- 池化Pooling:池化層又稱為下采樣【8】
最大池化(Max Pooling):就是每次取正方形中所有值的最大值,這個最大值也就相當于當前位置最具有代表性的特征,如圖所示:

平均池化(Average Pooling):就是取此正方形區域中所有值的平均值,考慮到每個位置的值對于此處特征的影響,如圖所示:

參考文獻(References):
【1】 Charlotte77 《【深度學習系列】卷積神經網絡CNN原理詳解(一)——基本原理》
http://www.rzrgm.cn/charlotte77/p/7759802.html
【2】 架構師帶你玩轉AI 《大模型開發 - 一文搞懂CNNs工作原理(卷積與池化)》
https://www.53ai.com/news/qianyanjishu/594.html
【3】 Rukshan Pramoditha 《Convolutional Neural Network (CNN) Architecture Explained in Plain English Using Simple Diagrams》
https://medium.com/towards-data-science/convolutional-neural-network-cnn-architecture-explained-in-plain-english-using-simple-diagrams-e5de17eacc8f
【4】 天在那邊 《卷積神經網絡 (CNN) 基本原理和公式》
https://blog.csdn.net/weipf8/article/details/103917202
【5】 機器學習AI算法工程 《一文搞懂卷積神經網絡(CNN)的原理(超詳細)》
https://cloud.tencent.com/developer/article/2391027
【6】Lianm's Blog 《CNN的數學原理》
https://ming-lian.github.io/2019/05/30/Mathmatic-Principle-in-CNN/
【7】 Lansonli 卷積神經網絡(CNN)原理
https://blog.51cto.com/lansonli/5284033
【8】 tomato 卷積神經網絡(CNN)詳細介紹及其原理詳解
https://www.ebaina.com/articles/140000017254
posted on 2025-02-23 13:10 JasonQiuStar 閱讀(697) 評論(0) 收藏 舉報
浙公網安備 33010602011771號