卷积神经网络(7)卷积神经网络反向传播原理

在实际写代码的时候,x一般是四维的,

x[编号n,通道c,高h,宽w]

编号是第几个batch的意思,通道一般是RGB其中一个,

下图就是只有一个卷积核的时候,用wx+b得到三张特征图,

跟上一篇讲的一样,这就是其前向传播

然后,其还要进行反向传播,如下图

一次卷积:

out=xw+b

我们需要反向传播更新w

我们算这个dw等于    上一层传下来的梯度dout  (可以是softmax或者fc等等等等)乘以自身的梯度x

// out=xw+b对w求偏导  右边就等于x

故 dw=dout*x          //dw大小与w相同

前向传播就是A*B=C

反向传播就是A=B*C,A就是我们要求的dw

C就是dout[0,0,0]

B就是卷积层中的那个圈

C*B就等于A中的左上角的值,

类似前向传播相乘后,可以得到整个A的值,也就是R通道的dw

其中紫的的:3,:3是省略了0

就是0:3,0:3的意思,就是代表B的意思

以上就是反向传播中的卷积操作

反向传播中的pooling如下图所示

上图左边分别是  mean 和max的前向和反向的例子

猜你喜欢

转载自blog.csdn.net/weixin_41036461/article/details/88668920
今日推荐