神经网络CNN的前向传播和后向传播

这里也来总结一下卷积层的前向和后向传播。

前向传播

假设第 l 层是卷积层, 卷积层前向的公式可表示如下:

a^l = \sigma(Z^l) = \sigma(a^{l-1} * w^l + b^l )

其中,上标 l 代表层数,\sigma 代表激活函数,* 代表卷积运算,w^l 是 l 层的卷积核,b^l 是 l 层的偏置, a^l 则是卷积层的输出,a^{l-1}是卷积层的输入。

假设卷积层输入的图像宽度和高度分别为:W^{l-1} , H^{l-1}, 通道数为C^{l-1}, 则卷积层输入a^{l-1}的维度为:

W^{l-1} * H^{l-1} * C^{l-1}

如果卷积核的大小表示为 : f_w * f_h, 卷积核的个数表示为 K, 则卷积层的weight w^l的维度为:

f_w * f_h * C^{l-1} * K

假设卷积层输出的图像宽度和高度分别为:W^l , H^l, 则卷积层的输出a^l的维度为:

W^l * H^l * K

偏置b^l 是一维的向量, 大小为K.

后向传播

如果l层是卷积层,已知卷积层的梯度\delta^l, 则前一层l-1层的梯度公式如下:

\delta^{l-1} = \delta^l * rot180(w^l)\sigma'(Z^{l-1})
其中, \delta^l 的维度为 : W^l * H^l * K.
\delta^{l-1} 的维度为 : W^{l-1} * H^{l-1} * C^{l-1}.

卷积层输入的偏导为:
\partial a^{l-1} = \delta^l * rot180(w^l)
\partial a^{l-1} 的维度为 : W^{l-1} * H^{l-1} * C^{l-1}.

卷积层权重的偏导为:
\partial w^l = a^{l-1} * \delta^l
\partial w^l 的维度为: f_w * f_h * C^{l-1} * K

卷积层偏置的偏导为:为一维向量, 大小为K
\partial b^l = \Sigma_{u,v} \delta^l

偏置\partial b^l不是简单等同于\delta^l, 需要对\delta^lW^l * H^l维度上求和。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容