1、毕 业 设 计 (论 文 )基于深度学习的图像超分辨率重建研究院 别 数 学 与 统 计 学 院专业名称 信 息 与 计 算 科 学班级学号 5133117学生姓名 楚 文 玉指导教师 张 琨2017 年 06 月 10 日东北大学秦皇岛分校毕业设计(论文) 第 I 页基于深度学习的图像超分辨率重建研究摘 要人工神经网络凭借其超强的学习能力,使得人工智能得到迅猛的发展,让人工神经网络再次成为研究热点。目前深度学习已经广泛应用于计算机视觉,语音处理,自然语言处理等各个领域,甚至在某些领域已经起到了主导作用。单一图像超分辨率重建技术旨在将一个低分辨率图像经过一系列算法重构出对应的高分辨率图像。目前
2、比较成熟的方法有基于频域法,非均匀图像插值法,凸集投影法,最大后验概率法以及稀疏表示法。本文主要研究利用深度学习实现单一图像超分辨率重建。本文首先简要介绍人工神经网络的发展历程,然后介绍深度学习在计算机视觉方面的应用。然后介绍神经网络的一些理论知识,最后介绍深度学习中的卷积神经网络(CNN, Convolutional Neural Network) 。本文研究如何利用卷积神经网络实现超分辨率重建。卷积神经网络分为三层结构,第一层的作用是特征块的提取和表示,第二层的作用是非线性映射,第三层的作用是重建出高分辨率图像。本文首先将一个图像降采样再双三次插值作为低分辨率图像,作为卷积神经网络的输入,
3、而高分辨率图像作为卷积神经网络的输出,利用卷积神经网络建立低分辨率,高分辨率之间的映射。最后针对该模型进行改进,再加入一层作为特征提取。最后利用深度学习框架TensorFlow 实现上述模型。最后研究快速超分辨率重建模型,并针对模型层数和过滤器大小进行改进,与先前实验做比对。关键字:超分辨率重建,卷积神经网络,深度学习,TensorFlow东北大学秦皇岛分校毕业设计(论文) 第 II 页Image Super-Resolution Using Deep learningAuthor: Chu Wen-yuTutor: Zhang KunAbstractArtificial Neural Net
4、work because of its strong ability to learn, get rapid development of artificial intelligence, let the Artificial Neural Network become the research upsurge again. Deep learning has been widely used in computer vision, speech processing, natural language processing and so on. The super-resolution(SR
5、) technique is designed to refactor a low-resolution image through a series of algorithms to reconstruct the corresponding high-resolution image. Currently, the method of frequency domain, Non-uniform image interpolation, Projection onto convex set(POCS), Maximum a posterior(MPA) and sparse matrix m
6、ethod are the more mature methods. This paper mainly researches the realization of super-resolution(SR) reconstruction using deep learning.In this thesis, first is a brief introduction of the development of artificial neural network, then introduces the application of deep learning in computer visio
7、n. With that introduces some theoretical knowledge of neural network, and finally introduces the convolution neural network(CNN) in deep learning. This article mainly researches how to use the convolution neural network(CNN) to get the super-resolution reconstruction. The convolution neural network
8、contains three structures, the effect of the first layer is Patch extraction and representation, the second is the function of Non-linear mapping, the role of the third layer is the high-resolution image reconstruction. First to downscale and bicubic interpolation an image as the low-resolution imag
9、es as the input of the convolution neural network, and the high-resolution image as the output of the convolution neural network, using convolution neural network established end-to-end mapping between the low -resolution and high-resolution. Finally, the model is improved, and then a layer is 东北大学秦
10、皇岛分校毕业设计(论文) 第 III 页added as feature extraction. The model implements using deep learning frame TensorFlow. Finally, learn more about the accelerate super-resolution reconstruction model and improve the model layer and filter size, and compare with the previous experiment.Key Words: Super-Resolution
11、, Convolution neural network, Deep learning,TensorFlow东北大学秦皇岛分校毕业设计(论文) 第 IV页目 录1 绪论 .11.1 课题背景及意义 .11.2 国内外研究现状 .21.3 论文的内容结构 .32 深度学习理论 .52.1 人工神经网络理论 52.1.1 神经网络基础理论 62.1.2 BP 反向传播算法 92.1.3 随机梯度下降法 122.2 深度神经网络理论 .132.2.1 深度学习的核心思想 .132.2.2 卷积神经网络 .142.3 TensorFlow 简介 193 基于 SRCNN 的超分辨率重建算法研究 .21
12、3.1 SRCNN 模型简介 213.2 SRCNN 模型的改进 223.3 改进的模型的实现 .233.3.1 数据集制作 233.3.2 TensorFlow 实现卷积神经网络 243.4 FSRCNN 模型 .273.4.1 FSRCNN 模型简介 .273.4.2 FSRCNN 模型改进 .284 实验及分析 .294.1 具体实验结果分析 .294.2 与其他实验对比分析 .31结 论 .35东北大学秦皇岛分校毕业设计(论文) 第 IV页致 谢 .36参考文献 .37附 录 A39附 录 B44东北大学秦皇岛分校毕业设计(论文) 第 1 页1 绪论1.1 课题背景及意义从 2016
13、年 AlphaGo 完胜李世石到 2017 年 5 月战胜柯洁等诸多世界围棋顶级高手,人工智能和深度学习这些概念再次引起了学术界的关注。谷歌、脸书、阿里巴巴、百度等众多国内外互联网公司纷纷宣布要将人工智能作为他们的下一个战略重心 1。在类似 AlphaGo、无人机驾驶汽车等最新技术的背后,深度学习是推动这些技术发展的核心力量。目前我们所熟知“深度学习”基本上是深层神经网络的一个代名词,而神经网络技术可以追溯 1943 年。深度学习之所以看起来像一个新技术的原因是在 21 世纪初期并不是很流行。神经网络的发展史大致可以分为三个阶段。早期的神经网络模型类似于仿生机器学习,它试图模仿大脑的学习机理。
14、最早是在 1943 年由 Walter Pitts 教授和 Warren McCulloch 教授提出的 McCulloch-Pitts Neuron(MP)计算结构模型,大致模拟了人类神经元的工作原理,使用了简单的线性加权和的方式来模拟变换 2。Frank Rosenblatt 教授在 1958 年提出了一个感知机模型(perceptron) 3。它首次实现了依据样本数据集来学习权重。这两个模型深深的影响了现代机器学习,为现代机器学习奠定了基础,但自身也存在许多不足。Seymour Paper 教授和 Marvin Minsky 教授在 1969 年出版的 Perceptron 书中证明了感
15、知机模型只能解决线性可分问题,无法解决异或问题。在之后的十几年里,关于神经网络的研究全部处于停滞状态。直到 20 世纪 80 年代末,第二波神经网络研究热潮因为分布式知识表达(distributed representation)和神经网络反向传播算法的提出而重新兴起。这大大增强了模型的表达能力,让神经网络从宽度的方向走到了深度的方向。这为之后的深度学习奠定了基础。1986 年 David Everett Rumelhart 教授、Geoffrey Everset Hinton 教授和Ronald J. Willians 教授在自然杂志上发表的 Learning Representations
16、 by Back-propagating errors 文章中首次提出了反向传播算法(BP ) 3,此算法大幅降低了训练神经网络的时间。直达今天仍是训练神经网络的主要方法。现如今使用的一些神经网络结构,比如卷积神经网络和循环神经网络,在这个阶段取得了显著的成就。Sepp Hochreiter 教授和 Juergen Schmidhuber 教授于 1991 年提出的 long short-term memory(LSTM)模型可以有效的对较长的序列进行建模,比如一段文字和语音等。东北大学秦皇岛分校毕业设计(论文) 第 2 页直到今天 LSTM 都是解决自然语言处理,语言识别的有效方法。然而,之
17、后神经网络研究再度步入寒冬。在神经网络发展前景不好的时候,传统的神经网络学习算法却得到了突破性的进展,并在 90 年代末超过了神经网络,成为当下最先进的方法。典型的案例是 1998 年,使用支持向量机(SVM)的算法在手写体识别上,可以把错误率降低到 0.8%,这是神经网络无法做到的。导致这种情况的原因主要是因为在当时的计算资源下,训练深层的神经网络仍然非常困难,其次,当时的数据量比较小,无法满足训练深层神经网络的需求。随着计算机性能的进一步提高,以及云计算、GPU 的出现,到 2010 年左右,计算量不再是阻碍神经网络发展的问题。与此同时,随着互联网+的发展,获取海量的数据也不在困难。于是乎
18、新的神经网络高潮再次来临。在 2012ImageNet 举办的图像分类竞赛 ILSVRC 中,由 Alex Krizhevsky 教授实现的深度学习系统 AlexNet 赢得了冠军。自此之后深度学习作为深层神经网络的代名词被大家所熟知。在 2013 年,深度学习被麻省理工(MIT)评为了年度十大科技突破之一 4。在 2013 年的 ImageNet 比赛中,效果较好的模型都是使用深度学习。2014 年 ImageNet 比赛,谷歌的 GoogLeNet 加深网络深度到 20 多层,将 top5 错误率降到了 6.656%。在 2012 年微软亚洲研究院(Microsoft Research A
19、sia,MSRA)二十一世纪计算大会(21st Century Computing)上,微软高级副总裁 Richard Rashid 现场演示了微软开发的由英文到汉语的同声传译系统。深度学习在图像识别领域的突破掀起了学术界的研究热潮,而深度学习在人机博弈上的突破使得这个概念深入人心。在 2016 年 3 月谷歌开发的围棋人工智能系统 AlphaGo 以 4:1 战胜韩国棋手李世石,成为人工智能历史上的一个里程碑。而在今年 AlpahGo 再次战胜我国顶级围棋高手柯洁,让人们对人工智能更加的憧憬。深度学习的热潮也深深影响了我,让我对深度学习产生了浓厚的兴趣。图像超分辨率重建在现阶段已经非常成熟,
20、但是利用深度学习去做超分辨率重建的案例并不多,借着深度学习,神经网络的热潮,研究深度学习下的超分辨率重建。1.2 国内外研究现状单一图像超分辨率重建是计算机视觉的经典问题。本部分主要介绍深度学习在计算机视觉方面的研究现状以及传统的超分辨率重建方法的研究现状。东北大学秦皇岛分校毕业设计(论文) 第 3 页深度学习算法最早尝试应用的领域就是计算机视觉问题。1989 年,Yann LeCun 教授提出了卷积神经网络(CNN)的概念,它是一种包含卷积层的深度神经网络模型。起初卷积神经网络在小规模的问题上取得了非常好的效果,但是却没有取得重大突破。归其原因就是卷积神经网络对大图像处理得不到理想的效果。直
21、到 2012 年深度学习算法 AlexNet 赢得图像分类比赛 ILSVRC 冠军,卷积神经网络才得以重新被热议研究。ILSVCR 是基于 ImageNet 图像数据集的图像识别类比赛,在计算机视觉领域有极高的影响力。从 2013 年开始,ILSVRC 上基本都是深度学习在参赛。从 2012 年到 2015 年间,通过对深度学习算法的不断研究,ImageNet 图像分类的错误率以每年 4%的速度递减。这说明深度学习完全打破了传统机器学习算法在图像分类上的瓶颈,让图像分类问题得到了更好的解决。2015 年在自然科学杂志上刊登的深度学习综述Deep Learning 5,对现在的深度学习理论进行了
22、总结,文章中提到了用 ReLu 函数代替Sigmoid 函数成为最流行的作用函数,加上 GPU 加速运算等,这些共同促进了深度学习在图像识别的成功,给计算机视觉领域带来了一场革命。国内互联网巨头百度公司将深度学习相关技术应用到计算机视觉上,推出了一系列产品,并且聘请了美籍华人科学家 Andrew Ng (吴恩达)主导百度的深度学习,取得了显著的成果,在 2017 年的最强大脑中,由吴恩达科学团队设计的小度智能机器人,与国内外顶级最强大脑进行对决,未尝败绩。图像超分辨率重建算法大致可以分为基于插值的算法 6、基于重建的算法 7和基于学习的算法 8。其中基于插值的算法中,尤其是 Keys 在 19
23、85 年提出的双三次插值算法,至今仍然应用在各个计算机视觉领域。当放大倍数较小时,双线性插值,最近邻算法以及双三次插值都可以得到显著的效果。基于重建的算法中,比较突出的是盲超分辨重建,从低分辨率图像预估出高分辨率和模糊核 9。基于学习的超分辨率重建是近年来比较热门的研究方向,Freeman 等人将机器学习方法成功应用到图像超分辨率重建问题上,但是该算法低分辨率面片和低分辨率输入之间不能完全匹配,会引入错误的细节。Sun 等人在此基础上做了改进,增强图像中的边缘等基元 10。Chang 等人提出了一种基于局部嵌入的图像超分辨率算法 11。Yang 等人结合压缩感知理论,利用信号的稀疏表示精简训练
24、样本得到学习字典 12。最近几年深度学习比较热门,汤晓鸥团队提出利用 CNN 实现超分辨重建,他将基于深度学习的方法和基于稀疏表示的方法对比,得出基于稀疏表示的方法是深度学习神经网络中的一种表示形式 13,并且实验得到的东北大学秦皇岛分校毕业设计(论文) 第 4 页结果比稀疏表示要好。1.3 论文的内容结构本部分主要介绍本文的主体架构:第一部分介绍了课题的研究背景及意义,先简要介绍了深度学习的发展历程,然后介绍深度学习以及图像超分辨率重建国内外的研究现状。第二部分主要介绍深度学习的基础理论知识,包括人工神经网络基础理论,学习训练网络方法,BP 算法,以及卷积神经网络基础理论介绍,还有 Tens
25、orFlow 深度学习框架介绍。第三部分主要介绍基于卷积神经网络(CNN)的图像超分辨率重建模型,包括网络层的搭建,数据集的制作,模型训练,反馈学习等。然后将模型层数加深进行算法改进,最后学习快速超分辨率重建技术,针对模型的层数和过滤器尺寸进行改进。第四部分介绍算法实验分析和总结,针对实验效果,模型复杂程度,训练时间等方面进行分析比对。第五部分对这次论文进行归纳总结,分析不足,提出可行性的建议。东北大学秦皇岛分校毕业设计(论文) 第 5 页2 深度学习理论2.1 人工神经网络理论人工神经网络(Artificial Neural Network, ANN) ,基于生物学中神经网络的基本原理,模仿
26、大脑神经创建的数学模型。它有并行的分布处理能力、高容错性、自我学习等特征。神经网络中最基本的单元是神经元,也叫感知器,如下图所示:图 2.1 简单神经元的示意图 14可以看到,一个神经元由如下部分组成: 输入权值:一个神经元可以接受多个输入 ,每个输入都有一12,|nixx个权值 以及一个偏执项ib 激活函数:用来做非线性映射,比如 Sigmoid 函数,又称 S 形函数(2.1)1()xfe 输出:神经元的输出由下面公式计算(2.2)00()niiyfwxb ( 令 )利用感知器可以实现布尔运算,例如可以利用感知器实现 AND 函数。我们可以令, , ,激活函数选择阶跃函数1=0.528b(
27、2.3)1,0()xf东北大学秦皇岛分校毕业设计(论文) 第 6 页则当 为真时(真为 1,假为 0) ,输出结果为真,其余为假。12,x事实上,感知器不但能够实现简单的逻辑布尔运算,还可以拟合出任何的线性函数。感知器还可以用来解决线性分类问题,回归问题。前面的布尔逻辑运算可以看作是一个二分类问题,回归问题,输出真或假(0 或 1) 。同样感知器也可以用来实现线性分类问题,如下图 2.2 所示所示,要将三角形和圆形分类,就需要使用 AND 感知器,每一条直线叫做一个分类器,每一个分类器可以做一次线性分类, 取下侧, 取上侧,然后1c2AND 运算,即可实现分类。理论上利用线性分类器可以实现所有
28、的区域划分。0 11c2cx2x图 2.2 简单线性分类图2.1.1 神经网络基础理论本节主要介绍神经网络的理论模型,学习方式,学习规则(算法) ,激活(作用)函数,BP 算法等。1神经网络模型下图 2.3 所示为简单神经网络的结构模型图。最左边的层叫做输入层,输入数据为,最右边的层叫做输出层,输出数据为 。输入层和输出层之间的层叫做隐藏层。ix ,()wbhx含多个隐藏层的神经网络叫做深度神经网络。深层神经网络相比较浅层神经网络对于拟合任意一个函数而言,浅层神经网络浅而宽,需要大量的神经元,而深层神经网络深而窄,需要更多的层,较少的神经元。一般深层网络节省资源,但是深层网络并不好训练,需要大
29、量的数据,很好的技巧才能去拟合,训练出好的网络。2学习方式东北大学秦皇岛分校毕业设计(论文) 第 7 页神经网络的学习方式很多,根据一种广泛的分类方式,可以将其分为三大类: 有监督学习:又叫有导师学习,将训练样本的数据加入到神经网络的输入端,将期望答案和实际输出做差,可以得到误差信号,通过控制误差信号来调整权值得大小,以此来适应新的环境。 无监督学习:又称无导师学习,起初并不给定标准数据样本,而是直接将网络置于环境之中,由自身根据数据特征进行学习。 增强学习:又称作再励学习,输入信息介于有监督和无监督之间,不需要给定标签,但需要对网络的输出做出评判(奖励) ,以此来调整网络参数。图 2.3 简
30、单神经网络的示意图 143学习规则学习规则,其实就是用来修改神经网络的权值和偏置值的过程和方法,其目的就是为了训练网络,更好的拟合我们的需求,完成特殊的任务。常见的学习规则有 Hebb学习规则,Delta 算法以及最经典的 BP 算法。BP 算法会在下一节详细介绍。4激活(作用)函数激活函数,又叫激励函数,主要作用是对神经元所获得的输入的变换,反应神经元的特性。常用的激活函数有如下几种类型: (1) 线性函数 (2.4)()fxkc其中, , 为常量。线性函数常用在线性神经网络中。kc(2) 符号函数(2.5)1,0()xf东北大学秦皇岛分校毕业设计(论文) 第 8 页(3) 对数函数(Sig
31、moid 函数)(2.6)1()xfe对数函数又称 S 性函数,其图像如下图 2.4 所示,是最为常见的激活函数,它将区间 映射到 的连续区间。特别的, 是关于 处处可导的,并且有(,)(0,1) ()fx的)fx导数 。()()fxf图 2.4 sigmoid 函数图像(4) 双曲正切函数 (2.7)()xef图 2.5 双曲正切函数 tanh 函数图像(5) 高斯函数(2.8)21()xcfe(6) ReLU 函数东北大学秦皇岛分校毕业设计(论文) 第 9 页(2.9),0()xf也可表示为 。最近几年神经网络中,ReLU 激活函数得到了广泛的()max(0,)f应用,尤其在卷积神经网络中
32、,往往不选择 Sigmoid 或 Tanh 函数,而是选择 ReLU 函数,原因有以下几点:a) 速度快:和 Sigmoid 函数必须计算指数和导数比较,ReLU 代价小,速度更快。b) 减轻梯度消失问题:对于梯度计算公式 ,其中 是 Sigmoid 的导数,=x在经过 BP 算法求梯度下降的时候,每经过一层 Sigmoid 神经元,都要乘以 ,但是 的最大值是 1/48,所以会导致梯度越来越小,这对于训练深层网络是一个大问题,但是 ReLU 函数的导数为 1,不会出现梯度下降,更易于训练深层网络。c) 稀疏性:有研究发现,人脑在工作时只有大概 5%的神经元是激活的,而Sigmoid 函数大概
33、有 50%的神经元是激活的,而人工神经网络在理想状态时有大概15%-30%的激活率,所以 ReLU 函数在小于零时是完全不激活的,所以可以适应理想网络的激活率要求。图 2.6 ReLU 函数图像说明:没有一种完美的激活函数,不同的网络有不同的需求函数,需要根据具体的模型选取合适的激活函数。2.1.2 BP 反向传播算法BP 算法学习过程分为两个子过程,即工作信号正向传递子过程和误差型号反向传递子过程。应用到深度学习中就是正向传播求损失,反向传播求偏导 15。其完整的学习过程是,对于一个训练样本,输入正向传播到输出,产生误差,然东北大学秦皇岛分校毕业设计(论文) 第 10 页后误差信号反向从输出
34、层传递到输入层,利用该误差信号求出权重修改量 ,通过ijw它更新权 ,称为一次迭代过程。当误差或者 仍不满足要求是,重复上述操作。ijwijw图 2.7 神经网络模型以上图 2.7 中的三层神经网络模型为例,来说明 BP 算法的原理及推导求解过程。1) 工作信号正向传播过程该网络分为三层,设输入层到隐藏层的权值为 ,隐藏层到输出层的权值为 ,ijvijw输入层单元的个数为 ,隐藏层 ,输出层单元个数 。并采用 Sigmoid 函数。nml输入层的输入向量 ,隐藏层输出向量 ,并有:12(,)nXx 12(,)mYy(2.10)1,()jjijjijnetetvyfet其中,偏置 充当阈值,用来
35、改变单元的活性。同样输出层向量 ,并j 12(,)lOo有:(2.11)1,()1jmjijjjnetnetwxofet2) 误差信号反向传递过程设 为期望输出, 为实际输出, 为损失函数(误差信号) ,定义为:doE(2.12)2211()()lkdodo其中, 为输出层第 个单元的期望输出, 是样本的第 个单元的世纪输出。kdkk损失函数 展开到隐藏层:E(2.12)22 21111()()()l l lmkkkkjkjdodfnetdfwy损失函数 展开到输入层:东北大学秦皇岛分校毕业设计(论文) 第 11 页(2.13)2 211111()()2lmlmnkjk kjkijj jEdf
36、wfnetdfwfvx可以看到损失 是一个关于权值的函数,要使损失函数 最小,就要沿着梯度的E反方向。为使 最小化,可以选择任意初始点 ,从 出发沿着梯度下降的方()jkwjkjk向走,可使得 下降最快,所以取:jE(2.14),1,jkjkEmklw其中, 是一个学习效率,取值 ,用于避免陷入求解空间的局部最小。0同理:(2.14),1,ijijEvnj对于输出层的 :jkw(2.15)kjk jjkkjketEyntwnt对于隐藏层的 :ijv(2.16)jij iijjijetExvntvnt对于输出层和隐藏层各定义一个权值误差信号,令:(2.17),oykjkjEnetnet则:(2.
37、17),oyjkjijjiwvx对于输出层和隐藏层, 和 可以展开为:okyj(2.18)()kk kkkkOEEfnetnetnet(2.19)()jyj jjj jyfttt由公式(2.12)可得:东北大学秦皇岛分校毕业设计(论文) 第 12 页(2.20)()kkEdoO(2.21)1lkjkkj fnetwy其中由 Sigmoid 函数性质可知, ()()kfeto代入可得:(2.22)()(1)okkkkkEfntdoO同理可得:(2.23)1()()ly oj jkjjjfnetwy所以 BP 算法的权值调节计算公式为( 2.17) , (2.22 )和(2.23) 。再考虑各层的
38、偏置设置,隐藏层的净输出为:(2.24)1njijjetvx隐藏层偏置的更新为( 是偏置 的改变):jj(2.25),ojkjjj相应的,输出层的净输出为:(2.26)1njijjetwx输出层的偏置更新为( 是偏置 的改变):jj(2.27),yjjjjBP 算法虽然是经典的深度学习算法,但对于深层网络仍然有许多不足,主要原因就是 Sigmoid 函数易出现梯度减小甚至消失,这也是为什么最近的深层卷积神经网络利用 ReLU 函数代替 Sigmoid 函数的原因。2.1.3 随机梯度下降法由上面的 BP 算法的推导过程我们可以得知,每一次更新权值都需要遍历训练数据中的所有样本,这样的梯度算法叫
39、做批梯度下降(Batch Gradient Descent) 。假设我们的数据样本异常的大,比如达到数以百万计,那么计算量将异常的巨大。因此,实用东北大学秦皇岛分校毕业设计(论文) 第 13 页的算法不在是常规的梯度下降法算法,而是随机梯度下降法(Stochastic Gradient Descent, SGD) 。在 SGD 算法中,每次更新权值 的迭代,只计算一个样本数据。这样w对于一个具有数百万样本的训练数据而言,每完成一次遍历,就会对权值 更新数以w百万次,这将大大提升运算效率。由于存在样本的噪音和随机性,每次更新权值 并不一定会按照损失函数 减少的方向行进。尽管算法存在一定随机性,但
40、对于大量的E权值 更新来说,大体上是沿着梯度减少的方向前进的,所以最终也会收敛到最小值w的附近。下图 2.8 生动的展示了 SGD 和 BGD 的区别图 2.8 SGD 和 BGD 算法最小值逼近图 14如上图 2.8 所示,椭圆表示的是函数值的等高线,椭圆中心是函数的最小值点。红色是 BGD 的逼近曲线,而紫色是 SGD 的逼近曲线 14。从图中我们可以看到清楚的看到 BGD 算法是一直向着函数最小值的最低点前进的,而 SGD 明显随机(躁动)了很多,但从总体上看,仍然是向最低点逼近的。SGD 算法不仅仅效率高,而且它的随机性有时候并非坏事。现在我们研究的目标函数是一个凸函数,沿着梯度反方向
41、总能找到全局唯一的最小值。但是对于非凸函数来说,存在许多局部最小值。SGD 算法的随机性有助于逃离某些不理想的局部最小值,从而获得一个更好的网络架构模型。2.2 深度神经网络理论2.2.1 深度学习的核心思想东北大学秦皇岛分校毕业设计(论文) 第 14 页在现实生活中,人们为了解决某一个问题,比如文本或图像的分类,首先需要做的事情就是怎么样去表示这个对象,即必须抽取一些特征来表示这一个对象,因此特征对结果的影响非常大。在传统的数据挖掘方法中,特征的提取选择一般都是通过人,凭借人的经验或者专业知识纯手工选择正确特征,但是这样做效率很低,而且对于复杂的问题中,人工选择很有可能会陷入困惑,无法选择。
42、于是乎,人们开始寻找一种能够自动的选择特征,并且特征提取的准确率很高的方法。深度学习(Deep Learning)就能实现这一点,它能够利用多层次通过组合低层特征形成更抽象的高层特征,从而实现自动的学习特征,而不需要人参与特征的选取。假设我们有一个系统 ,它有 层( ) ,它的输入数据是 ,输出数据是Sn12,nS, X,可以非常形象地表示为: ,假设输出数据 等于输入YXY Y数据 ,即输入数据 经过这个系统之后没有任何的信息损失( ) ,这就表示输X 0E入数据 经过每一层 都没有任何的信息损失,所以每经过系统的一层都可以认为是iS输入数据 的另一种表示方式 16。对于深度学习,我们需要自
43、动地学习提取特征,对于一大堆输入 (文本或图像) ,经过一个系统 (有 层) ,我们通过调整系统中参Sn数,使得它的输出仍然是输入 ,那么我们就可以自动地获取得到输入 的一系列层XX次特征,即 。12,nS,对于深度学习来说,其思想就是堆叠多个网络层,这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。当然,前面提到的模型系统只是理想状态下的假设,并不一定能够达到,我们可以适当的放松这个限制,只要损失函数达到一个可以接受的范围。图 2.9 人脸特征提取过程图 16深度学习将深层的神经网络分成特征提取层和分类层,特征提取层就是自动提取特征信息,这是浅层学习 SVM 和
44、 Boosting 无法完成的,上面图 2.9 展示了特征学习的过程,可以看出复杂的图形一般是由一些基本结构组成,每一层的图形的形状组合出上一层的图形,这是一个不断抽象和迭代的过程,低级的特征组合出高级的特征。东北大学秦皇岛分校毕业设计(论文) 第 15 页2.2.2 卷积神经网络深度学习中最最经典的网络模型就是卷积神经网(CNN)络和循环神经网络(RNN ) 。1. 卷积神经网络简介卷积神经网络最早是由 Yann LeCun 教授和他的同事提出的,是一种专门为实现图像分类和识别而设计的深层神经网络。最经典的卷积神经网络是 LeNet-5,网络结构如下图 2.10 所示图 2.10 LeNet
45、-5 网络模型图 17利用 LeNet-5 实现手写体识别,也是非常经典的例子,下图 2.11 是 Yann LeCun 主页上实现手写体识别的演示图例。图 2.11 Yann Lecun 主页上 lenet-5 演示 17全连接神经网络之所以不适合做图像识别问题是因为参数太多,没有运用到图像像素之间的位置信息,网络层数受限(很难训练一个深层的全连接神经网络) 。而卷积神经网络之所以可以做图像识别就是因为解决了全连接神经网络的一些弊端,卷积神经网络相较于全连接神经网络的主要区别为:1) 局部连接:每一个神经元不需要和上一层神经网络的所有神经元连接,而是只东北大学秦皇岛分校毕业设计(论文) 第
46、16 页连接其中的一部分,这将大大减少参数的数量。2) 权值共享:一组连接可以共享同一个卷积核,这又减少了参数量。3) 下采样:可以利用池化层(Pooling )来减少参数量。下图 2.12 生动的解释了全连接和局部连接的差异,对于一个长宽分别为 1000 的图像作为输入,如果隐藏层有 1M 个神经元,全连接的话有 1012 个连接数,而采用了局部连接后,如果一个神经元只感知 的区域,连接数就下降为 108。10图 2.12 全连接和局部连接图 182. 卷积神经网络主要结构1)输入层。输入层是整个神经网络的输入,在处理图像的卷积神经网络中,它一般代表了一张图片的像素矩阵。其中三维矩阵的长和宽
47、代表了图像的大小,深度代表了图像的色彩通道(channel) 。比如黑白图的深度为 1,而在 RGB 色彩模式下,图像的深度为 3。从输入层开始,卷积神经网络通过不同的神经网络架构将上一层的三维矩阵转化为下一层的三维矩阵,直到最后的全连接层。2)卷积层。卷积层是一个网络最重要的部分。卷积层试图将神经网络中的每一个小块进行更加深入地分析从而获得抽象成都更高的特征。一般来说,通过卷积层处理过的节点矩阵会变得更深。3)池化层(Pooling ) 。池化层神经网络不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。通过池化层可以进一步缩小最后全连接层中节点的个数,从而达到减小整个神经网络中参数的目的。4
48、)全连接层。在经过多轮的卷积和池化之后,在卷积神经网络的最后一般会有 1到 2 个全连接层来给出最后的分类结果。经过几轮卷积和池化之后,可以认定图像中东北大学秦皇岛分校毕业设计(论文) 第 17 页的信息已经被抽象成了信息含量更高的特征。我们可以将卷积层和池化层看作是自动图像特征提取的过程。在特征提取之后,仍要用全连接层来完成分类问题。5)Softmax 层。Softmax 层主要用于分类问题。通过 Softmax 层可以得到当前样例属于不同种类的概率分布情况。3卷积神经网络输出值的计算1)卷积层输出值的计算卷积层神经网络结构中最重要的部分就是过滤器(filter)或者叫做内核(kernel) ,下图 2.13 显示了这一结构。过滤器可以将当前神经网络上的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵。单位节点矩阵就是长和宽都是 1,但深度不限的节点矩阵。图 2.13 卷积层过滤器结构示意图 18在一个卷积层中,过滤器所处理的节点矩阵的长和宽都是人为设定的,这个节点矩阵的尺寸也被称为过滤器的尺寸。因为过滤器处理的矩阵深度和当前