註:本文同步更新在Notion!(數學公式會比較好閱讀)
在卷積神經網路中,卷積層通過將卷積核(kernel)應用於輸入數據,提取局部特徵。這個操作的數學形式類似於信號處理中的卷積積分,但在 CNN 中,我們通常使用離散的卷積和(convolution sum)。
卷積層是 CNN 的核心,它將輸入數據 X 通過卷積核 W 進行卷積操作,生成特徵圖 Y。卷積層的數值運算特點在於:
卷積層的輸出通常會經過非線性激活函數,例如ReLU(Rectified Linear Unit)。
ReLU 的作用是將卷積層的輸出進行非線性映射,保留正值,抑制負值,這使得網絡能夠學習更為複雜的非線性特徵。
池化層的作用是對卷積層的輸出進行降維,從而減少數據的尺寸和計算量。最常見的池化操作是最大池化(Max Pooling),它取輸入數據局部區域中的最大值。
卷積運算和大規模矩陣計算涉及到大量的數值運算,因此,CNN 的效率優化是主要目的。優化方法包括:
數值運算中還涉及到穩定性的問題,特別是在深層網路中,梯度反向傳播過程可能導致梯度消失(vanishing gradient)。當網路的層數增多,梯度會隨著層數的增加指數級減少,這使得前面層的參數幾乎無法更新,從而影響網路的學習能力。
解決方法:
卷積神經網路中的數值運算是模型計算的基礎,主要包括卷積運算、激活函數和池化操作。為了提升計算效率,可以使用矩陣乘法優化、GPU 加速等技術來應對大規模數據運算的挑戰。此外,數值穩定性問題,如梯度消失,應通過適當的初始化和激活函數設計來解決。