02《卷积神经网络研究综述》学习总结

一、本篇介绍

篇名:卷积神经网络研究综述
作者:周飞燕,金林鹏,董军
作者单位:中国科学院
发表在:计算机学报,2017年6月

二、主要内容

1、神经网络的历史

1943年,心理学家McCulloch和数理逻辑学家Pitts提出了神经元的第1个数学模型——MP模型。
20世纪50年代末至60年代初,Rosenblatt提出了单层感知器模型,第一次把神经网络的研究付诸实践。
1986年,Rumelhart等人提出了一种按误差逆传播算法训练的多层前馈网络—反向传播网络,即Back Propagation Network,BP网络。
20世纪90年代,各种浅层机器学习模型相继被提出,较经典的如支持向量机,而且当增加神经网络的层数时传统的BP网络会遇到局部最优、过拟合及梯度扩散等问题,这些使得深度模型的研究被搁置。
2006年,Hinton等人在《Science》上发文,从此引出了深度学习(Deep Learning)的研究,同时也掀起了人工神经网络的又一热潮。

2、神经元

即激励函数,n个输入信号xi和其对应的权值wij,通过激励函数产生一个输出yj,其可以有很多种选择,可以是线性纠正函数(Rectified Linear Unit,ReLU),sigmoid函数、tanh(x)函数、径向基函数等,即:
这里写图片描述

3、多层感知器

由输入层、隐含层(一层或者多层)及输出层构成的神经网络模型。
其中每一层有数个神经元,隐含层和输出层中每个神经元的输入x=(当前偏置值b)+(上一层每个神经元的输出和相对于的权值的乘积之和),即:
这里写图片描述

4、损失函数

这里写图片描述

5、权值更新公式

这里写图片描述
其中,η为学习率。

6、卷积层

1.卷积层由多个特征面(FeatureMap)组成,每个特征面由多个神经元组成,它的每一个神经元通过卷积核与上一层特征面的局部区域相连。
2.CNN的卷积层通过卷积操作提取输入的不同特征,第1层卷积层提取低级特征如边缘、线条、角落,更高层的卷积层提取更高级的特征。
3.卷积核是一个权值矩阵(如对于二维图像而言可为3×3或5×5矩阵)。
4.卷积核的滑动步长即卷积核每一次平移的距离。
5.卷积层的输出特征面的大小(即神经元的个数)oMapN满足如下关系:
这里写图片描述
其中:iMapN表示每一个输入特征面的大小;CWindow为卷积核的大小;CInterval表示卷积核在其上一层的滑动步长。通常情况下,要保证式(6)能够整除,否则需对CNN网络结构作额外处理。
6.每个卷积层可训练参数数目CParams满足:
这里写图片描述
其中:oMap为每个卷积层输出特征面的个数;iMap为输入特征面个数。1表示偏置,在同一个输出特征面中偏置也共享。
7.输出值
假设卷积层中输出特征面n第k个神经元的输出值为xoutnk,而xinmh表示其输入特征面m第h个神经元的输出值,则
这里写图片描述
bn为输出特征面n的偏置值。fcov(?)为非线性激励函数。
8.激励函数
在传统的CNN中,激励函数一般使用饱和非线性函数(saturating nonlinearity)如sigmoid函数、tanh函数等。相比较于饱和非线性函数,不饱和非线性函数(non-saturating nonlinearity)能够解决梯度爆炸/梯度消失问题,同时也能够加快收敛速度。Jarrett等人探讨了卷积网络中不同的纠正非线性函数(rectified nonlinearity,包括max(0,x)非线性函数),通过实验发现它们能够显著提升卷积网络的性能,Nair等人也验证了这一结论。
因此在目前的CNN结构中常用不饱和非线性函数作为卷积层的激励函数如ReLU函数。ReLU函数的计算公式如下所示
这里写图片描述
9.结论
具有较小卷积核的CNN结构的一些结论:(1)增加网络的深度能够提升准确率;(2)增加特征面的数目也可以提升准确率;(3)增加一个卷积层比增加一个全连接层更能获得一个更高的准确率。
深度网络结构具有两个优点:(1)可以促进特征的重复利用;(2)能够获取高层表达中更抽象的特征
深度越深,网络的性能越好;然而随着深度的增加,网络性能也逐渐达到饱和。
发现特征面数目和卷积核大小的优先级差不多,其发挥的作用均没有网络深度大
通过权值共享可以减小模型复杂度,使网络更易于训练。
卷积层通过卷积操作提取其前一层的各种不同的局部特征。
CNN中的卷积滤波器是一种广义线性模型(Generalized Linear Model,GLM),GLM的抽象水平比较低,但通过抽象却可以得到对同一概念的不同变体保持不变的特征。

7、池化层

常用的池化方法有最大池化即取局部接受域中值最大的点、均值池化即对局部接受域中的所有值求均值、随机池化。
(1)最大池化特别适用于分离非常稀疏的特征;(2)使用局部区域内所有的采样点去执行池化操作也许不是最优的,例如均值池化就利用了局部接受域内的所有采样点。
当分类层采用线性分类器如线性SVM时,最大池化方法比均值池化能够获得一个更好的分类性能。
随机池化方法是对局部接受域采样点按照其值大小赋予概率值,再根据概率值大小随机选择,该池化方法确保了特征面中不是最大激励的神经元也能够被利用到。随机池化具有最大池化的优点,同时由于随机性它能够避免过拟合。
混合池化、空间金字塔池化、频谱池化等池化方法。
在通常所采用的池化方法中,池化层的同一个特征面不同神经元与上一层的局部接受域不重叠,然而也可以采用重叠池化的方法。所谓重叠池化方法就是相邻的池化窗口间有重叠区域。与无重叠池化框架相比,其泛化能力更强,更不易产生过拟合。
卷积层用来模拟Hubel-Wiesel理论的简单细胞,池化层模拟该理论的复杂细胞
池化层在上一层滑动的窗口也称为池化核。
池化层通过减少卷积层间的连接数量,即通过池化操作使神经元数量减少,降低了网络模型的计算量。
池化层的作用是在语义上把相似的特征合并起来,池化层通过池化操作使得特征对噪声和变形具有鲁棒性。
卷积层和池化层的层数越高,特征的表现形式也越抽象。显然,这些特征并没有实际的物理意义,仅仅是数理值。

8、全连接层

在CNN结构中,经多个卷积层和池化层后,连接着1个或1个以上的全连接层。
全连接层可以整合卷积层或者池化层中具有类别区分性的局部信息。
为了提升CNN网络性能,全连接层每个神经元的激励函数一般采用ReLU函数。
最后一层全连接层的输出值被传递给一个输出层,可以采用softmax逻辑回归(softmax regression)进行分类,该层也可称为softmax层(softmax layer)。
对于一个具体的分类任务,选择一个合适的损失函数是十分重要的。
为了避免训练过拟合,常在全连接层中采用正则化方法———丢失数据(dropout)技术,即使隐层神经元的输出值以0.5的概率变为0,通过该技术部分隐层节点失效,这些节点不参加CNN的前向传播过程,也不会参加后向传播过程。
目前,关于CNN的研究大都采用ReLU+dropout技术,并取得了很好的分类性能。

9、特征面

特征面数目作为CNN的一个重要参数,它通常是根据实际应用进行设置的,如果特征面个数过少,可能会使一些有利于网络学习的特征被忽略掉,从而不利于网络的学习;但是如果特征面个数过多,可训练参数个数及网络训练时间也会增加,这同样不利于学习网络模型。
与每层特征面数目均相同的CNN结构相比,金字塔架构(该网络结构的特征面数目按倍数增加)更能有效利用计算资源。
目前,对于CNN网络特征面数目的设定通常采用的是人工设置方法,然后进行实验并观察所得训练模型的分类性能,最终根据网络训练时间和分类性能来选取特征面数目。

10、BP算法

可分为两个阶段:前向传播和后向传播,其后向传播始于MLP的输出层。

11、CNN的一些改进算法

1、网中网结构(Network in Network,NIN)

该模型使用微型神经网络(micro neural network)代替传统CNN的卷积过程,同时还采用全局平均池化层来替换传统CNN的全连接层,它可以增强神经网络的表示能力。微神经网络主要是采用MLP模型
优点:
1.在传统的CNN结构中全连接层的参数过多,易于过拟合,因此它严重依赖于dropout正则化技术。NIN模型采用全局平均池化代替原来的全连接层,使模型的参数大大减少。
2.通过全局平均池化方法对最后一个MLP卷积层的每个特征面求取均值,再将这些数值连接成向量,最后输入到softmax分类层中。全局平均池化可看成是一个结构性的正则化算子(structural regularizer),它可以增强特征面与类别的一致性。
3.在全局平均池化层中没有需要优化的参数,因此能够避免过拟合。此外,全局平均池化层对空间信息进行求和,因此对输入的空间变化具有更强的鲁棒性。

2、空间变换网络(Spatial Transformer Networks,STNs)

尽管CNN已经是一个能力强大的分类模型,但是它仍然会受到数据在空间上多样性的影响。该模块由3个部分组成:本地化网络(localisation network)、网格生成器(grid generator)及采样器(sampler)。
STNs可用于输入层,也可插入到卷积层或者其它层的后面,不需要改变原CNN模型的内部结构。STNs能够自适应地对数据进行空间变换和对齐,使得CNN模型对平移、缩放、旋转或者其它变换等保持不变性。此外,STNs的计算速度很快,几乎不会影响原有CNN模型的训练速度。

3、反卷积

CNN学习到的特征对于平移和缩放具有不变性,但是对于旋转操作一般不具有该特性,除非被识别对象具有很强的对称性。
SWWAE在各种半监督和有监督任务中取得了很高的准确率,它特别适用于具有大量无标注类别而有标注类别相对少的数据集的情况,该模型也可能适用于与视频相关的任务。

