




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)基于深度学习的图像超分辨率重建研究院 别数学与统计学院专业名称信息与计算科学班级学号5133117学生姓名楚文玉指导教师张琨2017年06月10日基于深度学习的图像超分辨率重建研究摘 要人工神经网络凭借其超强的学习能力,使得人工智能得到迅猛的发展,让人工神经网络再次成为研究热点。目前深度学习已经广泛应用于计算机视觉,语音处理,自然语言处理等各个领域,甚至在某些领域已经起到了主导作用。单一图像超分辨率重建技术旨在将一个低分辨率图像经过一系列算法重构出对应的高分辨率图像。目前比较成熟的方法有基于频域法,非均匀图像插值法,凸集投影法,最大后验概率法以及稀疏表示法。本文主要研究利用深度学习实现单一图像超分辨率重建。本文首先简要介绍人工神经网络的发展历程,然后介绍深度学习在计算机视觉方面的应用。然后介绍神经网络的一些理论知识,最后介绍深度学习中的卷积神经网络(CNN, Convolutional Neural Network)。本文研究如何利用卷积神经网络实现超分辨率重建。卷积神经网络分为三层结构,第一层的作用是特征块的提取和表示,第二层的作用是非线性映射,第三层的作用是重建出高分辨率图像。本文首先将一个图像降采样再双三次插值作为低分辨率图像,作为卷积神经网络的输入,而高分辨率图像作为卷积神经网络的输出,利用卷积神经网络建立低分辨率,高分辨率之间的映射。最后针对该模型进行改进,再加入一层作为特征提取。最后利用深度学习框架TensorFlow实现上述模型。最后研究快速超分辨率重建模型,并针对模型层数和过滤器大小进行改进,与先前实验做比对。关键字:超分辨率重建,卷积神经网络,深度学习,TensorFlowImage Super-Resolution Using Deep learning Author: Chu Wen-yuTutor: Zhang KunAbstractArtificial Neural Network 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) 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 method 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 vision. 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 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 images 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 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, Convolution neural network, Deep learning,TensorFlow目 录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的超分辨率重建算法研究213.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致 谢36参考文献37附 录 A39附 录 B441 绪论1.1 课题背景及意义从2016年AlphaGo完胜李世石到2017年5月战胜柯洁等诸多世界围棋顶级高手,人工智能和深度学习这些概念再次引起了学术界的关注。谷歌、脸书、阿里巴巴、百度等众多国内外互联网公司纷纷宣布要将人工智能作为他们的下一个战略重心1。在类似AlphaGo、无人机驾驶汽车等最新技术的背后,深度学习是推动这些技术发展的核心力量。目前我们所熟知“深度学习”基本上是深层神经网络的一个代名词,而神经网络技术可以追溯1943年。深度学习之所以看起来像一个新技术的原因是在21世纪初期并不是很流行。神经网络的发展史大致可以分为三个阶段。早期的神经网络模型类似于仿生机器学习,它试图模仿大脑的学习机理。最早是在1943年由Walter Pitts教授和Warren McCulloch教授提出的McCulloch-Pitts Neuron(MP)计算结构模型,大致模拟了人类神经元的工作原理,使用了简单的线性加权和的方式来模拟变换2。Frank Rosenblatt教授在1958年提出了一个感知机模型(perceptron)3。它首次实现了依据样本数据集来学习权重。这两个模型深深的影响了现代机器学习,为现代机器学习奠定了基础,但自身也存在许多不足。Seymour Paper教授和Marvin Minsky教授在1969年出版的Perceptron书中证明了感知机模型只能解决线性可分问题,无法解决异或问题。在之后的十几年里,关于神经网络的研究全部处于停滞状态。直到20世纪80年代末,第二波神经网络研究热潮因为分布式知识表达(distributed representation)和神经网络反向传播算法的提出而重新兴起。这大大增强了模型的表达能力,让神经网络从宽度的方向走到了深度的方向。这为之后的深度学习奠定了基础。1986年David Everett Rumelhart教授、Geoffrey Everset Hinton教授和Ronald J. Willians教授在自然杂志上发表的Learning Representations by Back-propagating errors文章中首次提出了反向传播算法(BP)3,此算法大幅降低了训练神经网络的时间。直达今天仍是训练神经网络的主要方法。现如今使用的一些神经网络结构,比如卷积神经网络和循环神经网络,在这个阶段取得了显著的成就。Sepp Hochreiter教授和Juergen Schmidhuber教授于1991年提出的long short-term memory(LSTM)模型可以有效的对较长的序列进行建模,比如一段文字和语音等。直到今天LSTM都是解决自然语言处理,语言识别的有效方法。然而,之后神经网络研究再度步入寒冬。在神经网络发展前景不好的时候,传统的神经网络学习算法却得到了突破性的进展,并在90年代末超过了神经网络,成为当下最先进的方法。典型的案例是1998年,使用支持向量机(SVM)的算法在手写体识别上,可以把错误率降低到0.8%,这是神经网络无法做到的。导致这种情况的原因主要是因为在当时的计算资源下,训练深层的神经网络仍然非常困难,其次,当时的数据量比较小,无法满足训练深层神经网络的需求。随着计算机性能的进一步提高,以及云计算、GPU的出现,到2010年左右,计算量不再是阻碍神经网络发展的问题。与此同时,随着互联网+的发展,获取海量的数据也不在困难。于是乎新的神经网络高潮再次来临。在2012ImageNet举办的图像分类竞赛ILSVRC中,由Alex Krizhevsky教授实现的深度学习系统AlexNet赢得了冠军。自此之后深度学习作为深层神经网络的代名词被大家所熟知。在2013年,深度学习被麻省理工(MIT)评为了年度十大科技突破之一4。在2013年的ImageNet比赛中,效果较好的模型都是使用深度学习。2014年ImageNet比赛,谷歌的GoogLeNet加深网络深度到20多层,将top5错误率降到了6.656%。在2012年微软亚洲研究院(Microsoft Research Asia,MSRA)二十一世纪计算大会(21st Century Computing)上,微软高级副总裁Richard Rashid现场演示了微软开发的由英文到汉语的同声传译系统。深度学习在图像识别领域的突破掀起了学术界的研究热潮,而深度学习在人机博弈上的突破使得这个概念深入人心。在2016年3月谷歌开发的围棋人工智能系统AlphaGo以4:1战胜韩国棋手李世石,成为人工智能历史上的一个里程碑。而在今年AlpahGo再次战胜我国顶级围棋高手柯洁,让人们对人工智能更加的憧憬。深度学习的热潮也深深影响了我,让我对深度学习产生了浓厚的兴趣。图像超分辨率重建在现阶段已经非常成熟,但是利用深度学习去做超分辨率重建的案例并不多,借着深度学习,神经网络的热潮,研究深度学习下的超分辨率重建。1.2 国内外研究现状单一图像超分辨率重建是计算机视觉的经典问题。本部分主要介绍深度学习在计算机视觉方面的研究现状以及传统的超分辨率重建方法的研究现状。深度学习算法最早尝试应用的领域就是计算机视觉问题。1989年,Yann LeCun教授提出了卷积神经网络(CNN)的概念,它是一种包含卷积层的深度神经网络模型。起初卷积神经网络在小规模的问题上取得了非常好的效果,但是却没有取得重大突破。归其原因就是卷积神经网络对大图像处理得不到理想的效果。直到2012年深度学习算法AlexNet赢得图像分类比赛ILSVRC冠军,卷积神经网络才得以重新被热议研究。ILSVCR是基于ImageNet图像数据集的图像识别类比赛,在计算机视觉领域有极高的影响力。从2013年开始,ILSVRC上基本都是深度学习在参赛。从2012年到2015年间,通过对深度学习算法的不断研究,ImageNet图像分类的错误率以每年4%的速度递减。这说明深度学习完全打破了传统机器学习算法在图像分类上的瓶颈,让图像分类问题得到了更好的解决。2015年在自然科学杂志上刊登的深度学习综述Deep Learning5,对现在的深度学习理论进行了总结,文章中提到了用ReLu函数代替Sigmoid函数成为最流行的作用函数,加上GPU加速运算等,这些共同促进了深度学习在图像识别的成功,给计算机视觉领域带来了一场革命。国内互联网巨头百度公司将深度学习相关技术应用到计算机视觉上,推出了一系列产品,并且聘请了美籍华人科学家Andrew Ng (吴恩达)主导百度的深度学习,取得了显著的成果,在2017年的最强大脑中,由吴恩达科学团队设计的小度智能机器人,与国内外顶级最强大脑进行对决,未尝败绩。图像超分辨率重建算法大致可以分为基于插值的算法6、基于重建的算法7和基于学习的算法8。其中基于插值的算法中,尤其是Keys在1985年提出的双三次插值算法,至今仍然应用在各个计算机视觉领域。当放大倍数较小时,双线性插值,最近邻算法以及双三次插值都可以得到显著的效果。基于重建的算法中,比较突出的是盲超分辨重建,从低分辨率图像预估出高分辨率和模糊核9。基于学习的超分辨率重建是近年来比较热门的研究方向,Freeman等人将机器学习方法成功应用到图像超分辨率重建问题上,但是该算法低分辨率面片和低分辨率输入之间不能完全匹配,会引入错误的细节。Sun等人在此基础上做了改进,增强图像中的边缘等基元10。Chang等人提出了一种基于局部嵌入的图像超分辨率算法11。Yang等人结合压缩感知理论,利用信号的稀疏表示精简训练样本得到学习字典12。最近几年深度学习比较热门,汤晓鸥团队提出利用CNN实现超分辨重建,他将基于深度学习的方法和基于稀疏表示的方法对比,得出基于稀疏表示的方法是深度学习神经网络中的一种表示形式13,并且实验得到的结果比稀疏表示要好。1.3 论文的内容结构本部分主要介绍本文的主体架构:第一部分介绍了课题的研究背景及意义,先简要介绍了深度学习的发展历程,然后介绍深度学习以及图像超分辨率重建国内外的研究现状。第二部分主要介绍深度学习的基础理论知识,包括人工神经网络基础理论,学习训练网络方法,BP算法,以及卷积神经网络基础理论介绍,还有TensorFlow深度学习框架介绍。第三部分主要介绍基于卷积神经网络(CNN)的图像超分辨率重建模型,包括网络层的搭建,数据集的制作,模型训练,反馈学习等。然后将模型层数加深进行算法改进,最后学习快速超分辨率重建技术,针对模型的层数和过滤器尺寸进行改进。第四部分介绍算法实验分析和总结,针对实验效果,模型复杂程度,训练时间等方面进行分析比对。第五部分对这次论文进行归纳总结,分析不足,提出可行性的建议。2 深度学习理论2.1 人工神经网络理论人工神经网络(Artificial Neural Network, ANN),基于生物学中神经网络的基本原理,模仿大脑神经创建的数学模型。它有并行的分布处理能力、高容错性、自我学习等特征。神经网络中最基本的单元是神经元,也叫感知器,如下图所示:图2.1 简单神经元的示意图14可以看到,一个神经元由如下部分组成:l 输入权值:一个神经元可以接受多个输入,每个输入都有一个权值以及一个偏执项l 激活函数:用来做非线性映射,比如Sigmoid函数,又称S形函数 (2.1)l 输出:神经元的输出由下面公式计算 (2.2) 利用感知器可以实现布尔运算,例如可以利用感知器实现AND函数。我们可以令,激活函数选择阶跃函数 (2.3)则当为真时(真为1,假为0),输出结果为真,其余为假。事实上,感知器不但能够实现简单的逻辑布尔运算,还可以拟合出任何的线性函数。感知器还可以用来解决线性分类问题,回归问题。前面的布尔逻辑运算可以看作是一个二分类问题,回归问题,输出真或假(0或1)。同样感知器也可以用来实现线性分类问题,如下图2.2所示所示,要将三角形和圆形分类,就需要使用AND感知器,每一条直线叫做一个分类器,每一个分类器可以做一次线性分类,取下侧,取上侧,然后AND运算,即可实现分类。理论上利用线性分类器可以实现所有的区域划分。011图2.2 简单线性分类图2.1.1 神经网络基础理论本节主要介绍神经网络的理论模型,学习方式,学习规则(算法),激活(作用)函数,BP算法等。1神经网络模型下图2.3所示为简单神经网络的结构模型图。最左边的层叫做输入层,输入数据为,最右边的层叫做输出层,输出数据为。输入层和输出层之间的层叫做隐藏层。含多个隐藏层的神经网络叫做深度神经网络。深层神经网络相比较浅层神经网络对于拟合任意一个函数而言,浅层神经网络浅而宽,需要大量的神经元,而深层神经网络深而窄,需要更多的层,较少的神经元。一般深层网络节省资源,但是深层网络并不好训练,需要大量的数据,很好的技巧才能去拟合,训练出好的网络。2学习方式神经网络的学习方式很多,根据一种广泛的分类方式,可以将其分为三大类:l 有监督学习:又叫有导师学习,将训练样本的数据加入到神经网络的输入端,将期望答案和实际输出做差,可以得到误差信号,通过控制误差信号来调整权值得大小,以此来适应新的环境。l 无监督学习:又称无导师学习,起初并不给定标准数据样本,而是直接将网络置于环境之中,由自身根据数据特征进行学习。l 增强学习:又称作再励学习,输入信息介于有监督和无监督之间,不需要给定标签,但需要对网络的输出做出评判(奖励),以此来调整网络参数。图2.3 简单神经网络的示意图143学习规则学习规则,其实就是用来修改神经网络的权值和偏置值的过程和方法,其目的就是为了训练网络,更好的拟合我们的需求,完成特殊的任务。常见的学习规则有Hebb学习规则,Delta算法以及最经典的BP算法。BP算法会在下一节详细介绍。4激活(作用)函数激活函数,又叫激励函数,主要作用是对神经元所获得的输入的变换,反应神经元的特性。常用的激活函数有如下几种类型: (1) 线性函数 (2.4)其中,为常量。线性函数常用在线性神经网络中。(2) 符号函数 (2.5)(3) 对数函数(Sigmoid函数) (2.6)对数函数又称S性函数,其图像如下图2.4所示,是最为常见的激活函数,它将区间映射到的连续区间。特别的,是关于处处可导的,并且有的导数。图 2.4 sigmoid函数图像(4) 双曲正切函数 (2.7)图2.5 双曲正切函数tanh函数图像(5) 高斯函数 (2.8)(6) ReLU函数 (2.9)也可表示为。最近几年神经网络中,ReLU激活函数得到了广泛的应用,尤其在卷积神经网络中,往往不选择Sigmoid或Tanh函数,而是选择ReLU函数,原因有以下几点:a) 速度快:和Sigmoid函数必须计算指数和导数比较,ReLU代价小,速度更快。b) 减轻梯度消失问题:对于梯度计算公式,其中是Sigmoid的导数,在经过BP算法求梯度下降的时候,每经过一层Sigmoid神经元,都要乘以,但是的最大值是1/48,所以会导致梯度越来越小,这对于训练深层网络是一个大问题,但是ReLU函数的导数为1,不会出现梯度下降,更易于训练深层网络。c) 稀疏性:有研究发现,人脑在工作时只有大概5%的神经元是激活的,而Sigmoid函数大概有50%的神经元是激活的,而人工神经网络在理想状态时有大概15%-30%的激活率,所以ReLU函数在小于零时是完全不激活的,所以可以适应理想网络的激活率要求。图2.6 ReLU函数图像说明:没有一种完美的激活函数,不同的网络有不同的需求函数,需要根据具体的模型选取合适的激活函数。2.1.2 BP反向传播算法BP算法学习过程分为两个子过程,即工作信号正向传递子过程和误差型号反向传递子过程。应用到深度学习中就是正向传播求损失,反向传播求偏导15。其完整的学习过程是,对于一个训练样本,输入正向传播到输出,产生误差,然后误差信号反向从输出层传递到输入层,利用该误差信号求出权重修改量,通过它更新权,称为一次迭代过程。当误差或者仍不满足要求是,重复上述操作。图2.7 神经网络模型以上图2.7中的三层神经网络模型为例,来说明BP算法的原理及推导求解过程。1) 工作信号正向传播过程该网络分为三层,设输入层到隐藏层的权值为,隐藏层到输出层的权值为,输入层单元的个数为,隐藏层,输出层单元个数。并采用Sigmoid函数。输入层的输入向量,隐藏层输出向量,并有: (2.10)其中,偏置充当阈值,用来改变单元的活性。同样输出层向量,并有: (2.11)2) 误差信号反向传递过程设为期望输出,为实际输出,为损失函数(误差信号),定义为: (2.12)其中,为输出层第个单元的期望输出,是样本的第个单元的世纪输出。 损失函数展开到隐藏层: (2.12)损失函数展开到输入层: (2.13)可以看到损失是一个关于权值的函数,要使损失函数最小,就要沿着梯度的反方向。为使最小化,可以选择任意初始点,从出发沿着梯度下降的方向走,可使得下降最快,所以取: (2.14)其中,是一个学习效率,取值,用于避免陷入求解空间的局部最小。同理: (2.14)对于输出层的: (2.15)对于隐藏层的: (2.16)对于输出层和隐藏层各定义一个权值误差信号,令: (2.17)则: (2.17)对于输出层和隐藏层,和可以展开为: (2.18) (2.19)由公式(2.12)可得: (2.20) (2.21)其中由Sigmoid函数性质可知,代入可得: (2.22)同理可得: (2.23)所以BP算法的权值调节计算公式为(2.17),(2.22)和(2.23)。再考虑各层的偏置设置,隐藏层的净输出为: (2.24)隐藏层偏置的更新为(是偏置的改变): (2.25)相应的,输出层的净输出为: (2.26)输出层的偏置更新为(是偏置的改变): (2.27)BP算法虽然是经典的深度学习算法,但对于深层网络仍然有许多不足,主要原因就是Sigmoid函数易出现梯度减小甚至消失,这也是为什么最近的深层卷积神经网络利用ReLU函数代替Sigmoid函数的原因。2.1.3 随机梯度下降法由上面的BP算法的推导过程我们可以得知,每一次更新权值都需要遍历训练数据中的所有样本,这样的梯度算法叫做批梯度下降(Batch Gradient Descent)。假设我们的数据样本异常的大,比如达到数以百万计,那么计算量将异常的巨大。因此,实用的算法不在是常规的梯度下降法算法,而是随机梯度下降法(Stochastic Gradient Descent, SGD)。在SGD算法中,每次更新权值的迭代,只计算一个样本数据。这样对于一个具有数百万样本的训练数据而言,每完成一次遍历,就会对权值更新数以百万次,这将大大提升运算效率。由于存在样本的噪音和随机性,每次更新权值并不一定会按照损失函数减少的方向行进。尽管算法存在一定随机性,但对于大量的权值更新来说,大体上是沿着梯度减少的方向前进的,所以最终也会收敛到最小值的附近。下图2.8生动的展示了SGD和BGD的区别图2.8 SGD和BGD算法最小值逼近图14如上图2.8所示,椭圆表示的是函数值的等高线,椭圆中心是函数的最小值点。红色是BGD的逼近曲线,而紫色是SGD的逼近曲线14。从图中我们可以看到清楚的看到BGD算法是一直向着函数最小值的最低点前进的,而SGD明显随机(躁动)了很多,但从总体上看,仍然是向最低点逼近的。SGD算法不仅仅效率高,而且它的随机性有时候并非坏事。现在我们研究的目标函数是一个凸函数,沿着梯度反方向总能找到全局唯一的最小值。但是对于非凸函数来说,存在许多局部最小值。SGD算法的随机性有助于逃离某些不理想的局部最小值,从而获得一个更好的网络架构模型。2.2 深度神经网络理论2.2.1 深度学习的核心思想在现实生活中,人们为了解决某一个问题,比如文本或图像的分类,首先需要做的事情就是怎么样去表示这个对象,即必须抽取一些特征来表示这一个对象,因此特征对结果的影响非常大。在传统的数据挖掘方法中,特征的提取选择一般都是通过人,凭借人的经验或者专业知识纯手工选择正确特征,但是这样做效率很低,而且对于复杂的问题中,人工选择很有可能会陷入困惑,无法选择。于是乎,人们开始寻找一种能够自动的选择特征,并且特征提取的准确率很高的方法。深度学习(Deep Learning)就能实现这一点,它能够利用多层次通过组合低层特征形成更抽象的高层特征,从而实现自动的学习特征,而不需要人参与特征的选取。假设我们有一个系统,它有层(),它的输入数据是,输出数据是,可以非常形象地表示为:,假设输出数据等于输入数据,即输入数据经过这个系统之后没有任何的信息损失(),这就表示输入数据经过每一层都没有任何的信息损失,所以每经过系统的一层都可以认为是输入数据的另一种表示方式16。对于深度学习,我们需要自动地学习提取特征,对于一大堆输入(文本或图像),经过一个系统(有层),我们通过调整系统中参数,使得它的输出仍然是输入,那么我们就可以自动地获取得到输入的一系列层次特征,即。对于深度学习来说,其思想就是堆叠多个网络层,这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。当然,前面提到的模型系统只是理想状态下的假设,并不一定能够达到,我们可以适当的放松这个限制,只要损失函数达到一个可以接受的范围。图2.9 人脸特征提取过程图16深度学习将深层的神经网络分成特征提取层和分类层,特征提取层就是自动提取特征信息,这是浅层学习SVM和Boosting无法完成的,上面图2.9展示了特征学习的过程,可以看出复杂的图形一般是由一些基本结构组成,每一层的图形的形状组合出上一层的图形,这是一个不断抽象和迭代的过程,低级的特征组合出高级的特征。2.2.2 卷积神经网络深度学习中最最经典的网络模型就是卷积神经网(CNN)络和循环神经网络(RNN)。1. 卷积神经网络简介卷积神经网络最早是由Yann LeCun教授和他的同事提出的,是一种专门为实现图像分类和识别而设计的深层神经网络。最经典的卷积神经网络是LeNet-5,网络结构如下图2.10所示图2.10 LeNet-5网络模型图17利用LeNet-5实现手写体识别,也是非常经典的例子,下图2.11是Yann LeCun主页上实现手写体识别的演示图例。图2.11 Yann Lecun主页上lenet-5演示17全连接神经网络之所以不适合做图像识别问题是因为参数太多,没有运用到图像像素之间的位置信息,网络层数受限(很难训练一个深层的全连接神经网络)。而卷积神经网络之所以可以做图像识别就是因为解决了全连接神经网络的一些弊端,卷积神经网络相较于全连接神经网络的主要区别为:1) 局部连接:每一个神经元不需要和上一层神经网络的所有神经元连接,而是只连接其中的一部分,这将大大减少参数的数量。2) 权值共享:一组连接可以共享同一个卷积核,这又减少了参数量。3) 下采样:可以利用池化层(Pooling)来减少参数量。下图2.12生动的解释了全连接和局部连接的差异,对于一个长宽分别为1000的图像作为输入,如果隐藏层有1M个神经元,全连接的话有1012个连接数,而采用了局部连接后,如果一个神经元只感知的区域,连接数就下降为108。图2.12 全连接和局部连接图182. 卷积神经网络主要结构1)输入层。输入层是整个神经网络的输入,在处理图像的卷积神经网络中,它一般代表了一张图片的像素矩阵。其中三维矩阵的长和宽代表了图像的大小,深度代表了图像的色彩通道(channel)。比如黑白图的深度为1,而在RGB色彩模式下,图像的深度为3。从输入层开始,卷积神经网络通过不同的神经网络架构将上一层的三维矩阵转化为下一层的三维矩阵,直到最后的全连接层。2)卷积层。卷积层是一个网络最重要的部分。卷积层试图将神经网络中的每一个小块进行更加深入地分析从而获得抽象成都更高的特征。一般来说,通过卷积层处理过的节点矩阵会变得更深。3)池化层(Pooling)。池化层神经网络不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。通过池化层可以进一步缩小最后全连接层中节点的个数,从而达到减小整个神经网络中参数的目的。4)全连接层。在经过多轮的卷积和池化之后,在卷积神经网络的最后一般会有1到2个全连接层来给出最后的分类结果。经过几轮卷积和池化之后,可以认定图像中的信息已经被抽象成了信息含量更高的特征。我们可以将卷积层和池化层看作是自动图像特征提取的过程。在特征提取之后,仍要用全连接层来完成分类问题。5)Softmax层。Softmax层主要用于分类问题。通过Softmax层可以得到当前样例属于不同种类的概率分布情况。3卷积神经网络输出值的计算1)卷积层输出值的计算卷积层神经网络结构中最重要的部分就是过滤器(filter)或者叫做内核(kernel),下图2.13显示了这一结构。过滤器可以将当前神经网络上的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵。单位节点矩阵就是长和宽都是1,但深度不限的节点矩阵。图2.13 卷积层过滤器结构示意图18在一个卷积层中,过滤器所处理的节点矩阵的长和宽都是人为设定的,这个节点矩阵的尺寸也被称为过滤器的尺寸。因为过滤器处理的矩阵深度和当前神经网络节点矩阵的深度是相同的,所以尽管过滤器的节点矩阵是三维的,但是只需给出二维矩阵即可。另外一个需要人为设定的是过滤器的深度,也即输出单位节点矩阵的深度。如上图2.13所示,左侧小矩阵的尺寸为过滤器的尺寸,而右侧单位矩阵的深度为滤波器的深度。为了清楚的解释卷积神经网络的卷积计算,我们以一张简单的图片作为输入,Filter选取,步长为1,得到一个的Feature Map,用表示输入图像的第行第列的像素点。用表示过滤器的第行第列的值,表示权值偏置(bias),用表示Feature Map的第行第列的值。激活函数选取ReLU函数,则卷积操作可以由下面的公式计算: (2.28)例如对于下图2.14所示,Feature Map左上角的来说,其计算方法为: 图2.14 简单图片卷积计算示意图18然后可以依次计算出所有的值。上例中步长(stride)为1,当步长变为2时,Feature Map的尺寸变成了2x2,这是由以下公式(2.29)决定的。 (2.29)上式中,输出的特征图的宽,表示输入的图像的宽,表示过滤器的宽,是填充零的圈数,是步幅。长和宽等价,所以图像的长也可以用上式计算。以上就是卷积层卷积的计算,体现了卷积神经网络的局部连接和权值共享特性,通过卷积操作,参数的数量大幅降低。2)池化层的计算池化层可以有效的缩小矩阵的尺寸,从而减少最后全连接层的数量。使用池化层既可以加快计算速度也可以有效的防止过拟合问题。池化的方式很多,最常用的池化方式是最大池化(Max Pooling)和平均池化(Average Pooling)。与卷积层的过滤器类似,池化层的过滤器也需要设置尺寸,唯一不同的是池化层的过滤器只影响一个深度上的节点,即主要减小矩阵的长和宽,不减少矩阵的深度,虽然池化层可以减少矩阵的深度,但是在实际应用中不会这样使用。下图2.15展示了一个最大池化的例子。图2.15 最大池化的计算过程示意图18从上图2.15可以清晰的看出,池化层只减小了矩阵的长和宽,并未减少矩阵的深度。2.3 TensorFlow简介Tensorflow是由Jeff Dean领头的谷歌大脑团队基于谷歌内部第一代深度学习系统DistBelief改进而来19,并在2015年11月9日正式在GitHub上发布的开源的计算框架,并且在2016年4月补充了分布式版本,在2017年3月有了1.0版本,API接口趋于稳定。目前TensorFlow仍处于快速开发迭代中,有大量新功能及性能优化在持续研发中。TensorFlow既是一个实现机器学习的借口,同时也是执行机器学习算法的框架。它前端支持Python、C+、Go、Java等多种开发语言,后端使用C+、CUDA等写成。除了执行深度学习算法,TensorFlow还可以用来实现其他一些算法,包括线性回归,随机森林,逻辑回归等。TensorFlow建立的大规模深度学习模型的应用也很广泛,包括语音识别,计算机视觉,机器人控制,信息抽取,药物研发等。TensorFlow使用数据流式图来规划计算流程,它可以将计算映射到不同的硬件和操作系统平台。凭借着统一的架构,TensorFlow可以方便地部署到各大平台,大大简化了真实场景中应用机器学习的难度。使用TensorFlow我们不需要给大规模的模型训练和小规模的模型训练分别部署两套不同的系统,避免了同时维护两个版本的成本,TensorFlow给训练和预测的共同部分提供一个恰当的抽象。TensorFlow可以让用户简单的实现并行计算,同时使用不同的硬件资源进行训练,同步或异步地更新全局共享的模型参数和状态。TensorBoard是TensorFlow的一组Web应用,用来监控TensorFlow的运行过程,或可视化Computation Graph。TensorBoard目前支持5种可视化:标量(scales)、图片(images)、音频(audio)、直方图(histograms)和计算图(Computation Graph)。TensorBoard的Events Dashboard可以用来持续地监控运行的关键指标,比如loss、学习率(learning rate)或是验证集上的准确率(accuracy);Image Dashboard则可以展示训练过程中用户设定保存的图片,比如某个训练中间的结果用Matplotlib等绘制(plot)出来的图片;Graph Explorer则可以完全展示一个TensorFlow的计算图,并且支持缩放拖拽和查看节点属性。下图2.16和图2.17是我实验的一个在MNIST数据集上测试的卷积神经网络的可视化效果图。图2.16 测试模型准确率示意图图2.17 测试模型框架示意图3 基于SRCNN的超分辨率重建算法研究3.1 SRCNN模型简介SRCNN模型是汤晓鸥团队设计的一款基于卷积神经网络的单一图像超分辨率重建模型13,该模型结构异常简单,只用了三层的神经网络结构,分别用来代替传统的稀疏表示的SR的三个步骤12。模型结构图如下图3.1所示。图3.1 SRCNN模型示意图13该模型首先将一个低分辨率图像通过双三次插值(Bicubic Interpolation)放大到目标大小,再通过三层的卷积层做非线性映射,最后重建出高分辨率图像。该模型的每一层都可以对应解释传统的SR模型的过程,如第一层卷积对应特征提取和表示,第二层卷积对应非线性映射,第三层卷积对应最后的重建。设定三次插值之后的图像为作为输入,作为原始图像,第一层卷积网络可以用下式(3.1)计算出输出为: (3.1)其中和代表过滤器和权值偏置,*代表卷积操作,表示个过滤器,其中表示通道数,对于彩色图而言就是3,代表个偏置。最终训练之后调整的参数为。第二层卷积神经网络对于第一层生成的个特征图(Feature Map)映射为个特征图,计算公式为: (3.2)其中和代表过滤器和权值偏置,*代表卷积操作,代表个过滤器,代表个偏置,这里相当于取。第三层是重建,利用如下公式建立重建层: (3.3)其中表示个的过滤器,表示个偏置,这里。3.2 SRCNN模型的改进SRCNN采用Caffe深度学习框架和Matlab实现,而最近Google开源的TensorFlow深度学习框架凭借其优越性已经逐渐替代Caffe的地位,尤其Caffe对于时间序列RNN、LSTM等支持的不是很充分。SRCNN模型采用了9-1-5的模型结构,我们可以试图增加模型的层数,相对于特征提取只有一层,可能会有噪声,信息提取不理想等问题,尝试采用了双层的特征提取,然后依次经过第三层卷积,视为全连接层的非线性映射,最后经过第四层重建出最后的高分辨率图像。下图3.2所示为改进的模型结构简单示意图。图3.2 改进的SRCNN模型示意图相比较卷积神经网络实现MNIST手写体识别分类问题,它通过不断地卷积和池化将输入数据压缩为一个只有的向量,形象的说就是不断地将矩阵加厚,横截面却不断的减小,最后经过全连接层压缩为一个只有10个数的向量。但是超分辨率重建并不需要压缩为10个数的向量进行分类,而是在尽量不缩小图像的情况下还能的到较好的高分辨率输出。从上面的模型可以更直观的看到端到端的映射。并且没有加入池化层,池化层可以减小图片的大小,从而减少参数,减少计算量,提高训练速度,但是我们的目的是超分辨率重建,当池化之后图像缩减之后可能造成图片的主要信息丢失,所以我们试图在双层特征提取之后,进行插值放大,然后再加入池化,此时的池化已经不是传统意义上的缩小图像大小,相反它是为了放大图像的大小,从而使得最终的输出图像大小尽量接近输入图像大小,避免造成图像主要信息的丢失。3.3 改进的模型的实现3.3.1 数据集制作本文的数据集采用ImageNet-91数据集,包含91张图片,测试集采用SRCNN模型的Set5和Set14数据集,分别包含5张和14张图片。首先将原始彩色RGB图像转化为YCrCb格式,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年如何应对烷基化工艺作业的面试挑战答案全解析
- 2025年建筑工程施工现场管理面试宝典与模拟题集
- 2025年软件开发工程师面试宝典知识点预测题
- 2025年物资储备仓库运输调度员职位面试高频词汇解析与答案
- 申诉业务知识培训课件
- 2025年中级炼油装置操作工技能考核大纲及样题解析
- 甲状腺超声TI-RADS分类课
- 脑卒中吞咽障碍护理
- 青少年普法宣传教育宣讲
- 单元统整教学课件模板
- 电力行业防汛应急预案演练脚本(2篇)
- 初中语文单元写作教学的分层教学设计研究
- 2025年高端车库租赁服务与车位抵押贷款一体化管理合同
- 2025年国家网络安全知识竞赛题库及参考答案
- 2025年叉车工初级考试题库
- 个人信用征信服务合同
- 航空航天检测技术
- 2025年水手理论考试题库
- 第9课 让我们的学校更美好 第1课时(课件)2025-2026学年道德与法治三年级上册统编版
- 《RWA 技术规范》标准草案
- 稳定基金管理办法
评论
0/150
提交评论