來源:
卷積神經網絡(CNN)到底卷了啥?8分鐘帶你快速了解!_嗶哩嗶哩_bilibili卷積神經網絡(CNN)到底卷了啥?8分鐘帶你快速了解!共計2條視頻,包括:卷積神經網絡(CNN)到底卷了啥?、什么是循環神經網絡?RNN的變體LSTM和GRU的運作原理又是怎樣的?(人工智能丨深度學習丨機器學習丨自然語言處理)等,UP主更多精彩視頻,請關注UP賬號。https://www.bilibili.com/video/BV1MsrmY4Edi/?spm_id_from=333.337.search-card.all.click&vd_source=87f8c6f71fc5a150d17b858a02bf33d9
整體流程:
圖片輸入(RGB) ↓
卷積層(提取局部特征)↓
池化層(壓縮特征圖)↓
重復卷積+池化(提取更高階特征)↓
Flatten(扁平化)↓
全連接層(分類邏輯推理)↓
輸出層(得到分類結果)
一、前置了解
卷積核/濾波器/滑動窗口
卷積核本質上是一個加權矩陣,一般我們用3X3尺寸的卷積核,每個值是“權重”
卷積核的操作——卷積:
1.卷積核從圖像的左上角開始,逐步滑動(按步長stride)遍歷整個圖像。
2.每次滑動,卷積核和圖像的某個區域(稱為感受野)進行逐元素相乘并求和,結果成為輸出圖像的新像素值。
3.將每次計算的結果拼接起來,得到新的矩陣,稱為特征圖或輸出圖。
在圖像處理中,卷積就是用一個小矩陣(卷積核)在圖像上滑動,對局部區域進行加權求和,提取特征。
卷積本身是一種線性操作
隨著特征信息的提取程度,會損失空間信息(6X6的原始圖片經過卷積之后會稱提取為4X4的特征圖片)
Padding(填充)
我們會損失邊緣信息,我們就引入了padding方法:
如果padding=1,我們就在原始圖像上填充一圈0
這樣能保持輸出圖尺寸與輸入圖相同(如果 stride=1)
二、步驟
第一步:先對原始圖像padding,再卷積——提取特征圖片
- 對輸入圖像先進行 padding(通常填充 0);
- 然后用卷積核滑動提取特征圖。
第二步:最大池化(Max Pooling)——提取精華特征
目的:將圖片數據進一步壓縮,僅反應特征圖中最突出的特點
步驟:將6*6的特征圖用2*2的網格分割,放入池化后的3*3網絡中,保留最精華的特征
第三步:扁平化處理
將上面兩個卷積核得到池化后的特征圖像素疊加,形成一維的數據條
本質是將二維張量展平,使其能夠輸入到全連接層中。
第四步:輸入全連接層中
概念:每個神經元與前一層的所有神經元連接;
本質:線性變換 + 激活函數:
output=Activation(Wx+b)
W
是特征權重矩陣;x
是輸入的特征向量;b
是偏差項。
偏差項 b
的引入可以增加模型的靈活性,使得神經元在所有輸入為零的情況下仍能有非零的輸出,從而幫助模型更好地擬合數據。它相當于在激活函數前添加一個“偏移量”,確保模型能夠更精準地捕捉數據的非線性規律。
通過全連接層進行邏輯推理與特征整合。
在全連接層的輸出函數常見的是ReLU
- 概率大于0,就取本身
- 概率小于0,就是0
這樣可以使每層網絡更有針對性的學習某個特征,使學習效率提高
第五步:輸出
最后一層是輸出層,輸出分類結果
輸出層的激活函數:
- Sigmoid:二分類,把一個值壓縮到0-1,0就是不是,1就是是
- softmax:多分類,所有類別的概率加起來是1
三、激活函數為什么叫激活?
“激活函數”中的“激活”這個詞,其實是借用了神經生物學中的概念。
在生物神經網絡中,神經元接收到足夠強的刺激后才會被“激活”,進而傳遞信號。這種“激活”就像是觸發機制,不是任意輸入都會有輸出,只有當輸入超過某個閾值,神經元才會興奮、發出脈沖。
類比到人工神經網絡中:
- 神經元計算的結果需要通過某種“觸發機制”才能決定是否輸出,以及輸出多少;
- 這個“觸發機制”就是激活函數(Activation Function),它決定神經元是否被“激活”并輸出信號。
所以叫“激活函數”,就是表示:
它控制著神經元是否被激活、輸出信號,就像大腦中的神經元一樣。
比如:
ReLU(x) = max(0, x)
表示:只有輸入大于 0 時才被激活,才會有輸出;Sigmoid(x)
表示:輸入越大,激活越強,輸出越接近 1。
簡而言之:
“激活函數”= 模擬神經元被激活的過程,決定是否傳遞信號。
四、卷積層VS全連接層
1.作用不同
卷積層 | 全連接層 |
負責提取圖像的局部特征(如邊緣、角點、紋理等) | 負責進行分類/推理,整合前面提取的特征,得出最終判斷 |
注重空間結構和位置關系 | 注重抽象特征和邏輯關系,最終輸出預測結果 |
2.連接方式不同
卷積層 | 全連接層 |
每個神經元只連接輸入圖像的局部區域(感受野) | 每個神經元與上一層的所有神經元相連 |
局部連接 + 參數共享(卷積核共享) | 全連接,不共享參數 |
3.參數量不同
卷積層 | 全連接層 |
參數量較少(卷積核小,參數共享) | 參數量很大(連接數 = 輸入數 × 輸出數) |
適合處理高維圖像數據 | 多用于最后幾層,輸入是扁平化后的特征向量 |
4.輸入格式不同
卷積層 | 全連接層 |
輸入是二維(或三維)圖像張量 | 輸入是一維向量(需經過 Flatten) |
保留空間結構(寬×高×通道) | 不保留空間結構,只關心整體特征表達 |
5.舉個例子
- 卷積層就像用放大鏡觀察圖像的某一小塊,并提取它的紋理;
- 全連接層就像把所有小塊信息組合起來,做一個最終判斷,比如“這是一只貓”。
6.總結一句話:
卷積層關注的是“哪里有什么特征”,而全連接層關注的是“這些特征說明這是什么”。