登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 通信工程 > 正文

基于生成对抗网络的手写字体生成毕业论文

 2020-02-17 09:02  

摘 要

本文借助配置好的anaconda和tensorflow环境完成了生成对抗网络模型的搭建,对生成网络和判别网络进行训练,实现了MNIST数据集手写字体生成,所得结果对于在机器学习中需要训练某个网络但是训练数据不足需要生成模型来生成数据来补足训练数据的情况具有重要的指导意义。

论文主要研究的工作是利用生成对抗网络以及它的衍生模型条件生成对抗网络来实现手写字体生成。在深度学习框架tensorflow中完成生成网络和判别网络的搭建,定义损失函数,设定优化算法,对生成网络和判别网络进行交叉训练,每隔一段时间生成网络输出图片测试图片质量,最终经过一定次数的训练生成网络能够生成以假乱真的手写字体。

本文的特色:不仅实现了利用原始的生成对抗网络完成手写字体生成,还实现了生成对抗网络的衍生模型条件生成对抗网络完成手写字体生成,并且效果很好。

关键词:生成对抗网络;tensorflow;深度学习;MNIST;

Abstract

In this paper, with the help of the configured anaconda and tensorflow environment, we succeeded to build the model of Generative Adversarial Network and generate the handwritten font of the MNIST data set by training the generative network and discriminative network. The results have important guiding significance in situation that in machine learning we need to train a network but wo don’t have sufficient training data so that we need the generative model to generate data to add to the training data as supplement.

The main work of this thesis is to generate handwritten fonts by Generative Adversarial Network and its derived model Conditional Generative Adversarial Network. In deep learning framework tensorflow we build the model of generative network and discriminative network, define the loss function, set optimization algorithm, train the two networks by cross training. Every once in a while the generative network output the images to test their quality, finally after a certain number of training the generative network can generate realistic-looking handwritten font.

The feature of this paper is that not only did we complete the handwriting font generation by using the original Generative Adversarial Network, but also we succeeded to use the evolution version of the original Generative Adversarial Network to achieve the generation of the handwritten font of the MNIST data set.

Key words: Generative Adversarial Network;tensorflow;deep learning;MNIST;

目录

摘要 I

Abstract II

第一章 绪论 1

1.1 研究目的及意义 1

1.2 国内外研究现状 1

1.3本文研究的基本内容 4

第二章 人工神经网络与生成对抗网络原理 5

2.1 人工神经网络原理 5

2.1.1人工神经网络概述 5

2.1.2 常用的损失函数和激活函数 6

2.1.3 前向传播 9

2.1.4 后向传播 10

2.2生成对抗网络原理 12

2.2.1生成模型与判别模型 12

2.2.2 KL散度与JS散度 12

2.2.3 目标函数 13

2.3 GAN的缺点以及衍生模型 16

2.3.1 GAN的不足 16

2.3.2 GAN的衍生模型 16

2.4 本章小结 19

第三章 基于GAN及其衍生模型实现手写字体生成 20

3.1 基于原始GAN实现手写字体生成 20

3.1.1 网络结构设计及实验过程 20

3.1.2 实验结果及分析 22

3.2 基于CGAN实现手写字体生成 26

3.2.1 网络结构设计及实验过程 26

3.2.2 实验结果及分析 29

3.3 本章小结 32

第四章 总结与展望 33

4.1 总结 33

4.2 展望 33

参考文献 34

致谢 36

第一章 绪论

1.1 研究目的及意义

生成对抗网络,英文表示为generative adversarial network,即GAN,是由谷歌公司在2014年提出的一种网络模型,是无监督学习领域很热门的一个研究方向。GAN由二人博弈中的零和博弈受到启发,通过网络架构中的生成网络和判别网络互相博弈、互相学习,最终使生成网络产生相当好的输出。

MNIST(Mixed National Institute of Standards and Technology)是一个入门级的计算机视觉数据集,数据集中都是美国中学生手写的数字。它的训练集包含6万张图片,测试集包含1万张图片,图片都是灰度图像,大小为28*28,图片中的数字事先被处理过(数字大小被调整到合适的尺寸并且格式居中)。这个数据集很小,但训练速度很快,而且收敛效果也很好,非常适合作为深度学习实战的例子去学习。

