卷積神經網路 (CNN)

專門處理網格結構資料的神經網路,特別適合影像處理

概述

卷積神經網路(Convolutional Neural Network,CNN)是一種專門設計用於處理具有網格結構資料的神經網路,特別適合處理影像資料。CNN 在電腦視覺領域取得了巨大成功,從影像分類、物體偵測到語義分割,幾乎統治了所有視覺任務。CNN 的核心思想是利用卷積運算來自動學習空間層次化的特徵。

核心概念

傳統全連接層處理影像時參數過多且忽略空間結構。CNN 通過三個關鍵設計解決這些問題:

CNN 對平移、旋轉、尺度變化具有一定的容忍度。

卷積運算

卷積是一種數學運算,在影像處理中稱為「濾波」。卷積核(濾波器)在輸入影像上滑動,在每個位置計算卷積核與局部區域的點積,產生新的特徵圖。多個卷積核可以提取多種不同的特徵(邊緣、紋理、形狀等)。

def conv2d(image, kernel): h, w = image.shape kh, kw = kernel.shape oh, ow = h - kh + 1, w - kw + 1 output = np.zeros((oh, ow)) for i in range(oh): for j in range(ow): output[i, j] = np.sum(image[i:i+kh, j:j+kw] * kernel) return output

經典 CNN 架構

本課程範例

相關連結