1、机器视觉
(上图展示了一个神经风格转换(Neural Style Transfer)的例子)
使用传统神经网络处理机器视觉的一个主要问题是输入层维度很大。例如64x64x3的图片,神经网络输入层的维度为12288。而现在的图片将近几千x几千x3的内存,而导致神经网络输入层的维度达到几百万。这样会造成两个后果,一是神经网络结构复杂,数据量相对不够,容易出现过拟合;二是所需内存、计算量较大。解决这一问题的方法就是使用卷积神经网络(CNN)。
2、边缘检测
最常检测的图片边缘有两类:一是垂直边缘(vertical edges),二是水平边缘(horizontal edges)。
图片的边缘检测可以通过与相应滤波器进行卷积来实现。以垂直边缘检测为例,原始图片尺寸为6x6,滤波器filter尺寸为3x3,卷积后的图片尺寸为4x4,得到结果如下:
(步长为1的卷积操作下)
Vertical edge detection能够检测图片的垂直方向边缘。下图对应一个垂直边缘检测的例子:
Horizontal edge detection能够检测图片的垂直方向边缘。下图对应一个水平边缘检测的例子:
垂直边缘检测和水平边缘检测的滤波器算子如下所示:
3、解决图片缩小的问题
按照我们上面讲的图片卷积,如果原始图片尺寸为n x n,filter尺寸为f x f,则卷积后的图片尺寸为(n-f+1) x (n-f+1),注意f一般为奇数。这样会带来两个问题:
-
卷积运算后,输出图片尺寸缩小
-
原始图片边缘信息对输出贡献得少,输出图片丢失边缘信息
为了解决图片缩小的问题,可以使用padding方法,即把原始图片尺寸进行扩展,扩展区域补零,用p来表示每个方向扩展的宽度。
经过padding之后,原始图片尺寸为(n+2p) x (n+2p),filter尺寸为f x f,则卷积后的图片尺寸为(n+2p-f+1) x (n+2p-f+1)。若要保证卷积前后图片尺寸不变,则p应满足:
(图片尺寸不变,即满足n+2p-f+1=n)
没有padding操作,p=0,我们称之为“Valid convolutions”;有padding操作, ,我们称之为“Same convolutions”。
4、步进长度
Stride表示filter在原图片中水平方向和垂直方向每次的步进长度。之前我们默认stride=1。若stride=2,则表示filter每次步进长度为2,即隔一点移动一次。
我们用s表示stride长度,p表示padding长度,如果原始图片尺寸为n x n,filter尺寸为f x f,则卷积后的图片尺寸为:
卷积运算服从结合律:
5、3通道图片卷积计算
1)对于3通道(R、G、B)图片的卷积运算,其对应的滤波器算子也为3通道。而3通道图片的卷积运算与单通道图片的卷积运算一致。过程是将每个单通道(R,G,B)与对应的filter进行卷积运算求和,然后再将3通道的和相加,得到输出图片的一个像素值。(所以在OpenCV中在图像处理的时候会提前将图片灰度化)
2)为了进行多个卷积运算,实现更多边缘检测,可以增加更多的滤波器组。例如设置第一个滤波器组实现垂直边缘检测,第二个滤波器组实现水平边缘检测。这样,不同滤波器组卷积得到不同的输出,个数由滤波器组决定。
6、简单的CNN网络模型
下面介绍一个简单的CNN网络模型:
该CNN模型各层结构如上图所示。需要注意的是,的维度是7 x 7 x 40,将排列成1列,维度为1960 x 1,然后连接最后一级输出层。输出层可以是一个神经元,即二元分类(logistic);也可以是多个神经元,即多元分类(softmax)。最后得到预测输出。
CNN有三种类型的layer:
-
Convolution层(CONV)
-
Pooling层(POOL)
-
Fully connected层(FC)
7、池化层(Pooling层)
池化层是CNN中用来减小尺寸,提高运算速度的,同样能减小noise影响,让各特征更具有健壮性。
池化层的做法比其他卷积层简单许多,没有卷积运算,仅仅是在滤波器算子滑动区域内取最大值,即max pooling,这是最常用的做法。注意,超参数p很少在池化层中使用。
Max pooling的好处是只保留区域内的最大值(特征),忽略其它值,降低noise影响,提高模型健壮性。而且,max pooling需要的超参数仅为滤波器尺寸f和滤波器步进长度s,没有其他参数需要模型训练得到,计算量很小。
10. 卷积神经网络的例子
下面介绍一个简单的数字识别的CNN例子:
图中,CON层后面紧接一个POOL层,CONV1和POOL1构成第一层,CONV2和POOL2构成第二层。特别注意的是FC3和FC4为全连接层FC,它跟标准的神经网络结构一致。最后的输出层(softmax)由10个神经元构成。
整个网络各层的尺寸和参数如下表格所示: