一、卷積神經網絡概述

卷積神經網絡通過濾波器(或稱核)從圖像中提取特徵,再將這些特徵傳入神經網絡進行預測或輸出。在深入探討卷積神經網絡之前,我們先詳細瞭解圖像的工作原理。

二、圖像的本質

(一)像素與矩陣表示

圖像由微小的像素構成,如同宇宙由原子組成。每個像素是一個包含數字的單元,類似矩陣中的單元格。本質上,圖像是具有確定行數和列數的矩陣,矩陣中的每個單元(像素)的數值範圍為0到255。例如,當我們看到圖像尺寸為1920×1080時,意味着該圖像由1920列×1080行的矩陣組成,其中每個像素的數值均在0到255之間。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_池化

圖1:計算機視角下的圖像矩陣示意圖

(二)圖像的色彩構成

屏幕上所有圖像均由紅、綠、藍三種顏色混合而成,通過不同比例的組合可產生白光或圖像中的各種色彩。

如前所述,圖像由矩陣構成,像素(矩陣單元)的數值範圍為0到255,其中0代表最低顏色強度(黑色),255代表最高顏色強度。每個彩色圖像包含三個尺寸相同的矩陣,分別對應紅色、綠色和藍色通道,每個通道矩陣中單元格的數值(0-255)表示該顏色的強度。當三個矩陣中對應單元格的數值均為255時,圖像呈現白色;均為0時,呈現黑色。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_池化_02

圖2:圖像通道表示示意圖

這三個矩陣如同透明紙張疊加,每個像素內的“小燈泡”分別發出對應顏色的光。

按回車鍵或點擊查看完整尺寸圖像

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積_03

圖3:圖像三顏色通道疊加示意圖

利用調整矩陣中的數值可產生不同顏色:若將藍色和綠色矩陣的所有像素值設為0,紅色矩陣所有像素值設為255,圖像將完全呈現紅色;同理可得到純綠色或純藍色圖像。若在各顏色矩陣中對部分像素值進行隨機調整,對應區域會呈現棕色、黃色、橙色或青色等混合色。

三、卷積神經網絡的工作原理

(一)卷積的基本概念

類比破譯古代卷軸或手稿時,人們會用放大鏡仔細觀察並記錄信息,卷積神經網絡的工作機制與此相似。它通過一個類似放大鏡的矩陣(包含數字)在圖像上逐像素滑動,將矩陣內數字與圖像對應像素的數值相乘後求和,從而提取圖像信息。這個小矩陣被稱為濾波器或卷積核。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_池化_04

圖4:圖像矩陣與卷積核(濾波器)示意圖

(二)圖像預處理

在卷積過程開始前,需進行預處理操作。由於圖像各顏色通道矩陣的像素值範圍為0-255,該範圍對機器學習模型而言過大,可能導致訓練速度減慢及梯度爆炸訓練卷積神經網絡的關鍵預處理環節。就是等問題。因此,需將所有像素值縮放到0-1之間,具體方法是將每個像素值除以255,這一步驟

按回車鍵或點擊查看完整尺寸圖像

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_池化_05

圖5:圖像預處理步驟(像素值除以255縮放至0-1範圍)

此預處理步驟需對圖像的3個通道均執行。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積_06

圖6:預處理後的圖像通道示意圖

四、基於卷積神經網絡的圖像分類流程

本文以數字“1”和數字“2”的黑白圖像分類為例,詳細説明卷積神經網絡的工作步驟:

步驟總覽

  1. 預處理:將所有像素值除以255,縮放至0-1範圍。
  2. 卷積運算:圖像與濾波器(卷積核)進行滑動卷積,逐點相乘並求和,結合偏置項得到中間結果。
  3. 特徵圖生成:各顏色通道的卷積結果相加,形成單一特徵圖。
  4. 最大池化:從特徵圖的特定區域提取最大值,減小特徵圖維度。
  5. 展平處理:將池化結果轉換為一維數組。
  6. 分類預測:將一維數組傳入前饋神經網絡,完成最終分類。

(一)預處理階段

首先對圖像的三個通道執行預處理,將像素值除以255,使其落在0-1範圍內。為簡化説明,假設處理對象為黑白圖像:255(白色)除以255得1,0(黑色)除以255得0。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積_07

圖7:包含數字“1”的6×6像素黑白圖像

(二)卷積過程

1. 特徵圖的生成

從預處理輸入圖像中提取特徵形成的單一矩陣,類似信息記錄簿。提取特徵時,需使用隨機濾波器(含隨機數的小型矩陣)在輸入圖像上滑動卷積。每個輸入通道對應獨立的濾波器,計算過程為卷積核與圖像重疊像素的逐點相乘。就是特徵圖

例如,3×3卷積核在6×6圖像上執行時,首先覆蓋圖像左上角3×3區域,逐元素相乘後累加,再與卷積核關聯的偏置項(初始為隨機數,用於增強模型靈活性和多樣性)相加,得到該區域的輸出值。

按回車鍵或點擊查看完整尺寸圖片

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積_08

圖8:輸入圖像與濾波器(卷積核)的卷積計算示意圖

每個通道均重複上述流程,生成對應區域的輸出值。例如,紅色通道可能輸出3,綠色通道輸出-1,藍色通道輸出2。

