首页 > 代码库 > 卷积神经网络(二):卷积神经网络CNN的BP算法

卷积神经网络(二):卷积神经网络CNN的BP算法

该文档参考了:http://www.cnblogs.com/tornadomeet/p/3468450.html

在此表示感谢。

一般而言,多类别神经网络的输出一般采用softmax形式,即输出层的激活函数不采用sigmoid或者tanh函数。那么神经网络的最后一层的输出则为


下面看从pooling层到卷积层的误差如何反向传播,和多层神经网络一样,可以通过层与层间的连接实现误差传播,只是计算公式变为,


其中的系数根据pooling的方法赋值,如果是mean-pooling则把pooling层的误差平均到其4个输入上,如果是max-pooling则把误差全部反向传播到其输入上。

接下来看如何计算卷积层反向传播到pooling的误差,pooling层中的1个feature map与M个卷积层的feature map的相连接,那么该pooling层的误差项的计算公式如下,


上述公式中*号表示卷积操作,即将核函数K旋转180度后再与误差项做相关操作,然后再求和。

最后研究在求得各层的误差项后如何计算与卷积层相连接的核函数的偏导数,计算公式如下,


即将卷积层的误差项旋转180度后与其输入层做相关操作就可以得到核函数的偏导数。

而偏置项的偏导数则由误差项内所有元素相加得到。


卷积神经网络(二):卷积神经网络CNN的BP算法