本文章由公号【开发小鸽】发布!欢迎关注!!!
老规矩–妹妹镇楼:
![](https://i-blog.csdnimg.cn/blog_migrate/eac8cddaf63e8708f2618fc814be45dd.jpeg)
一. 卷积层的前向传播和反向传播
(一)卷积层的前向传播
前向传播公式:
wx + b = out
w是滤波器的参数,x是前一层的输入,b是偏置项,out是每一层的输出
从x是图片开始
输入:
x [图片的编号,图片的通道号,图片的高,图片的宽 ]
滤波器:
w[滤波器的编号,滤波器的深度(与x的深度相同),滤波器的高,滤波器的宽]
每一个滤波器产生一个特征图,这个特征图是由该滤波器的每一层和每一层输入计算内积的和而产生的。
(二)卷积层的反向传播
wx + b = out
反向传播就是为了更新w的值,那么要更新w的值,就要知道w更新的方向梯度,即dw。
dout是上一层传下来的梯度,要从上一层传下来的梯度dout这样,得到dw,那么就要乘以out对w自身的梯度,这样才能将dout转变为dw。
从公式
wx + b = out
中可以看出,out对w求偏导,则dout/dw = x
则
dw = dout * x
二. 池化层的前向传播反向传播
(一)Max pooling
前向传播:求所有值的最大值
反向传播:最大值不变,其他值为0
如:
前向:[1, 3; 2, 2] -> [3]
反向:[3] -> [0, 3; 0 0]
(二)Mean pooling
前向传播:求所有值的平均值
反向传播:每一个值为0.5
如:
前向: [1,3;2,2] -> [2]
反向: [2] -> [0.5,0.5,0.5,0.5]