生成网络(generative network,G)和判别网络(discriminative network,D)构成了生成对抗网络。生成网络的输入为随机噪声,噪声服从高斯分布,输出的生成样本需要尽可能的靠近真实数据(也就是MNIST数据集中的数据);判别网络的输入为真实数据和生成数据,它的目的是鉴别真实数据和生成数据。生成网络和判别网络不断博弈、相互学习,不断调整各自的参数,最终使得生成网络生成的样本高度接近于真实样本。

生成式对抗网络训练的最终目的是如何从训练样本中学习出新样本。在很多的情况下,我们进行深度学习时,会面临缺乏数据的情况,这时我们可以利用生成对抗网络中的生成器生成数据进行补足,比如用在半监督学习中。生成式对抗网络取得的成果有很多,目前在图像生成[1]方面表现非常好,是深度学习研究的一个重要思路。

GAN相比传统的深度神经网络,有以下几个优点:第一,模型并没有用到马尔科夫链,只需要反向传播;第二,不需要对隐变量做推断;第三,构建生成网络和判别网络的要求不高,从理论上说,只要是可微分函数就行;第四,也是与传统方法差别最大的一条,生成网络的参数更新来自判别网络的梯度反向传播,并不是来自数据样本。

1.2 国内外研究现状

近些年来,随着科技的快速发展,各行各业的数据量快速增长,计算机的计算能力也大大提高,数据量的激增和计算能力的提高也极大地带动了人工智能的发展。人工智能的发展阶段分为感知阶段和认知阶段。在感知阶段,对应的算法模型为判别式模型;在认知阶段,对应的算法模型为生成式模型。在有监督学习领域,判别式模型大展身手,其领域中的预测任务和分类任务,比如生成对话、预测文本、语音识别、图像识别等都可以应用判别式模型得到很好的解决。生成式模型则与判别式模型不同,它的目的是通过给定的真实样本,学习它们的数据规律,然后生成新的数据。

基于模型的生成式算法和非基于模型的生成式算法是目前主要的两种生成式模型。通过事先假设数据的分布,之后再通过调节数据分布的参数来不断模拟真实数据,最后通过假设的数据分布得到生成数据的方式,这是基于模型的生成式算法的典型做法。非基于模型的算法不需要事先假设数据的分布,生成样本可以由没有假设分布的数据中得到。这两类模型从理解角度的不同可以分为两类:人类理解数据的生成式模型和机器理解数据的生成式模型[2]

从人类理解数据的角度出发,主要应用最大似然估计法、近似法[3]、马尔科夫链方法[4]等方法来解决问题,这是这类生成式模型的特点。在基于模型的生成式算法中,通常的做法是对数据(不论是显示变量还是隐式变量)作一个分布假设,然后对这个假设分布进行训练,更新参数,使其不断接近真实数据,最后通过学习好的分布生成新的样本。事先对数据作一个分布假设的方式有一个很大的缺点,就是对模型进行拟合的空间将受到约束,这极大地降低了生成式模型设计的自由度。比如,在最大似然估计中,参数更新直接来自于数据样本,训练数据的分布很容易影响学习到的生成式模型的质量;在近似法中,采用的方式是对目标函数的下界进行逼近,之所以这样做而不直接求解目标函数的原因是目标函数无法直接求解;和最大似然法和近似法相比,马尔科夫链方法有它的优势,它不仅能够用在生成式模型的训练上,还能够用在新样本的生成上,但马尔科夫链方法也有它的劣势,就是在于它的计算复杂度太高,不能有效应用。

和基于模型的生成式算法相比,非基于模型的算法摒弃了直接去拟合分布的方式,通过未假设的分布中得到生成数据,再通过数据对模型来修正。从研究角度看,非基于模型的生成式算法是从机器理解数据的角度出发的,虽然我们人类理解这种生成式模型生成数据的方式可能存在很大的困难,但是我们可以很轻松地理解它生成的样本,GAN就属于这样一种非基于模型的生成式模型。在GAN被提出之前,从机器理解数据的角度出发进行研究的工作大多集中在马尔科夫链方法上,但是就像刚才提到的,马尔科夫链方法有它的局限性,就是它的计算过于复杂,难以被推广应用。

