本文共 1494 字,大约阅读时间需要 4 分钟。
CNN反向传播计算过程
2、CNN卷积层反向传播
例子:输入是一个4*4 的image,经过两个2*2的卷积核进行卷积运算后,变成两个3*3的feature_map
以卷积核filter1为例 (stride = 1 ):
计算第一个卷积层神经元o11的输入NetO11和输出Out011:
Neto11=conv(input,filter)
=i11×h11+i12×h12+i21×h21+i22×h22
=1×1+0×(−1)+1×1+1×(−1)=1
Outo11=activators(neto11)=max(0,neto11)=1
示例:
同样的方法,计算所有神经元的输入和输出:(此处使用Relu激活函数)
|
neto11=i11×h11+i12×h12+i21×h21+i22×h22 neto12=i12×h11+i13×h12+i22×h21+i23×h22 neto13=i13×h11+i14×h12+i23×h21+i24×h22 neto21=i21×h11+i22×h12+i31×h21+i32×h22 neto22=i22×h11+i23×h12+i32×h21+i33×h22 neto23=i23×h11+i24×h12+i33×h21+i34×h22 neto31=i31×h11+i32×h12+i41×h21+i42×h22 neto32=i32×h11+i33×h12+i42×h21+i43×h22 neto33=i33×h11+i34×h12+i43×h21+i44×h22 |
计算池化层的输入和输出:
netm11=max(o11,o12,o21,o22)=1
outm11=netm11=1
3、数学计算过程
(1)(链式求导)
首先计算卷积的上一层的第一个元素i11的误差项δ11:
然后对输入元素i(i,j)求偏导:
同样的方法计算其他元素对误差的偏导。
(2)观察一下上面几个式子的规律,归纳一下,可以得到如下表达式:
图中的卷积核进行了180°翻转,与这一层的误差敏感项矩阵Delta( i,j ),
周围补零后的矩阵做卷积运算后,就可以得到∂E/∂i11 :
权重的梯度:
偏置项的梯度:
根据梯度即可修改权重。
二、CNN可视化
CNN 可视化:滤波器
深度卷积核检测图像更高层次的特征
CNN的应用
计算机视觉:人脸识别、无人超市、自动驾驶、医学影像诊断
转载地址:http://hffr.baihongyu.com/