按回車鍵或點擊查看完整尺寸圖片

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積核_09

圖9:卷積核與輸入圖像通道的矩陣計算示意圖

偏置項是可訓練的參數,依據偏移激活值幫助模型更好地擬合數據。例如,紅色通道卷積核的偏置項為-2,會與該通道首個輸出值(2)相加。

按回車鍵或點擊查看完整尺寸圖片

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積核_10

下圖展示三個通道對應的卷積核與偏置項:

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積核_11

圖10:三通道對應的卷積核與偏置項

2. 卷積計算示例

以圖像左上角3×3區域為例,各通道計算過程如下:

  • 紅色通道
    [
    (0×0)+(0×1)+(0×1)+(0×0)+(0×0)+(1×1)+(0×0)+(1×1)+(0×0) = 2
    ]
    疊加偏置項(-2)後:(2 + (-2) = 0)
  • 綠色通道
    [
    (0×1)+(0×0)+(0×0)+(0×1)+(0×1)+(1×0)+(0×1)+(0×1)+(0×0) = 0
    ]
    疊加偏置項(-1)後:(0 + (-1) = -1)
  • 藍色通道
    [
    (0×0)+(0×0)+(0×1)+(0×1)+(0×0)+(1×0)+(0×0)+(1×1)+(0×1) = 1
    ]
    疊加偏置項(0.9)後:(1 + 0.9 = 1.9)

特徵圖為單一矩陣,需將各通道對應區域的輸出值相加。上述三通道左上角區域的輸出值之和為:(0 + (-1) + 1.9 = 0.9),該值作為特徵圖左上角的像素值。

特徵圖的尺寸由卷積核在圖像上的移動次數決定。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積核_12

圖11:卷積核移動次數與特徵圖映射關係示意圖

3. 卷積核的移動與特徵圖生成

卷積核的移動距離稱為步長。步長為1時,卷積核每次向右移動1列;步長為2時,每次移動2列。當卷積核到達圖像邊緣後,將按步長向下移動,重複計算過程。

對於6×6圖像和3×3卷積核,卷積核橫向可移動4次,生成特徵圖的一行4個數值;縱向移動4次後,最終生成4×4的特徵圖。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積核_13

圖12:卷積核移動路徑示意圖

重複上述過程,直至卷積核覆蓋圖像所有區域,生成最終特徵圖:

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積_14

圖13:卷積後的最終特徵圖

4. ReLU激活函數處理

特徵圖生成後,需通過ReLU激活函數處理:將所有負像素值轉為0,保留正像素值。為簡化説明,此處將所有正像素值轉換為1(注:此步驟不屬於卷積過程),最終得到僅含0和1的特徵圖。

按回車鍵或點擊查看全尺寸圖片

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積_15

圖14:ReLU激活函數處理後的特徵圖

(三)最大池化步驟

最大池化通常緊跟卷積層,其作用是從特徵圖的特定區域提取最大值,生成新矩陣以減小特徵圖的空間維度。與卷積核類似,最大池化層按固定尺寸在特徵圖上滑動,但不含數值。

以2×2最大池化層為例,其初始放置於4×4特徵圖的左上角,提取該2×2區域的最大值。池化層通常以自身尺寸為步長移動(也可自定義步長),即每次向右移動2列,到達邊緣後向下移動2行,最終生成2×2矩陣。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_池化_16

圖15:最大池化層提取特徵圖區域最大值示意圖

(四)展平處理

最大池化的輸出為二維矩陣(如2×2),而前饋神經網絡僅接受一維數組。因此,需將二維矩陣展平為一維數組。

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積核_17

圖16:最大池化層展平為一維數組示意圖

(五)前饋網絡與預測

前饋神經網絡包含權重和偏置。一維數組中的每個數值憑藉權重連接到網絡層,權重與對應數值相乘後求和,疊加偏置項,再通過激活函數(如ReLU、SoftMax、Sigmoid)處理。

  • Sigmoid函數將輸出值映射到0-1範圍,適用於二分類問題。
  • SoftMax函數適用於多分類問題,可返回多個類別的概率分佈。

按回車鍵或點擊以全尺寸查看圖片

計算機視覺:卷積神經網絡(CNN)圖像分類從像素與色彩通道基礎到特徵提取、池化及預測 - 指南_卷積核_18

圖17:前饋神經網絡預測示意圖

輸出層的兩個神經元分別對應數字“1”和數字“2”兩個類別,輸出值為1或0,代表模型對圖像類別的預測結果。

(六)模型訓練要點

對含數字“2”的圖像重複上述流程時,需保持權重、偏置和卷積核參數不變。訓練過程中,若模型預測錯誤,將調整所有參數(權重、偏置、卷積核)直至預測正確,這是模型的學習過程。

五、總結

卷積神經網絡的圖像分類流程可概括為:

  1. 預處理:像素值除以255,縮放至0-1範圍。
  2. 卷積提取特徵:通過濾波器生成特徵圖,結合偏置項調整。
  3. 激活函數處理:ReLU函數將特徵圖負值轉為0,保留正值。
  4. 最大池化:提取區域最大值,減小特徵圖維度。
  5. 展平:將池化結果轉換為一維數組。
  6. 分類預測:憑藉前饋神經網絡輸出圖像類別。