1.概述
卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它是受生物学上感受野(Receptive Field)的机制而提出的。比如在视觉神经系统中,一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能激活该神经元。
卷积神经网络有三个结构上的特性:局部连接,权值共享以及空间或时间上的次采样。这些特性使得卷积神经网络具有一定程度上的平移、缩放和扭曲不变性。
2.卷积运算
给定一个图像Xij, 1≤i≤M, 1≤j≤N,和滤波器Fij,1≤i≤m, 1≤j≤n,一般m << M, n << N。
![](https://img.haomeiwen.com/i2917770/3caa0652d4b173ad.png)
卷积输出为:
3.卷积层
卷积神经网络是用卷积来代替全连接。在全连接前馈神经网络,如果第l-1层有n个神经元,第l层有m个神经元,连接边有n*m个,即第l-1层到第l层的权值矩阵有n*m个参数。当n,m值都很大时,权值矩阵参数非常多,运行很占资源,计算效率很低。
如果采用卷积来代替全连接,第l层的每个神经元都只和第l-1层的一个局部窗口内的神经元相连,构成一个局部连接网络。
![](https://img.haomeiwen.com/i2917770/5ed1c7fba9c1b26e.png)
第l层的第i个神经元的输入定义为:
其中W为p维的卷积核,对于所有神经元都是相同的,这是卷积层的权值共享特性。在卷积层里,我们只需要p+1个参数(包含一个偏置项)。第l层的神经元个数是由上一层的神经元个数和滤波器决定的。例如卷积层实战中,input_size= 31,pad=1,stride=2,filter_size=3可得output_size=(input_size+2*pad-filter_size)/stride+1=(31+2*1-3)/2+1 = 16。
为了增强卷积层的表示能力,我们可以用K个不同的卷积核来得到K组输出。每个输出都共享一个滤波器。如果把滤波器看成一个特征提取器,每一组输出都可以看出输入图像经过不同的特征提取后得到的特征。因此在卷积神经网络中每一组输出也叫一组特征映射(Feature Map)。卷积层的作用是提取局部区域的特征,每个卷积核相当于一个特征提取器。
4.子采样
卷积层虽然可以大大减少权值连接,但是每个特征映射的神经元个数并没有显著减少。如果后面接一个分类器,分类器的输入维度依然很高,很容易出现过拟合。为了解决这个问题,卷积神经网络一般会在卷积层之后再加上一个池化层(Pooling)操作,也就是子采样。子采样层可以大大降低特征的维度,避免过拟合。
子采样函数一般取区域内所有神经元的最大值(max-pooling)或平均值(average-pooling)。
以max-pooling为例:
![](https://img.haomeiwen.com/i2917770/66172f9e3dfaa5c6.png)
子采样的作用还在于可以使得下一层的神经元对一些小的形态改变保持不变性,并拥有更大的感受野。
5.VGG Example
VGG网络中的所有卷积层只采用kernel_size=3,stide=1,pad=1,子采样层kernel_size=2,stide=2,pad=0。具体的每一层权值和神经元分布如下:
![](https://img.haomeiwen.com/i2917770/f0b125e2bd0c0504.png)
就一般卷积神经网络而言,前面卷积层神经元需要占用大部分内存而权值需要占用小部分内存,而在后面全连接层神经元占用小部分内存而权值占用大部分内存。
6.DeepID Example
DeepID网络结构是香港中文大学的Sun Yi开发出来用来学习人脸特征的卷积神经网络。每张输入的人脸被表示为160维的向量,学习到的向量经过其他模型进行分类,在人脸验证试验上得到了97.45%的正确率,更进一步的,原作者改进了CNN,又得到了99.15%的正确率。
如下图所示,该结构与ImageNet的具体参数类似,所以只解释一下不同的部分吧。
![](https://img.haomeiwen.com/i2917770/3e95287e9fe1f7df.png)
上图中的结构,在最后只有一层全连接层,然后就是softmax层了。论文中就是以该全连接层作为图像的表示。在全连接层,以第四层卷积和第三层max-pooling的输出作为全连接层的输入,这样可以学习到局部的和全局的特征。
网友评论