CNN卷积神经网络

启发

CNN 卷积核_卷积

想要识别的物体特征会出现在不同图像的不同区域

CNN 卷积核_卷积核_02

卷积层

卷积神经网络是包含卷积层的神经网络

一个卷积层包含多个卷积核用于识别多个图像特征

CNN 卷积核_CNN 卷积核_03

CNN 卷积核_计算机视觉_04

CNN 卷积核_卷积_05

CNN 卷积核_CNN 卷积核_06

CNN 卷积核_CNN 卷积核_07

CNN 卷积核_卷积_08

卷积层作用

卷积是一种局部操作,通过一定大小的卷积核作用于局部图像区域获得图像的局部信息。下面以三种边缘卷积核(也可成为滤波器)来说明卷积神经网络中卷积的作用

CNN 卷积核_卷积核_09

如图的三种滤波器分别为整体边缘滤波器,横向边缘滤波器和纵向边缘滤波器,试想,若原图像素(x,y)处可能存在物体边缘,则其四周(x-1,y),(x+1,y),(x,y-1),(x,y+1)处像素值应与(x,y)处有显著差异,此时,如作用以整体边缘滤波器Ke,可消除四周像素值差异小的图像区域而保留显著差异区域,以此可检测出物体边缘信息,其他同理,纵向边缘滤波器可保留纵向边缘信息,横向边缘滤波器可保留横向边缘信息。

CNN 卷积核_池化_10

事实上,卷积网络中的卷积核参数是通过网络训练学出的,除了可以学到类似的横向,纵向边缘滤波器,还可以学到任意角度的边缘滤波器。当然,不仅如此,检测颜色,形状,纹理等等众多基本模式的滤波器(卷积核)都可以包含在一个足够复杂的深层卷积神经网络中,通过组合这些滤波器(卷积核)以及随着网络后续操作的进行,基本而一般的模式会逐渐被抽象为具有高层语义的“概念”表示,并以此对应到具体的样本类别。颇有“盲人摸象”后,将各自结果集大成之意。

总结

  • 输入图像尺寸 W1,H1,D1
  • 四个超参数Hyperparameters:
  • 滤波器数量K
  • 滤波器尺寸F
  • 步长S
  • 填充P
  • 输出尺寸 W2,H2,D2
  • W2 = (W1 - F + 2P) / S + 1
  • H2 = (H1 - F + 2P) / S + 1
  • D2 = K
  • 参数数量:(F X F X D1) X K
  • 输出的第d个通道(W2 X H2)是将输入图像与第d个滤波器做卷积再加上bias的结果

CNN 卷积核_池化_11

卷积层单通道输入

CNN 卷积核_CNN 卷积核_12

卷积层多通道输入

CNN 卷积核_池化_13

卷积层相对于全连接层使用了如下技术减少参数/权值数量:

  • 减少节点之间的连接数量
  • 权值共享
  • 池化层进一步减少参数/权值数量

全连接层

CNN 卷积核_计算机视觉_14

池化层

池化层不包含需要学习的参数。

三种功效

  1. 特征不变性。池化操作使模型更关注是否存在某些特征而不是特征具体的位置。可看作使一种很强的先验,使特征学习包含某种程度自由度,能容忍一些特征微小的位移。
  2. 特征降维。由于池化操作的降采样作用,池化结果中的一个元素对应于原输入数据的一个子区域,因此池化相当于在空间范围内做了维度约减,从而使模型可以抽取更广范围的特征。同时减小了下一层输入大小,进而减小计算量和参数个数。
  3. 在一定程度防止过拟合,更方便优化。

向下采样Subsampling不会改变需要识别的目标

CNN 卷积核_卷积核_15

  • 减小特征图,从而减小截下来的层的参数/权值
  • 读理处理各个特征图:

Maxpooling最大池化

CNN 卷积核_卷积核_16

总结

  • 输入图像尺寸 W1,H1,D1
  • 3个超参数Hyperparameters:
  • 滤波器尺寸F
  • 步长S
  • 输出尺寸 W2,H2,D2
  • W2 = (W1 - F) / S + 1
  • H2 = (H1 - F) / S + 1
  • D2 = D1
  • 没有引入额外的参数 / 权值
  • 无需填充Padding

CNN 卷积核_卷积_17

卷积层的权值共享

CNN 卷积核_池化_18

结尾

  • 卷积网络包含卷积CONV,池化POOL,全连接层FC层
  • 发展的趋势是使用小尺寸的滤波器,更深的网络结构
  • 有提出来全卷积层的结构(无需池化,全连接层)
  • 典型的网络结构
  • [(CONV - RELU) * N - POOL?] * M - (FC - RELU) * K,SOFTMAX
  • N约等于 ~5,M非常大,0 <= k <= 2
  • GoogleNet,ResNet提出了新的结构