12、其他

1、训练方法

CNN可直接执行有监督学习训练
CNN也可以进行无监督训练。

2、开源工具

目前常用的深度学习仿真工具有Caffe、Torch、Theano、Neon及Tensor-Flow等
其中Caffe、Torch及Theano是目前最广泛使用的软件架构。
这5个软件架构均可在CPU或者GPU上运行,但是Neon不能使用多线程CPU,Caffe需要在安装的时候确定好CPU的线程数,TensorFlow、Torch及Theano则可以灵活地选择CPU线程数。

3、实际应用

1.图像分类(我的目标)
2.人脸识别
3.音频检索
4.ECG分析(目前极为有用的一种心血管系统疾病的临床诊断体征)
4、关于CNN的一些参数的分析
这个分析是基于ECG实验的,作者应该是专注于这个领域的卷积神经网络的研究者,于我的图像分类并没有太直接的关系,因为卷积的各个参数基本都是根据具体的应用领域通过实验得到的最优值,CNN的参数的影响至今没有一个可靠的理论依据。

13、CNN进一步的工作

(1)目前所使用的CNN模型是Hubel-Wiesel模型简化的版本,有待进一步借鉴Hubel-Wiesel模型,对它进行深入研究并发现结构特点及一些规律,同时还需引入其它理论使CNN能够充分发挥其潜在的优势。
(2)对于一个具体的任务,仍很难确定使用哪种网络结构,使用多少层,每一层使用多少个神经元等才是合适的。仍然需要详细的知识来选择合理的值如学习率、正则化的强度等。
(3)如果训练数据集与测试数据集的分布不一样,则CNN也很难获得一个好的识别结果,特别是对于复杂的数据例如临床ECG数据。因此,需要引入CNN模型的自适应技术,可考虑将自适应抽样等应用于CNN模型中。
(4)尽管依赖于计算机的CNN模型是否与灵长类视觉系统相似仍待确定,但是通过模仿和纳入灵长类视觉系统也能使CNN模型具有进一步提高性能的潜力。
(5)目前,CNN在计算机辅助ECG分析领域中,其输入维数需保持一致。为了使输入维数保持一致,需要将原始数据截取到固定长度,然而RNN可以处理长度不等的数据,因此需考虑如何将CNN与RNN相结合,并应用于ECG记录分类中。
(6)在隐性训练中,如何将整个训练过程中的最佳分类模型保存下来也是一个值得探讨的问题。在文献的隐性训练中,当所有的训练样本在一个训练周期内都参与BP反向传播过程后,才输出整个训练中的测试结果,如果此时其准确率是目前为止最高的,则保存当前分类模型。事实上,我们还可以对它做进一步的改进,例如当部分样本进行BP训练后,就可采用校验样本测试当前的模型,然后判断该模型是否为迄今为止性能最佳的分类模型。

三、具体创新

本文属于综述,没有具体创新点。

四、心得感想

让我对CNN有了一个具体的了解,虽然对其中的很多具体的概念公式还不懂,但是在接下来的日子里,终究会搞懂。
fighting!!!

附:专业词汇

shallow architectures 浅层架构
feature extracting 特征提取
model fitting 建模
raw input data 原始数据
generalization ability 泛化能力
feature representations 特征表示
chip processing capabilities 芯片处理能力
drastic increases 剧烈增长
significant progress 巨大的进展,成效卓然
object detection computer vision目标检测和计算机视觉
speech recognition 语音识别
semantic parsing 语义分析
consists of 包含,组成
non-linear transformations 非线性变换
neurons 神经元
connectivity pattern 连接模式
organization of the animal visual cortex 动物视觉皮层组织
convolutional neural network 卷积神经网络
local connections 局部连接
shared weights 分享权值
pooling 池化
robustness 鲁棒性
fault tolerance 容错能力
optimize 优化
fully connected neural networks 全连接神经网络
multilayer perception 多层感知器
spatial transformer networks 空间变换网络
Network in Network 网中网模型
supervised learning 监督学习
unsupervised learning 无监督学习
remained issues 待解决的问题
recurrent neural network 递归神经网络
parameters 参数
Artificial Neural Network 人工神经元网络ANN
Deep Belief Network 深度置信网络DBN
Stacked Deoising Autoencoders 层叠自动去噪编码机SDA

另:一些说明
1、本博客仅用于学习交流,欢迎大家瞧瞧看看,为了方便大家学习,相关论文请去知网等地方自行下载。
2、如果原作者认为侵权,请及时联系我,我的qq是244509154,邮箱是[email protected],我会及时删除侵权文章。
3、我的文章大家如果觉得对您有帮助或者您喜欢,请您在转载的时候请注明来源,不管是我的还是其他原作者,我希望这些有用的文章的作者能被大家记住。
4、最后希望大家多多的交流,提高自己,从而对社会和自己创造更大的价值。

猜你喜欢

转载自blog.csdn.net/u014772246/article/details/81115224
今日推荐