Ian J. Goodfellow等人在2014 年提出了生成对抗网络这样一种生成式模型,包含一个生成器和一个判别器。生成器和判别器互为对手,生成器就好像一个骗子,而判别器就好像一个警察。生成器的目的是学习出真实数据的规律,然后使它生成的数据与真实数据很接近,让警察难以判断。而判别器的目的就是不让它被骗子欺骗,能够辨别出真实数据和生成数据。

生成式对抗网络有以下几个优点是其他生成式模型难以比拟的:第一,生成网络和判别网络交叉训练,生成的数据具有自然性解释的属性;第二,生成对抗网络生成的样本没有维度的限制,使得生成样本的范围大大增加,并且GAN可以整合各类损失函数,这极大地增加了设计的自由度;第三,GAN的训练过程做出了创新,它将两个神经网络的相互对抗、相互学习作为核心理念,然后使用梯度反传进行训练,它的训练过程抛弃了近似推理和变分下界等方式,极大地降低了训练难度和提高了训练效率;第四,GAN的训练过程不再应用复杂的采样序列,对新样本直接进行采样和推断,样本的生成效率得以提高;第五,在进行对抗训练的过程中,不再对真实数据进行复制或者平均,这丰富了生成样本的多样性。

自2014年生成对抗网络被提出以来,各种基于生成对抗网络的改进模型被提出。基于交叉熵的损失函数在原始GAN中被采用。在这种损失函数下,训练过程中容易发生梯度消失,将导致生成网络生成的数据与真实数据相似度低,达不到我们想要的生成数据高度模仿真实数据的效果。当生成数据与真实数据的差距很小或者没有差距时,这时将发生损失函数的值不再变化,从而导致梯度消失,参数不能继续更新,训练无法完成。为了解决原始生成对抗网络可能出现的梯度消失的问题,Martin Arjovsky等[5]提出了Wasserstein GAN(WGAN),与原始GAN不同,WGAN采用Earth Mover(EM)距离作为损失函数。EM距离是指对于两个不同的数据分布,移动其中一个数据的分布,当它与另外一个分布完全重合时,所经过的最小路径的和。通过改变损失函数的方式,梯度容易消失的问题在WGAN中不再出现,训练时容易崩溃的情况也得到改善。针对生成对抗网络训练过程初始阶段判别模型可能能力过强,能够完美的区分真实数据和生成数据,导致生成模型的梯度消失,生成模型无法得到训练,最终无法生成好的样本这一问题,Qi[6]提出了损失敏感生成对抗网络(LSGAN),LSGAN中的损失函数属于Lipschitz 连续性函数类,这将会约束判别模型的能力。除了上述两种改进模型外,还有一些衍生模型也被提出。例如,在原始GAN的基础上,文献[7]提出了循环一致生成网络(Cycle Consistent Generative Network,CycleGAN),CycleGAN能够做到不需要其他额外的信息就能将一张图像从源领域映射到目标领域,比如将马变成斑马,灰度图变成彩色图等。Odena[8]提出了半监督学习生成对抗网络(Semi-GAN),Semi-GAN中判别模型的训练将会被加上真实数据的标注信息。

1.3本文研究的基本内容

本文基于深度学习模型生成对抗网络来实现手写字体生成,对生成对抗网络的建模将在配置好的anaconda与tensorflow环境中完成。生成对抗网络包含一个生成器和判别器。生成器以高斯噪声作为输入,通过学习真实样本的特征,生成与真实样本高度相似的新的数据样本。判别器则作为二分类器,其目的是区别输入进来的真实数据和生成数据。我们需要通过单独交替训练的方式来优化生成器和判别器。训练过程中我们首先使生成器的相关参数不变,将真实数据和生成数据送入判别器,通过计算得到判别器的损失函数,之后通过梯度反传的方法对判别器的相关参数进行更新。更新完判别器的参数后,我们再来更新生成器的参数,方法类似,我们使判别器的参数不变,生成器生成数据样本送入判别器,判别器的输出和1之间组成了生成器的损失函数,再通过神经网络中的梯度反传更新生成器参数。通过一定次数这样的单独交替训练,最终整个生成对抗网络达到或者逼近纳什均衡状态,在这个状态下,训练已经很好地完成,生成器这个骗子伪造出来的样本判别器这个警察已经无法区分了。

