整体架构
输入层、卷积层、池化层、全连接层
卷积做了一件什么事?
我们有一张64*64的图像数据,首先是全连接神经网络(如下图所示),输入数据的特征是1×4096的特征向量,每增加一个中间层的神经元,就会增加(4096+1)个参数,神经元的个数增加到10个,则参数个数会增加到525706。
针对全连接神经网络参数量级过大,我们引入了卷积神经网络(专门针对图像数据)
我们对全校学生对校长的满意度进行调查,这里假设全校有1024名同学,共分为16个班级,
- 全连接网络做的事情是,我们询问全校每一位同学对校长满不满意,共询问1024次,最终得出结果;
- 卷积神经网络做的事情是,我们分班级询问对校长满不满意,即询问16次,得到最终结果。也就是说我们将一个班级的64名同学汇总成一条结果,并反馈出来。
假设有一张图像(image)它的维度是32×32×3,经过一个维度为5×5×3的滤波器,得到什么?如下图所示:
特征图个数
每一个滤波器所提取的特征侧重点是不一样的!!!
多个滤波器针对原始特征,所提取的特征更加丰富!!!
注意:这里除了滤波器以外,还对应每一个滤波器存在着一个偏置项b_i(i=1,2,3,4),对学习到的特征做微调。
卷积层涉及的参数
-
滑动窗口步长(s)
-
卷积核的大小(滤波器的大小)
- 小的卷积核对于提取特征来说更加的细致,侧重于捕捉局部特征
- 大的卷积核侧重于捕捉全局特征
-
边缘填充(p)
假设步长为1时,可能为重中间的特征像素点会被不断地提取,而在左上,左下,右上,右下的的特征像素点往往只被提取到1~2次左右(即相对中间的特征像素点被提取的次数相对较少)。这样会导致学到的特征”偏科“,所用我们在其边缘填充一圈零元素,这样会使得左上,左下,右上,右下的的特征像素点多提取几次,并且填充零,不会造成学到的特征产生偏差。
-
卷积核的个数——影响特征图的大小
卷积结果计算公式
-
长度
-
宽度
-
参数说明
W1、H1表示输入特征的宽度和长度,W2、H2表示输出特征的宽度和长度;F表示卷积核长和宽的大小;S表示滑动窗口步长;P表示边缘填充(加几圈零)
卷积参数共享
数据依旧是32×32×3的图像,继续用10个5×5×3的滤波器来进行卷积操作,所需的权重参数有多少个呢?
5×5×3 = 75,表示每一个卷积核只需要75个参数,此时有10个不同的卷积核,就需要10×75 = 750个卷积核参数,不要忘记还有b参数,每个卷积核都有一个对应的偏置参数,最终只需要750+10=760个权重参数。
池化层 - MAX Pooling
在每一个2×2的池化卷积核里面选择最大的数-作为该范围的代表性特征(找到最能打的那个)
拓展
-
计算卷积神经网络的层数
请问下面这张图里卷积神经网络的层数
答案是:7层
如何计算的呢?
我们约定熟成的说,带有参数的,如conv,FC 记作一层,剩下就是数卷积神经网络中conv,FC 的个数
- conv:即卷积层,它的参数包括卷积核(滤波器)和偏置项
- FC:即全连接层,它的参数包括权重矩阵和偏置项