卷积神经网络
简介
卷积神经网络的神经元使用宽度、高度、深度三维排列,保留了图像的空间信息。
卷积神经网络主要由三种类型的层构成:卷积层、池化层和全连接层。通过将这些层叠加起来,就可以构建一个完整的卷积神经网络。
卷积层
卷积层是构建卷积神经网络的核心层,它产生了网络中大部分的计算量。
对于未进行零填充的数据体,输出的特征图的大小为(N-F)/stride+1.
其中N为数据体尺寸,F为感受野尺寸,stride为步长。
但是在卷积的时候,会发现边缘数据的使用要比中心的数据少,为了解决这个问题,我们使用填充零的办法,用0在数据体边缘处进行填充。如图所示:
此时计算输出特征图大小的公式为(N-F+2P)/stride+1.
其中P为填充0的数量。
左边:红色的是输入数据体(比如CIFAR-10中的图像),蓝色的部分是第一个卷积层中的神经元。卷积层中的每个神经元都只是与输入数据体的一个局部在空间上相连,但是与输入数据体的所有深度维度全部相连(所有颜色通道)。在深度方向上有多个神经元(本例中5个),它们都接受输入数据的同一块区域(感受野相同)。
右边:神经网络章节中介绍的神经元保持不变,它们还是计算权重和输入的内积,然后进行**函数运算,只是它们的连接被限制在一个局部空间。
在卷积层,还要注意区分卷积核的深度和卷积层数的区别:
在该图中,左边的数据体大小为32x32x3,所以使用的卷积核应该为5x5x3,但是因为我们使用了6个卷积核,所以最终生成的特征图大小为28x28x6,如果要继续对该特征图进行卷积处理,则需要使用深度为6的卷积核进行处理。
1x1卷积:可以通过控制卷积核的个数,来实现降维度或是升维操作,在下图中,如果卷积核的个数大于192个,则会对数据体进行升维,如果少于192个,则会对原始数据进行降维。
1x1卷积的作用:
(1)降维或升维
(2)跨通道信息交融
(3)减少参数量
(4)增加模型深度,提高非线性表示
池化层
通常,在连续的卷积层之间会周期性地插入一个池化层。它的作用是逐渐降低数据体的空间尺寸,这样的话就能减少网络中参数的数量,使得计算资源耗费变少,也能有效控制过拟合。
**反向传播:**回顾一下反向传播的内容,其中函数的反向传播可以简单理解为将梯度只沿最大的数回传。因此,在向前传播经过池化层的时候,通常会把池中最大元素的索引记录下来,这样在反向传播的时候梯度的路由就很高效。
池化的特点:
(1)平移不变性
(2)减少参数量
全连接层
在全连接层中,神经元对于前一层中的所有**数据是全部连接的,这个常规神经网络中一样。它们的**可以先用矩阵乘法,再加上偏差。
小结
- 有的层有参数,有的没有(卷积层和全连接层有,ReLU层和汇聚层没有)。
- 有的层有额外的超参数,有的没有(卷积层、全连接层和汇聚层有,ReLU层没有)。
- 卷积神经网络特点:(1)局部感受野(2)权值共享(3)下采样、池化,减少了参数,防止过拟合。
参考:
https://zhuanlan.zhihu.com/p/22038289?refer=intelligentunit
https://www.bilibili.com/video/BV1K7411W7So