判别器由全连接神经网络组成,由一个输入层、两个隐藏层和一个输出层组成。输入是一个28*28大小的图像,输出则为一个概率值,若大于0.5则表示判别器判断为真实样本,即MINST数据集;输出概率小于0.5表示判别器判断输入图像来自生成器生成的的样本。

生成器的结构同样是一个全连接神经网络,也是由一个输入层、两个隐藏层和一个输出层组成。输入是一定维度的高斯噪声,输出是28*28大小的图像,输出的图像需要尽可能的模拟真实样本。

生成器和判别器互相博弈,不断优化,最终达到或者逼近纳什均衡状态,生成器生成的样本接近于真实图像的分布,判别器无法判断图像是真还是伪。最后,我们得到一个生成器,用来生成手写字体。

第二章 人工神经网络与生成对抗网络原理

2.1 人工神经网络原理

2.1.1人工神经网络概述

人工神经网络,英文表示为Artificial Neural Networks,即ANN,早在1943年就已经由McCulloch和Pitts提出,他们对理想化的ANN进行了分析,随后指出了它们进行简单的逻辑运算的原理,提出了著名的M-P模型[9],在那之后,神经网络开始逐渐得到人们的关注。将近15年后,康奈尔大学的实验心理学家Frank Rosenblatt提出了一种叫作“感知机”的神经网络模型[10],它被认为是最早的神经网络,通过训练网络权重的方式来学习数据。伴随着Frank Rosenblatt出版的一本名为《神经动力学原理:感知机和大脑机制的理论》的书,感知机迅速获得了人们的关注,并被寄予了极高的期望。

然而,1969年,一本名为《感知机》的书详细地分析了感知机的使用范围,并明确提出对于简单的异或逻辑问题,感知机都由于其线性而无法解决,而现实中的问题大多都不是线性可分的。尽管在5年后,Werbos的博士论文证明了,只要在感知机的网络中多加一层,并且利用“后向传播”的学习方法,就可以解决异或问题,但是人们依然对感知机持悲观的态度。不仅如此,这种看法还扩大到所有的神经网络科学上,以至于对整个神经网络的研究陷入了停滞状态。

从20世纪70年代开始,人们对神经网络的研究热情不断下降。与此同时,以Vapnik为首的科学家创造性地提出了VC维的概念,以及结构风险最小化原则。随着这个理论的深入,经过20年的摸索后,Cortes和Vapnik等人在1993年提出了“支持向量机”(Support Vector Machine),成功地将其应用于实际问题中。SVM旨在利用核(Kernel)技巧把非线性问题转换成线性问题,解决了感知机不能解决的问题,一时间独领风骚。同时,Vapnik等统计机器学习理论专家从理论的角度怀疑神经网络的泛化能力,学术界对神经网络的研究也更加趋于悲观。

尽管如此,在这长达半个世纪的冰河期,依然有神经网络学家在坚守着自己的阵地。1982年,Hopefield提出一种新的神经网络,宣告着破冰期的到来,相当一部分模式识别的问题由于它的出现而得到解决,并且它还在解决组合优化问题方面做出了突破,给出了近似解。1986年,Rummelhart和McClelland再次提出了神经网络的学习算法——后向传播。利用这种算法形成的网络为BP神经网络,一种多层前馈神经网络,BP神经网络的特征是信号正向传播,误差反向传播,它是目前人们使用最普遍的人工神经网络。

人工神经网络可以总结为受到生物学神经网络概念的启发,将网络拓扑知识作为其理论上的基础,通过模拟生物学上神经网络对信息的处理方式来对复杂信息进行处理的一种数学模型。人工神经网络由若干个神经层组成,每个神经层有若干个神经元,相邻层神经元之间互相连接,每个神经元分为两部分,前半部分为上层网络经过处理后的响应值,后半部分为响应值经过激活函数的处理得到的输出值。神经网络具备非线性的拟合能力正是由于激活函数的引入。相邻层神经网络中的神经元两两相连,连接的强弱关系由加权值表示,称为权重(weight),神经网络就是通过这种方式来模拟信息在网络层之间的传递。

神经网络的结构如图2.1所示,它的结构分为输入层、隐藏层和输出层,其中隐藏层可以包含若干层。输入层负责接收原始的训练数据,将数据送进神经网络中,方便后续处理。隐藏层负责对数据的特征进行学习,在训练过程中会不断调整训练参数。输出层负责输出经神经网络处理后的结果。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图