深度学习之卷积神经网络

一:卷积神经网络结构

左图:全连接神经网络(平面),组成:输入层、**函数、全连接层

右图:卷积神经网络(立体),组成:输入层、卷积层、**函数、池化层、全连接层

在卷积神经网络中有一个重要的概念:深度
卷积:在原始的输入上进行特征的提取。特征提取简言之就是,在原始输入上一个小区域一个小区域进行特征的提取,稍后细致讲解卷积的计算过程。
深度学习之卷积神经网络

深度学习之卷积神经网络

深度学习之卷积神经网络
深度学习之卷积神经网络
深度学习之卷积神经网络

二:卷积神经网络组成

卷积神经网络组成:
[INPUT - CONV - RELU - POOL - FC]
•输入层 •卷积层
•**函数 •池化层
•全连接层

以下图为例:

第一次卷积可以提取出低层次的特征。

第二次卷积可以提取出中层次的特征。

第三次卷积可以提取出高层次的特征。

特征是不断进行提取和压缩的,最终能得到比较高层次特征,简言之就是对原式特征一步又一步的浓缩,最终得到的特征更可靠。利用最后一层特征可以做各种任务:比如分类、回归等。
深度学习之卷积神经网络

滑窗示意图

左区域的三个大矩阵是原式图像的输入,RGB三个通道用三个矩阵表示,大小为773。

Filter W0表示1个filter助手,尺寸为3*3,深度为3(三个矩阵);Filter W1也表示1个filter助手。因为卷积中我们用了2个filter,因此该卷积层结果的输出深度为2(绿色矩阵有2个)。

Bias b0是Filter W0的偏置项,Bias b1是Filter W1的偏置项。

OutPut是卷积后的输出,尺寸为3*3,深度为2。

计算过程:

输入是固定的,filter是指定的,因此计算就是如何得到绿色矩阵。第一步,在输入矩阵上有一个和filter相同尺寸的滑窗,然后输入矩阵的在滑窗里的部分与filter矩阵对应位置相乘:

将3个矩阵产生的结果求和,并加上偏置项,即0+2+0+1=3,因此就得到了输出矩阵的左上角的3
深度学习之卷积神经网络
深度学习之卷积神经网络
深度学习之卷积神经网络
滑动的步长叫stride记为S。S越小,提取的特征越多,但是S一般不取1,主要考虑时间效率的问题。S也不能太大,否则会漏掉图像上的信息。

由于filter的边长大于S,会造成每次移动滑窗后有交集部分,交集部分意味着多次提取特征,尤其表现在图像的中间区域提取次数较多,边缘部分提取次数较少,怎么办?

方法是在图像外围加一圈0,细心的同学可能已经注意到了,在演示案例中已经加上这一圈0了,即+pad 1。 +pad n表示加n圈0.
深度学习之卷积神经网络
计算方式:深度学习之卷积神经网络
深度学习之卷积神经网络
w1=(32-5+20) / 1 +1 =28 一共有6个
w2= (28-5+2
0)/1 +1 =24 一共10个
注意:在一层卷积操作里可以有多个filter,他们是尺寸必须相同。

卷积参数共享原则
在卷积神经网络中,有一个非常重要的特性:权值共享。
所谓的权值共享就是说,给一张输入图片,用一个filter去扫这张图,filter里面的数就叫权重,这张图每个位置是被同样的filter扫的,所以权重是一样的,也就是共享。
深度学习之卷积神经网络

pooling层

下图显示,池化就是对特征图进行特征压缩,池化也叫做下采样。选择原来某个区域的max或mean代替那个区域,整体就浓缩了。下面演示一下pooling操作,需要制定一个filter的尺寸、stride、pooling方式(max或mean):
深度学习之卷积神经网络
深度学习之卷积神经网络

卷积神经网络流程概览图

深度学习之卷积神经网络