卷积BP初探

卷积BP初探

再看BP

假设A, B, C都是矩阵且 A=BC, 这里是矩阵乘法,那么有\(a_{ij} = \sum_k b_{ik} c_{kj}\) ,若有一标量函数 f(A),记\((\frac{df}{dA})_{ij} = \frac{df}{da_{ij}}\)

若要求\(\frac{df}{dB}\),则有

\[(\frac{df}{dB})_{ik} = \frac{df}{db_{ik}} = \sum_j\frac{df}{da_{ij}}\frac{da_{ij}}{db_{ik}} = \sum_j\frac{df}{da_{ij}} c_{kj} = \sum_j\frac{df}{da_{ij}} c'_{jk} \]

其中 \(c_{kj}=c'_{jk}\),可以知道C‘矩阵是C矩阵的转置,所以有\(\frac{df}{dB}=\frac{df}{dA}C^T\),类似地,有\(\frac{df}{dC}=B^T\frac{df}{dA}\)

卷积与反卷积

这里推荐一个卷积和反卷积的图示,里面可以直观的看到什么是卷积,什么是反卷积,结合图示,我们希望写出卷积和反卷积的数学表达。

卷积:输入是X,卷积核是W,卷积核的高和宽分别是h和w,输出是Y,stride是s,padding是p,则有

\[y_{ij} = \sum_{a,b}w_{ab}x_{i*s-p+a,j*s-p+b}\]

如果x的下标不存在的话,则取其值为0。

反卷积:输入是X,卷积核是W,卷积核的高和宽分别是h和w,输出是Y,stride是s,padding是p,则有

\[y_{ij}=\sum_{a,b}w_{ab}x_{\frac{1}{s}[i-(w-1)+a],\frac{1}{s}[j-(h-1)+b]}\]

同样的,如果x的下标不存在的话,则取其值为0。

卷积的BP

对上述的卷积,我们引入一个对称的卷积核W',满足\(w'_{w-1-a,h-1-b}=w_{a,b}\)我们有

\[\frac{dl}{dx_{ij}} = \sum_{a,b}w_{a,b}\frac{dl}{dy_{\frac{1}{s}[i-a+p],\frac{1}{s}[j-b+p]}} =\sum_{a,b}w'_{a,b}\frac{dl}{dy_{\frac{1}{s}[i+p-(w-1)+a],\frac{1}{s}[j+p-(h-1)+b]}} \]

对比之前的反卷积公式,可以看出卷积的BP是个反卷积的过程。