前言
在深度学习中的参数梯度推导(二)中,我们总结了经典而基础的DNN的前向和反向传播。在本篇(上篇),我们将介绍另一经典的神经网络CNN的前向传播,并在下篇中介绍推导其反向传播的相关公式。
注意:本文默认读者已具备深度学习上的基本知识
3.1
CNN的前传
CNN大致的结构如下,包括输出层,若干的卷积层+ReLU激活函数,若干的池化层,DNN全连接层,以及最后的用Softmax激活函数的输出层。这里我们用一个彩色的汽车样本的图像识别再从感官上回顾下CNN的结构。图中的CONV即为卷积层,POOL即为池化层,而FC即为DNN全连接层,包括了我们上面最后的用Softmax激活函数的输出层。
从上图可以看出,要理顺CNN的前向传播算法,重点是输入层的前向传播,卷积层的前向传播以及池化层的前向传播。而DNN全连接层和用Softmax激活函数的输出层的前向传播算法我们在讲DNN时已经讲到了。
3.1.1 CNN输入层前向传播到卷积层
输入层的前向传播是CNN前向传播算法的第一步。一般输入层的下一层都是卷积层,因此我们标题是输入层前向传播到卷积层。
我们这里还是以图像识别为例。
先考虑最简单的,样本都是二维的黑白图片。这样输入层X就是一个矩阵,矩阵的值等于图片的各个像素位置的值。这时和卷积层相连的卷积核W就也是矩阵。
如果样本都是有RGB的彩色图片,这样输入X就是3个矩阵,即分别对应R,G和B的矩阵,或者说是一个张量。这时和卷积层相连的卷积核W就也是张量,对应的最后一维的维度为3。即每个卷积核都是3个子矩阵组成。
同样的方法,对于3D的彩色图片之类的样本,我们的输入可以是4维,5维的张量,那么对应的卷积核也是个高维的张量。不管维度多高,对于我们的输入,前向传播的过程可以表示为:
和DNN的前向传播比较一下,其实形式非常的像,只是我们这儿是张量的卷积,而不是矩阵的乘法。同时由于W是张量,那么同样的位置,W参数的个数就比DNN多很多了。
为了简化我们的描述,本文后面如果没有特殊说明,我们都默认输入是3维的张量,即用RBG可以表示的彩色图片。
随着未来新型业务应用的快速发展,以及网络基础设施自身价值定位要求的提高,边缘计算对网络的智能化、低时延、大带宽、海量接入等提出了新的需求。例如,网络用于承载计算能力的分发,端到端网络实现超低时延以适应特殊的应用场景,以及网络采用新的标识以满足新型业务应用的需要等。
3.1.2 隐藏层前向传播到卷积层
现在我们再来看隐藏层前向传播到卷积层时的前向传播算法。
需要我们定义的CNN模型参数也和上一节一样,这里我们需要定义卷积核的个数K,卷积核子矩阵的维度F,填充大小P以及步幅S。
3.1.3 隐藏层前向传播到池化层
3.1.4 隐藏层前向传播到全连接层
3.1.5 CNN前向传播算法小结
以上就是CNN前向传播算法的过程总结。有了CNN前向传播算法的基础,我们后面再来理解CNN的反向传播算法就简单多了。
深度学习
TO BE CONTINUED
数学
文章作者: 中国电信研究院 | 刘心唯
文章内容系作者个人观点,不代表融智未来公众号的观点或立场。