设卷积之前,过程如下:
则,1,2,3,4只是标号,不是数值
则有:
C1 = P1K4 + P2K3 + P4K2 + P5K1
C2 = P2K4 + P3K3 + P5K2 + P6K1
C3 = P4K4 + P5K3 + P7K2 + P8K1
C4 = P5K4 + P6K3 + P8K2 + P9K1
则下面根据这个前向计算的步骤来分解出反向传播的步骤:
首先要确定误差传播的目的地,从deltaC到deltaK(上图有些问题,知道方向即可),所以先从deltaK1开始分析:
deltaK1 = deltaC1 * P5 + deltaC2 * P6 + deltaC3 * P8 + deltaC4 * P9.
deltaK2 = deltaC1 * P4 + deltaC2 * P5 + deltaC3 * P7 + deltaC4 * P8.
deltaK3 = deltaC1 * P2 + deltaC2 * P3 + deltaC3 * P5 + deltaC4 * P6.
deltaK4 = deltaC1 * P1 + deltaC2 * P2 + deltaC3 * P4 + deltaC4 * P5.
公式可用以下过程来实现,首先把deltaC矩阵旋转180度,然后和P矩阵进行卷积:
注意,中间的*为卷积符号,也就是说需要把这个矩阵旋转180度后逐元素和P矩阵相乘,得到:
即:
,所以还需要再旋转180度得到正确结果,因此公式为:
还有一种写法,就是把P矩阵旋转180度与deltaC矩阵卷积,结果相同,证明略。