SL
SLVPVISUAL LEARNING PLATFORM
CONVOLUTIONAL NEURAL NETWORK · INTERACTIVE LAB
CNN 卷積神經網路視覺化互動平台
從 Kernel 滑動、Feature Map、ReLU 與 Pooling,到基礎 Backprop,逐步看懂 CNN 如何處理空間特徵。
INPUT5 × 5editable matrix
KERNEL3 × 3single filter
CONVENTIONCross-correlationkernel not flipped
CNN Conv2D convention本平台採現代深度學習框架常用的 cross-correlation:Kernel 不翻轉。雖慣例稱 convolution,但此處數學定義明確以 cross-correlation 計算。
CNN PIPELINE
從 Input 到 Pooling
目前 receptive field 會同步高亮在 Input。
INPUT5×5
→KERNEL3×3
→FEATURE MAP3 × 3
→ACTIVATIONReLU
→POOLINGMaxPool 2×2
OUTPUT SIZEHout = ⌊(H + 2P − K) / S⌋ + 1—
Pre-activation Z
After Activation
Pooling Output
KERNEL SLIDING
一個 Feature Map cell 到底怎麼算?
每一步只計算一個 receptive field;可用箭頭逐格滑動。
1 / 9
目前位置Feature Map[1,1]
Input Patch
×
Kernel
→
Element-wise Products
STEP-BY-STEP SUM—Σ products = — = z
為什麼這不是 kernel 翻轉?因為 CNN 的 Conv2D 通常直接計算 input patch 與 kernel 同位置乘積後加總,也就是 cross-correlation。
FEATURE MAP · RECEPTIVE FIELD
Feature Map 如何對應回 Input?
點擊任一 Feature Map cell,Input 會高亮它實際使用的 receptive field。
Feature Map Z
After ReLU
MaxPool 2×2
SELECTED CELLFeature Map[1,1]
←USES3×3 receptive field
←INPUThighlighted cells
BACKPROP · SELECTED OUTPUT CELL
從單一輸出 Cell 回推 Kernel Gradient
第一版使用「目前選取的單一 activated feature cell」與 scalar target 定義局部 Loss:L=(a−y)²,讓 Chain Rule 可以完整逐格驗算。
1 · FORWARDz = Σ(Xpatch ⊙ K)—
→2 · ACTIVATIONa = f(z)—
→3 · LOSSL=(a−y)²—
4 · LOSS GRADIENT∂L/∂a = 2(a−y)—
→5 · ACTIVATION GRADIENT∂a/∂z=f′(z)—
→6 · CHAIN RULE∂L/∂z=(∂L/∂a)(∂a/∂z)—
Current Input Patch
Kernel Gradient
—
Updated Kernel Preview
—
完整局部公式
∂L/∂K[u,v] = ∂L/∂a · ∂a/∂z · ∂z/∂K[u,v] = ∂L/∂z · Xpatch[u,v]因此每一個 kernel element 的梯度,等於目前輸出位置的 upstream gradient 乘上對應 patch 值。