CNN卷积与数学卷积的关系
常规CNN卷积定义
令 P \bold P P 表示原始图像的一个通道,为 m × n m \times n m×n 大小的二阶张量,令 w \bold w w 表示某一层某一通道的卷积核,为 k × k k \times k k×k 大小的二阶张量(k一般为奇数,令 k = 2 t + 1 k = 2t+1 k=2t+1),令 Q \bold Q Q 表示 P \bold P P 与 w \bold w w 卷积后的图像:
$ {\bold Q} = {\bold w} * {\bold P} $
若不补零(Torch.Conv2D的参数 p a d d i n g = 0 padding = 0 padding=0), Q \bold Q Q 的每个元素可表示如下:
Q i , j = ∑ u = − t t ∑ v = − t t w u v P i + u , j + v , 0 ≤ i < m , 0 ≤ j < n Q_{i,j} = \displaystyle\sum_{u=-t}^t \displaystyle\sum_{v=-t}^t w_{uv} P_{i+u,j+v}\ , \ \ 0 \leq i < m,0 \leq j <n Qi,j=u=−t∑tv=−t∑twuvPi+u,j+v , 0≤i<m,0≤j<n
其中, P i + u , j + v = 0 , i f ( i + u < 0 ) ∣ ( j + v < 0 ) ∣ ( i + u ≥ m ) ∣ ( j + v ≥ n ) P_{i+u,j+v} = 0 , if (i+u<0)|(j+v<0)|(i+u\geq m)|(j+v\geq n) Pi+u,j+v=0,if(i+u<0)∣(j+v<0)∣(i+u≥m)∣(j+v≥n) ,而 Q \bold Q Q 的大小保持 m × n m \times n m×n 。
若完全补零(Torch.Conv2D的参数 p a d d i n g ≥ ( k − 1 ) padding \geq (k-1) padding≥(k−1)),并将CNN卷积的形式逐步向数学靠拢, Q \bold Q Q 的每个元素可表示如下:
Q i , j = ∑ u = − ∞ ∞ ∑ v = − ∞ ∞ w u v P i + u , j + v , − ∞ < i < ∞ , − ∞ < j < ∞ Q_{i,j} = \displaystyle\sum_{u=-\infty}^\infty \displaystyle\sum_{v=-\infty}^\infty w_{uv} P_{i+u,j+v}\ , \ \ -\infty < i < \infty,-\infty < j < \infty Qi,j=u=−∞∑∞v=−∞∑∞wuvPi+u,j+v , −∞<i<∞,−∞<j<∞
其中, P i + u , j + v = 0 , i f ( i + u < 0 ) ∣ ( j + v < 0 ) ∣ ( i + u ≥ m ) ∣ ( j + v ≥ n ) P_{i+u,j+v} = 0 , if (i+u<0)|(j+v<0)|(i+u\geq m)|(j+v\geq n) Pi+u,j+v=0,if(i+u<0)∣(j+v<0)∣(i+u≥m)∣(j+v≥n) ,去除 Q \bold Q Q 外围必定为0元素, Q \bold Q Q 的大小为 ( m + k − 1 ) × ( n + k − 1 ) (m+k-1) \times (n+k-1) (m+k−1)×(n+k−1) 。
数学卷积定义
对CNN卷积有参考意义的是数学上的二维卷积,令 P \bold P P 表示 m × n m \times n m×n 大小的二阶张量,令 w \bold w w 表示为 k × k k \times k k×k 大小的二阶张量,令 Q \bold Q Q 表示 P \bold P P 与 w \bold w w 卷积后的结果:
$ {\bold Q} = {\bold w} * {\bold P} $
Q \bold Q Q 的每个元素可表示如下:
Q i , j = ∑ u = − ∞ ∞ ∑ v = − ∞ ∞ w u v P i − u , j − v , − ∞ < i < ∞ , − ∞ < j < ∞ Q_{i,j} = \displaystyle\sum_{u=-\infty}^\infty \displaystyle\sum_{v=-\infty}^\infty w_{uv} P_{i-u,j-v}\ , \ \ -\infty < i < \infty,-\infty < j < \infty Qi,j=u=−∞∑∞v=−∞∑∞wuvPi−u,j−v , −∞<i<∞,−∞<j<∞
其中, P i − u , j − v = 0 , i f ( i − u < 0 ) ∣ ( j − v < 0 ) ∣ ( i − u ≥ m ) ∣ ( j − v ≥ n ) P_{i-u,j-v} = 0 , if (i-u<0)|(j-v<0)|(i-u\geq m)|(j-v\geq n) Pi−u,j−v=0,if(i−u<0)∣(j−v<0)∣(i−u≥m)∣(j−v≥n) 。
去除 Q \bold Q Q 外围必定为0元素, Q \bold Q Q 的大小为 ( m + k − 1 ) × ( n + k − 1 ) (m+k-1) \times (n+k-1) (m+k−1)×(n+k−1) 。
CNN卷积与数学卷积的差异
CNN卷积与数学卷积两者的公式形式基本一致,差别仅在 P i + u , j + v P_{i+u,j+v} Pi+u,j+v和 P i − u , j − v P_{i-u,j-v} Pi−u,j−v。实际上,CNN卷积在数学上被称为相关函数,两者在定义上的差别仅仅是卷积核是否需要进行上下、左右两次翻转。
此处定义运算符 ⊛ \circledast ⊛ 表示完全补零的CNN卷积,*仍表示数学卷积,再定义上标~表示二阶张量进行上下、左右两次翻转的运算,即定义 $\bold B = \bold A ^ \sim $ 表示 B i , j = A − i . i j B_{i,j}=A_{-i.ij} Bi,j=A−i.ij ,则有如下表示:
A ∗ B ⟺ A ∼ ⊛ B A ⊛ B ⟺ A ∼ ∗ B \begin{aligned} \bold A * \bold B &\iff \bold A^\sim \circledast \bold B \\ \bold A \circledast \bold B &\iff \bold A^\sim * \bold B\end{aligned} A∗BA⊛B⟺A∼⊛B⟺A∼∗B
另外,由数学定义可知,数学卷积满足交换律、结合律、加法分配律:
A ∗ B = B ∗ A ( A ∗ B ) ∗ C = A ∗ ( B ∗ C ) A ∗ C + B ∗ C = ( A + B ) ∗ C \begin{aligned} \bold A * \bold B &= \bold B * \bold A \\ (\bold A * \bold B) * \bold C &= \bold A * (\bold B * \bold C) \\ \bold A * \bold C +\bold B * \bold C &= (\bold A + \bold B) * \bold C \end{aligned} A∗B(A∗B)∗CA∗C+B∗C=B∗A=A∗(B∗C)=(A+B)∗C
可推导得CNN卷积有如下基本性质:
A ⊛ B ⟺ A ∼ ∗ B = B ∗ A ∼ ⟺ B ∼ ⊛ A ∼ \bold A \circledast \bold B \iff \bold A^\sim * \bold B = \bold B * \bold A^\sim \iff \bold B^\sim \circledast \bold A^\sim A⊛B⟺A∼∗B=B∗A∼⟺B∼⊛A∼
( A ⊛ B ) ⊛ C ⟺ ( A ∼ ∗ B ) ∼ ∗ C = A ∗ ( B ∼ ∗ C ) ⟺ A ∼ ⊛ ( B ⊛ C ) (\bold A \circledast \bold B) \circledast \bold C \iff (\bold A^\sim * \bold B)^\sim * \bold C = \bold A * (\bold B^\sim * \bold C) \iff \bold A^\sim \circledast (\bold B \circledast \bold C) (A⊛B)⊛C⟺(A∼∗B)∼∗C=A∗(B∼∗C)⟺A∼⊛(B⊛C)
A ⊛ ( B ⊛ C ) ⟺ A ∼ ∗ ( B ∼ ∗ C ) = ( A ∼ ∗ B ∼ ) ∗ C ⟺ ( A ∼ ⊛ B ) ⊛ C \bold A \circledast (\bold B \circledast \bold C) \iff \bold A^\sim * (\bold B^\sim * \bold C) =( \bold A^\sim * \bold B^\sim) * \bold C \iff ( \bold A^\sim \circledast \bold B) \circledast \bold C A⊛(B⊛C)⟺A∼∗(B∼∗C)=(A∼∗B∼)∗C⟺(A∼⊛B)⊛C
A ⊛ C + B ⊛ C ⟺ A ∼ ∗ C + B ∼ ∗ C = ( A ∼ + B ∼ ) ∗ C ⟺ ( A + B ) ⊛ C \bold A \circledast \bold C +\bold B \circledast \bold C \iff \bold A^\sim * \bold C +\bold B^\sim * \bold C= (\bold A^\sim+\bold B^\sim) * \bold C \iff(\bold A+\bold B) \circledast \bold C A⊛C+B⊛C⟺A∼∗C+B∼∗C=(A∼+B∼)∗C⟺(A+B)⊛C
CNN卷积性质的应用
令 P \bold P P 表示原始图像的一个通道,为 m × n m \times n m×n 大小的二阶张量,令 w \bold w w 表示某一层某一通道的卷积核,为 k × k k \times k k×k 大小的二阶张量(k一般为奇数,令 k = 2 t + 1 k = 2t+1 k=2t+1),令 Q \bold Q Q 表示 P \bold P P 与 w \bold w w 完全补零CNN卷积后的图像:
$ {\bold Q} = {\bold w} \circledast {\bold P} $
若存在卷积核 w α \bold w\alpha wα 和 w β \bold w\beta wβ ,则j完全补零CNN卷积满足如下性质:
w α ⊛ P + w β ⊛ P = ( w α + w β ) ⊛ P \bold w\alpha \circledast \bold P + \bold w\beta \circledast \bold P = (\bold w\alpha+\bold w\beta) \circledast \bold P wα⊛P+wβ⊛P=(wα+wβ)⊛P
w α ⊛ ( w β ⊛ P ) = ( w α ∼ ⊛ w β ) ⊛ P \bold w\alpha \circledast (\bold w\beta \circledast \bold P) = (\bold w\alpha^\sim \circledast \bold w\beta) \circledast \bold P wα⊛(wβ⊛P)=(wα∼⊛wβ)⊛P