机器学习方法篇(8)------卷积神经网络公式推导

来源:互联网 发布:数据埋点 编辑:程序博客网 时间:2024/04/27 23:56

● 每周一言

努力不一定成功,不努力一定不会成功。

导语

前两篇已推完RNN和LSTM的公式,本篇讲讲卷积神经网络的公式推导。粗一想,或许有人会认为CNN的网络结构相当于DNN的每一层由一维变成二维,而残差的传递只是增加了一个平行累积的过程。但是,在卷积层的残差反向传播中,会出现卷积核180度翻转现象。那么,这个卷积核翻转是什么意思?CNN的公式推导究竟是怎样的呢?

卷积神经网络

卷积神经网络CNN(Convolutional Neural Network)一般由输入层、卷积层、池化层、softmax层和输出层组成,其中卷积层、池化层以及softmax层,在一个CNN结构中可以配置多个。除开池化层不带权重矩阵,其它层都有自己的权重矩阵。

输入层、输出层以及softmax层权重矩阵的公式推导,与普通神经网络的公式推导一致,由于这类公式在前两篇文章已经演算过,本文不再赘述。本文重点推导卷积层的残差传递,并解释卷积核180度翻转的现象。

对于一个卷积层,前面有可能连输入层,也有可能连一个池化层或者另一个卷积层,我们不妨将这些层统称为“本层输入”,如下所示:

fig1

如上图,x为卷积层的输入,ω为卷积层的权重矩阵,y为卷积层的输出。写出该卷积层的前向传播公式如下:
fig2

不难看出,卷积操作其实就是方形卷积核在本层输入数据上滑动,对应位置相乘然后全部相加作为输出。依据上式使用反向传播公式,我们首先可以推出卷积核ω权重矩阵的梯度,如下图所示:
fig3

然后,我们可以写出传递至“本层输入”的残差公式:
fig4

仔细研究上面等式右边的式子,会发现一个规律,这个规律正好可以用下面的“卷积操作”推出来:
fig5

如上图,用输出层残差L’代替原先的输出层并向四周扩展一步变为4×4大小,然后用翻转180度后的卷积核对其进行卷积操作,会发现得到的恰好是前面的反向传播梯度公式。这便是为什么计算卷积层传递的残差时,卷积核会翻转180度的缘由。

以上便是卷积神经网络CNN的讲解,敬请期待下节内容。对本文推导有任何问题和疑问,欢迎留言交流。

结语

感谢各位的耐心阅读,后续文章于每周日奉上,敬请期待。欢迎大家关注小斗公众号 对半独白

face

原创粉丝点击