人工智能引论课件 第八章 人工神经网络与深度学习_第1页
人工智能引论课件 第八章 人工神经网络与深度学习_第2页
人工智能引论课件 第八章 人工神经网络与深度学习_第3页
人工智能引论课件 第八章 人工神经网络与深度学习_第4页
人工智能引论课件 第八章 人工神经网络与深度学习_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章人工神经网络与深度学习8.1人工神经网络概述8.2感知机学习8.3反传学习8.4

Hebbian一致性学习8.5深度神经网络8.1人工神经网络概述人工神经网络(ArtificialNeuralNetwork,ANN)是从信息处理角度对人脑神经元进行抽象,建立其行为机制模型,并按照不同的连接方式组成不同的网络结构,进而模拟神经元网络动作行为的一门科学技术。芬兰科学家T.Koholen的定义:“人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。”人工神经网络是一种模仿人脑结构及其功能的智能信息处理系统。8.1人工神经网络概述生物神经元的结构构成神经系统的两大部分:神经元和胶质细胞神经元是神经系统的基本结构和功能单位,具有感受刺激和传导兴奋的作用,负责接收外界刺激,并进行信息的加工传递和处理胶质细胞负责协助神经元的活动提升神经细胞动作电位的传播速度为神经元提供营养并维持适宜的局部环境8.1人工神经网络概述输入端输出端神经元之间的接口,实现信息传输神经元与其他细胞的区别就是由细胞体和突起组成,突起包括轴突和树突人类大脑可视作为1000多亿神经元组成的神经网络生物神经元的结构8.1人工神经网络概述生物神经元的结构根据突触对下一个神经元的功能活动的影响,突触分为兴奋性和抑制性两种兴奋性的突触可引起下一个神经元兴奋抑制性的突触使下一个神经元抑制神经元膜电位是它所有突触产生的电位总和,当该神经元的膜电位升高到超过一个阈值时,会产生一个脉冲。人工神经元的设计灵感正是来源于这种生物学上神经元的信息传递机制。8.1人工神经网络概述神经元数学模型人工神经元模型可看成是一个多输入单输出的非线性处理单元。前半部分对前方所有神经元的输出进行线性加权求和;后半部分通过激活函数

f处理以产生神经元的输出。xi—神经元的输入;ωi—突触权重;θ—神经元的激活阈值f()—神经元的激活函数y—神经元的输出8.1人工神经网络概述神经元数学模型:激活函数激活函数是一种在人工神经网络中引入的函数,能够用来加入非线性因素,提高人工神经网络对模型的表达,解决线性模型不能解决的一些问题激活函数负责将神经元的输入映射到输出端,决定了要发送给下一个神经元的内容激活函数需要满足:非线性几乎处处可导单调性8.1人工神经网络概述神经元数学模型:激活函数——Sigmoid函数把输入的连续实数映射为0到1之间的输出(8-2)Sigmoid函数和导函数图像8.1人工神经网络概述神经元数学模型:激活函数——Sigmoid函数优点其值域为(0.1),可用于将预测概率作为输出的模型连续函数,导数易求对每个神经元的输出进行了归一化缺点梯度消失问题指数计算代价大非零均值8.1人工神经网络概述神经元数学模型:激活函数——Tanh函数双曲正切函数,把输入的连续实数映射为-1到1之间的输出Tan函数和导函数图像(8-4)8.1人工神经网络概述神经元数学模型:激活函数——Tanh函数优点具有Sigmoid函数的所有优点零均值缺点梯度消失问题指数计算代价大8.1人工神经网络概述神经元数学模型:激活函数——ReLU函数又称为修正线性单元,它提供了一个简单的非线性变换ReLU函数和导函数图像(8-6)8.1人工神经网络概述神经元数学模型:激活函数——ReLU函数优点计算简单,收敛速度快缓解了梯度消失问题缺点神经元坏死:输入值为负,其梯度始终为0,会导致神经元不能更新参数非零均值化8.1人工神经网络概述神经元数学模型:激活函数——LeakyReLU函数有漏洞的ReLULeakyReLU函数和导函数图像(8-8)8.1人工神经网络概述神经元数学模型:激活函数——LeakyReLU函数优点具有ReLU函数的所有优点解决了ReLU函数神经元死亡的问题缺点无法为正负输入值提供一致的关系预测8.1人工神经网络概述神经元数学模型:激活函数——Softmax函数常用于多分类问题的输出层(8-10)Softmax函数图像8.1人工神经网络概述神经元数学模型:激活函数——Softmax函数优点在分类问题中,Softmax可以将神经网络的输出转换为概率分布,表示每个可能类别的概率大小Softmax函数的输出值不受输入值的缩放影响缺点对异常值比较敏感在处理类别不平衡的数据时可能会出现问题8.1人工神经网络概述神经元数学模型:激活函数增加非线性表达饱和函数:Sigmoid、Tanh非饱和函数:ReLU、LeakyReLU小结激活函数的选择和调整方法对于模型的性能和训练效果具有重要影响在实际应用中,可以通过调整参数、组合激活函数或使用自适应激活函数等方法来优化神经网络模型的性能8.1人工神经网络概述人工神经网络的结构输入层隐含层输出层ω11ω34输入层隐含层输出层输入层负责接收外部的信息,并传递给下一层神经元隐含层负责对信息进行处理,不断调整神经元之间的连接属性输出层负责对计算的结果进行输出可利用梯度下降算法,通过指定的损失函数,来学习网络的权重。8.1人工神经网络概述人工神经网络的结构人工神经网络的基本原理:如果只知道输入和相应的输出,而不清楚如何从输入得到输出的机制,可以将输入和输出之间的关系看作一个“网络”通过反复提供输入和相应的输出来对这个网络进行“训练”,使得网络能够根据输入和输出动态调整各节点之间的权值以适应输入和输出的关系。当训练完成时,给定一个输入,网络就能利用已经调整好的权值计算出输出8.1人工神经网络概述人工神经网络的结构几点结论:人工神经网络输入层与输出层的节点数往往是固定的,根据数据本身而设定;隐含层数和隐含层节点数则由设计者决定人工神经网络模型图中的箭头代表预测过程中数据的流向,与学习训练阶段的数据流动方向不同。每层神经元与下一层的多个神经元相连接,每条连接线都有独自的权重参数。连接线上最终的权重参数是通过训练得到的人工神经网络中的神经元相互连接的方式有很多种,常用的连接方式包括全连接、卷积连接和循环连接、残差连接、注意力连接等8.1人工神经网络概述人工神经网络的特点自学习和自适应性。给神经网络输入新的训练样本,网络能够自动调整结构参数,改变映射关系非线性。人工神经元处于激活或抑制状态,表现为数学上的非线性关系鲁棒性与容错性。局部的损害会使人工神经网络的运行适度减弱,但不会产生灾难性的错误计算的并行性与存储的分布性。每个神经元都可以根据接收到的信息进行独立运算和处理8.1人工神经网络概述人工神经网络的局限性人工神经网络的研究受到脑科学研究成果的限制。人工神经网络缺少一个完整、成熟的理论体系。人工神经网络的研究带有浓厚的策略和经验色彩。人工神经网络与传统技术的接口不成熟。8.2感知机学习1957年,美国康奈尔大学的心理学家FrankRosenblatt提出了一个只有两层神经元的神经网络模型,史称感知机(Perceptron)。在Cornell航空实验室中,Rosenblatt成功在IBM704机上完成了感知机的仿真。1959年,他又成功实现了能够识别一些英文字母、基于感知机的神经计算机——Mark1,并于1960年向公众展示。感知机是第一个从算法上可以完整描述的人工神经网络,它的出现把神经网络研究从理论引向了实践。Rosenblatt和Mark1感知机8.2.1感知机的结构和原理感知机即单层神经网络,含输入层和输出层两层神经元。数据直接连接输入层神经元,输出层神经元对其输入进行加权求和,并通过激活函数来得到输出。感知机模型实际上仍然是MP模型的结构。图8-13单层感知机的结构8.2.1感知机的结构和原理感知机只能做简单的线性可分任务,它不能解决非线性分类问题,甚至不能解决异或这样的简单分类任务。当激活函数为线性函数时,单层神经网络权重一般可得到显式解。处理二分类问题时,常采用对称硬极限传输函数hardlims,此时感知机的输出为可利用梯度下降算法,通过指定的损失函数,来学习网络的权重。(8-11)8.2.1感知机的结构和原理设输入向量x=[x1,x2],直线方程ω1x1+ω2x2-θ=0将二维平面内的样本数据分为两部分,处在直线上方的样本数据用“o”表示,它们使净输入与偏置之差大于等于0,输出结果为+1;处在直线下方的样本数据用“*”表示,它们使净输入与偏置之差小于0,输出结果为-1。可利用梯度下降算法,通过指定的损失函数,来学习网络的权重。图8-14单层感知器对二维样本的分类两输入的情况感知机的权值和偏置值确定了分界线在样本空间的位置,调节感知机的权值和偏置值,总是可以找到一条分界线,将二维空间内的样本分为两类。8.2.1感知机的结构和原理设输入向量x=[x1,x2,x3],则该输入向量在几何空间上形成了一个三维空间,由式(8-11)可知,直线方程ω1x1+ω2x2+ω3x3-θ=0将三维空间内的样本数据分为两类。与两输入的情况类似,当净输入与偏置之差大于等于0时,输出+1;当净输入与偏置之差小于0,输出-1。三输入的情况设输入向量x=[x1,x2,…,xn],则输入在几何上构成了一个n维空间,方程ωTx-θ=0在n维空间内构成了一个超平面,通过改变感知机的权值和偏置值的大小,从而改变该超平面的位置,最终可将输入的样本数据分为两类。n输入的情况8.2.2感知机学习算法感知机学习算法的基本思想是逐步地将样本输入到网络中,根据输出的结果和理想输出之间的差值来调整网络中的权值矩阵。目标函数为

式中,C是误分类集合,W为权值向量。假设误分类集合C是固定的,则损失函数L(W,θ)的梯度为

(8-12)(8-14)(8-15)8.2.2感知机学习算法在误分类点集合C中,随机选取一个误分类点,按照梯度下降法的规则进行计算,得到新的W和θ,对其进行更新,即通过迭代不断更新W和θ的值,使损失函数L(W,θ)不断减小,直至为0。此时,训练集中没有误分类点,分类过程结束。单层感知机对于线性可分问题处理得非常有效,不管是二维输入还是高维输入,一个感知机就可把空间分为两个区域。(8-16)(8-17)8.2.2感知机学习算法单层感知机对线性不可分问题无法进行正确的分类,如“异或”问题。x1x2y000011101110表中的数据可分为0和1两类,把这四个样本

数据标在下图所示的平面直角坐标系中。从图中可以看出,在坐标系中不存在任何一条直线可以将这四个样本数据分为两类,该现象称为线性不可分。通过感知器的几何意义可知,单层感知器的分类判决方程是线性方程,所以单层感知器无法解决线性不可分的问题。8.2.3delta规则1986年,认知心理学家McClelland和Rumelhart在神经网络训练中引入了delta学习规则。delta学习规则是一种简单的有监督学习算法,该算法根据神经元的实际输出与期望输出差别来调整连接权,数学表达式为

其中,ωij表示神经元j到神经元i的连接权,di是神经元i的期望输出;yi是神经元i的实际输出;xj是神经元j的状态;α是学习速度(0<α<1)。(8-18)8.2.3delta规则更一般地,我们用下面的损失函数E来描述实际输出和期望输出之间的误差:为了使E最小化,权值向量W应与误差的负梯度成正比,即

式中,比例系数η是一个正常数,表示学习速度的快慢。误差梯度为(8-19)(8-20)(8-21)8.2.3delta规则将(8-21),代入(8-20),可得权值调整计算式:

式中,

netj是网络的输出,即△Wj式中每个分量的调整由下式计算:delta规则是一种利用梯度下降法的学习规则,应用delta规则时,神经网络的激活函数必须是连续的和可微分的。delta规则可推广到多层前馈网络中,权值可初始化为任意值。(8-22)(8-23)8.2.3delta规则delta规则可以被描述为下面的步骤:随机初始化权重;使用网络进行预测;计算误差项;根据误差项调整权重;重复以上步骤,直到误差收敛或达到预定的迭代次数。经典学习规则除了delta规则外,还有反传学习、Hebbian一致性学习等。8.3反传学习为了能够对线性不可分问题进行分类,克服单层感知机的局限性,在输入层与输出层之间增加隐含层,隐藏层不直接接受外界信号也不直接向外界发送信号,每个隐藏层都有多个神经元,每个神经元都可以对应一个激活函数,该结构即为多层感知机。图8-16有隐含层的神经网络结构图8.3.1有隐含层的神经网络多层感知机中,每一个输入都与所有神经元连接,每个隐藏层之间的神经元又相互连接,故称为全连接。具有单一隐藏层的神经网络被称为浅层神经网络或普通神经网络;一个包含两个或两个以上隐藏层的多层神经网络被称为深度神经网络。多层感知机的学习规则与单层感知机有相似之处。在分类这个大范畴内,不论感知机层数的多寡,一般都采用有监督的学习(或训练)模式。事先设定好误差容限。当网络的训练误差进入误差容限范围内,就停止训练,固定当前的权值和阈值。8.3.2误差反向传播算法在1986年,Rumelhant和McClelland提出了多层前馈网络的误差反向传播(ErrorBackPropagation,BP)学习算法。BP网络是一种按照误差反向传播算法训练的多层前馈网络,它由信息的正向传播和误差的反向传播两个过程组成。8.3.2误差反向传播算法图8-17三层BP网络对输入层节点i,有:对隐含层节点j,有:对输出层节点k有:信息的正向传播i、j、k表示输入层、隐含层、输出层节点Oi、Oj、Ok表示输入层节点i、隐含层节点j、输出层节点k的输出。Ii、Ij、Ik表示输入层节点i、隐含层节点j、输出层节点k的输入。ωij、ωjk表示从输入层节点i到隐含层节点j、从隐含层节点j到输出层节点k的连接权值。θj、θk表示隐含层节点j、输出层节点k的阈值。(8-28)8.3.2误差反向传播算法图8-17三层BP网络顺序学习方式,如果仅针对一个输入样本,其实际输出与期望输出的误差定义为:批处理学习方式,定义其总体误差:连接权值的调整公式为:误差的反向传播对样本集中的第r个样本,其输出层节点k的期望输出用drk表示,实际输出用yrk表示。其中,drk由训练模式给出,yrk为由公式计算得出的网络输出。ωjk(t)为第t次迭代时,从节点j到节点k的连接权值;ωjk(t+1)为第t+1次迭代时,从节点j到节点k的连接权值;△ωjk为连接权值的变化量。(8-32)8.3.2误差反向传播算法为了使连接权值能沿着E的梯度下降的方向逐渐改善,网络逐渐收敛,权值变化量Δωjk的计算公式如下输出层节点令局部梯度为:综合以上式子,可得η为增益因子,取[0,1]区间的一个正数,其取值与算法的收敛速度有关(8-38)8.3.2误差反向传播算法针对不同的层,对局部梯度δk分别进行讨论节点k为输出层节点,则Ok=yk,因此f′(Ik)=f(Ik)[1−f(Ik)],且f(Ik)=yk整理以上各式,可得(8-46)8.3.2误差反向传播算法针对不同的层,对局部梯度δk分别进行讨论节点k为隐含层节点,此时有δk=δjOj=f(Ij−θj)(8-51)式表明,低层节点的δ值是通过上一层节点的δ值来计算的。这样可以先计算输出层上的δ值,然后把它返回到较低层上,并计算各较低层上节点的δ值。(8-51)8.3.2误差反向传播算法针对不同的层,对局部梯度δk分别进行讨论节点k为隐含层节点,此时有δk=δj(接上页)f′(Ij)=f(Ij)[1−f(Ij)]由于,将其转化为隐函数的变化量,有:得隐含层权值更新公式:(8-52)(8-55)(8-54)8.3.2误差反向传播算法以三层BP网络为例,基于顺序学习方式的BP学习算法图8-18BP学习算法的流程ωij和ωjk分别是输入层到隐含层和隐含层到输出层的连接权值;R是训练集中训练样本的个数,其计数器为r;T是训练过程的最大迭代次数,其计数器为t初始化时ωij、ωjk、θj、θk均赋以较小的一个随机数;学习增益因子η为[0,1]区间的一个正数;误差阈值ε为很小的正数8.3.2误差反向传播算法BP学习算法的讨论主要优点:算法推导清楚,学习精度较高;从理论上说,多层前馈网络可学会任何可学习的东西;经过训练后的BP网络,运行速度极快,可用于实时处理。主要缺点:由于它的数学基础是非线性优化问题,因此可能陷入局部最小区域;学习算法收敛速度很慢,通常需要数千步或更长,甚至可能不收敛;网络中隐含层节点的设置无理论指导。为了解决陷入局部最小区域问题,通常需要采用模拟退火算法或遗传算法为了提高算法收敛速度,可采用逐次自动调整增益因子,或修改激活函数f(x)的方法来解决8.4Hebbian一致性学习Hebbian一致性学习是一种神经科学中的学习规则,它描述了神经元之间如何通过增强或削弱连接来学习和记忆信息。该规则基于加拿大心理学家DonaldHebb在1949年提出的观点。Hebbian规则的核心思想是“细胞之间的连接加强是由于它们同时激活”,即当一个神经元的活动引起另一个神经元的活动时,这两个神经元之间的连接就会加强。神经心理学研究证实了Hebb的观点:相互连接的神经元之间刺激的短暂接近能够改变神经元细胞之间的连接强度8.4Hebbian一致性学习假如i和j是相互连接的神经元,i的输出是j的输入。右表中,Oi代表i的输出值的符号,Oj代表j的输出值的符号。Oi*Oj为i和j连接权值的调整量为ΔW的符号。当Oi和Oj符号相同时,权值的调整量ΔW是正的当Oi和Oj符号相反时,权值的调整量ΔW是负的OiOjOi*Oj++++---+---+表8-2节点输出值的符号和运算结果8.4.1无监督Hebbian学习在无监督学习中,事先不知道输入数据的标准输出,权重调整只能依靠神经元输入和输出之间的函数。节点i的权值调整量ΔW为

式中,c是学习常量(0<c<1)。f是神经元i的输出,X是神经元i

的输入向量(8-56)8.4.1无监督Hebbian学习无监督Hebbian学习的算例图中的网络有两层,输入层有6个节点,输出层有1个节点输出层返回+1,表示输出神经元被激活返回-1,表示输出神经元静止。学习常量c取0.2,网络的输入X0由视频输入[1,-1,1]和音频输入[-1,1,-1]组成,取X0=[1,-1,1,-1,1,-1]T。其中,[1,-1,1]表示无条件的刺激,[-1,1,-1]表示有条件的刺激(新的刺激)。8.4.1无监督Hebbian学习无监督Hebbian学习的算例(接上页)假定网络已经能对无条件的刺激(视频信息)做出正确的反应,但是对于新的刺激(音频信息)没反应。权值向量[1,-1,1]刚好匹配输入模式,因此用它来模仿网络对无条件刺激的正确反应;用权值向量[0,0,0]模仿网络对新刺激的无反应状态。这两个权值向量连接在一起就是网络的初始权值向量W0=[1,-1,1,0,0,0]。网络训练过程中,希望产生一组权值向量,使得网络能对新刺激做出正确的反应。第一次循环如下:W0X0

=(1*1)+(-1*-1)+(1*1)+(0*-1)+(0*1)+(0*-1)=(1)+(1)+(1)=3

得到网络的输出

f(3)=sign(3)=18.4.1无监督Hebbian学习无监督Hebbian学习的算例(接上页)——权值更新由,可得新的权值向量W1:

W1=[1,-1,1,0,0,0]+0.2×(1)×[1,-1,1,-1,1,-1]=[1.2,-1.2,1.2,-0.2,0.2,-0.2]把新的权值向量W1应用于原始的输入模式:

W1X0=(1.2×1)+(-1.2×-1)+(1.2×1)+(-0.2×-1)+(0.2×1)+(-0.2×-1)=4.2得到网络的输出

sign(4.2)=1用同样的方法,产生新的权值向量W2:W2=[1.2,-1.2,1.2,-0.2,0.2,-0.2]+0.2×(1)×[1,-1,1,-1,1-1]=[1.4,-1.4,1.4,-0.4,0.4,-0.4]经过10次Hebbian训练,得到权值向量如下:

W10=[3.4,-3.4,3.4,-2.4,2.4,-2.4]8.4.1无监督Hebbian学习无监督Hebbian学习的算例(接上页)——网络测试(1)首先用无条件刺激[1,-1,1]测试(后三个元素任意赋值为1和-1)X1=[1,-1,1,1,1,-1]T得到网络输出为:sign(W10X1)=sign((3.4×1)+(-3.4×-1)+(3.4×1)+(-2.4×1)+(2.4×1)+(-2.4×-))=sign(12.6)=+1从结果可以看出,网络可以对原先的无条件刺激[1,-1,1]做出积极的反应。其次,测试网络对新刺激的反应,新刺激模式是输入向量X0的后面三个分量编码为

[-1,1,-1]X2=[1,1,1,-1,1,-1]

T得到网络输出为:sign(W10X2)=sign((3.4×1)+(-3.4×-1)+(3.4×1)+(-2.4×1)+(2.4×1)+(-2.4×-1))=sign(10.6)=+1可以看出,新刺激的模式也被识别出来了。8.4.1无监督Hebbian学习无监督Hebbian学习的算例(接上页)——网络测试(2)最后用轻微退化的模式测试X3=[1,-1,-1,1,1,-1]T(前三个分量有一个跟原来的无条件刺激模式[1,-1,1]不同,后三个分量也有一个同条件刺激模式不同)得到网络输出为:sign(W10X3)=sign((3.4×1)+(-3.4×-1)+(3.4×-1)+(-2.4×1)+(2.4×1)+(-2.4×-1))=sign(5.8)=+1结果表明,部分退化的刺激也被识别出来了Hebbian学习模型通过反复地把老刺激和新刺激一起呈现,在新刺激和老反应之间建立了一种关联。网络在没有监督的情况下,学习把这种反应转移到新的刺激上。无监督Hebbian学习规则目的是自动学习输入与输出之间的相关性。这种学习规则没有预先设定的目标函数或期望输出,因此在用于控制系统时,它能够自适应地学习控制系统的动态特性,从而实现更好的控制性能。8.4.2有监督Hebbian学习Hebbian学习规则中,当连接权值的调整是基于期望的输出时,则为有监督的学习。假设训练样本以有序对的形式给出,{[X1,Y1],[X2,Y2],…,[Xt,Yt]},Xi的长度是n,Yi的长度是m。则可以设计下面的两层网络:输入层有n个神经元,输出层有m个神经元8.4.2有监督Hebbian学习在有监督的学习中,用期望的输出向量D代替实际输出f(X,W)对输出层中节点k运用Hebbian学习规则,得到:输入向量X=[x1,x2,…,xn],输出向量Y=[d1,d2,…,dm]T。把公式用于输出层的每一个节点和权值,△Wik是输入节点i到输出节点k的权值的调整量,dk是节点k的期望输出,xi是X的第i个分量。其中,8.4.2有监督Hebbian学习第i组数据[Xi,Yi]调整权值:对整个训练集合,有:将W0初始化为[0,0,…,0],学习常数c设为1,可得用(8-74)设置权值把输入向量映射到输出向量的网络叫做线性联想器(linearassociator)W0是初始权值(8-74)(8-72)8.4.2有监督Hebbian学习有监督Hebbian学习规则以期望的输出作为训练目标,所以在神经网络控制系统中,能更准确地训练控制器,从而提高控制器的稳定性和性能。但由于需要预先设定期望输出,这种学习规则可能受到外部干扰和噪声的影响,导致性能下降。在实际应用中,需要根据具体情况选择合适的学习规则如果系统动态特性难以预测且需要自适应地进行在线调整,可以考虑使用无监督Hebbian学习规则如果控制器已经被充分设计和优化,可以考虑使用有监督Hebbian学习规则以进一步提高性能。8.5深度神经网络深度神经网络(DeepNeuralNetworks,DNN),通常指隐含层神经元不少于2层的神经网络。从理论上来讲,深层网络和浅层网络的基本结构和数学描述是相似的,都能够通过函数逼近表达数据的内在关系和本质特征。DNN是深度学习的网络基础,典型的深度网络结构有深度自编码器、卷积神经网络、循环神经网络和生成对抗网络等。8.5.1自编码器自编码器(Autoencoder)作为一种生成模型,从不带标签的数据中学习低维特征表达,通过对原图进行编码—解码的过程构造特征,同时使解码后重构的图尽可能与原图相同。基本的自编码器是一种三层神经网络模型,包含了输入层、隐含层(中间层)、输出重构层。编码器也是一种无监督学习模型,目的在于通过不断调整参数,重构经过维度压缩的输入样本。自编码器令每个样本的标签为y=x8.5.1自编码器自编码器的基本结构标准的自编码器也是具有层次结构的系统,而且是一个关于中间层对称的多层前馈网络,其期望输出与输入相同,用来学习恒等映射并抽取无监督特征。右图为单隐含层自编码器,隐含层用于输入编码,并通过解码在输出层对输入进行重构。8.5.1自编码器自编码器的训练过程训练的目标是使网络的输出尽量逼近输入,理想情况是输出完全等于输入,根据输出与输入相同这一原则训练调整参数,得到每一层的权重

自编码器的训练过程包括两个阶段:编码阶段和解码阶段

在编码阶段,自编码器将输入数据映射到低维特征空间中,以尽可能少的信息损失为目标;在解码阶段,自编码器将低维特征向量映射回原始数据空间中,以尽可能准确地重建原始数据为目标。8.5.1自编码器自编码器的训练过程设输入向量为x,编码器将输入x变换为新的编码信号

解码过程中,解码器将r重新投影到原信号空间变换为解码信号自编码器的目的就是尽可能使输出信号

复现输入信号x,即使重构误差

尽可能小W1和b1分别代表输入层与隐含层之间的权重和偏置,f(·)表示隐含层的激活函数;W2和b2分别代表隐含层与输出层之间的权重和偏置,g(·)表示输出层的激活函数。(8-75)(8-76)8.5.1自编码器自编码器的衍生类型——降噪自编码器降噪自编码器的网络结构与自编码器一样,只是对训练方法进行了改进。自编码器是把训练样本直接输入给输入层,而降噪自编码器则是通过向训练样本中加入随机噪声得到的样本输入给输入层。随机噪声服从均值为0,方差为σ2的正态分布。目的是训练神经网络,使得重构结果不含噪声的样本之间的误差收敛于极小值,误差函数对不含噪声的样本进行测试,降噪自编码能够实现两项训练:一是保存样本数不变的条件下,提取能够更好地反映样本属性的特征;二是消除输入样本中包含的噪声。8.5.1自编码器自编码器的衍生类型——稀疏自编码器将稀疏正则化引入自编码器中,提出了稀疏自编码器。通过增加正则化项,大部分单元的输出都变成了0,因此能够利用少数单元有效完成压缩或重构。图8-23稀疏自编码示意图

8.5.1自编码器自编码器的衍生类型——堆栈自编码器自编码器、降噪自编码器以及稀疏自编码器都是包括编码器和解码器的3层结构。但是在进行维度压缩时可以只包括输入层和中间层,把输入层和中间层多层堆叠后,就可以得到堆栈自编码器。堆栈自编码器是逐层训练。从第二层开始,前一个自编码器的输出作为后一个编码器的输入。首先训练第一个自编码器,然后保留第一个自编码器的编码器部分,并把第一个自编码器的中间层作为第二个自编码器的输入层进行训练,后续过程反复地把前一个自编码器的中间层作为后一个自编码器的输入层进行迭代训练。通过多层堆叠,堆栈自编码器能够有效地完成输入模式的压缩。

8.5.1自编码器自编码器的衍生类型——堆栈自编码器自编码器、降噪自编码器以及稀疏自编码器都是包括编码器和解码器的3层结构。但是在进行维度压缩时可以只包括输入层和中间层,把输入层和中间层多层堆叠后,就可以得到堆栈自编码器。堆栈自编码器是逐层训练。从第二层开始,前一个自编码器的输出作为后一个编码器的输入。首先训练第一个自编码器,然后保留第一个自编码器的编码器部分,并把第一个自编码器的中间层作为第二个自编码器的输入层进行训练,后续过程反复地把前一个自编码器的中间层作为后一个自编码器的输入层进行迭代训练。通过多层堆叠,堆栈自编码器能够有效地完成输入模式的压缩。

8.5.1自编码器自编码器的衍生类型——堆栈自编码器堆栈自编码器是一种典型的深度神经网络,被广泛用于特征学习与表示。先逐层贪婪学习来确定参数,再从最顶层反向传播来微调整个网络的参数。图8-24堆栈自编码器自顶向下的训练与微调过程8.5.1自编码器自编码器的学习算法包括无监督预训练和有监督调优两个步骤无监督预训练把相邻两层看作一个受限玻尔兹曼机(RestrictedBoltzmannMachine,RBM),每个RBM的输出是下一个紧邻RBM的输入,逐层对所有RBM采用无监督学习算法进行训练,预训练的全称为贪婪逐层无监督预训练。步骤如下:随机初始化网络参数。使用对比散度算法(如CD-k)训练第一个RBM,该RBM的可视层为网络输入x,隐含层为h1。对1≤i≤r,把hi-1作为第i个RBM的可视层,把hi作为第i个RBM的隐含层,逐层训练RBM。反向堆叠预训练好的RBM,初始化r+1到2r层的自编码器参数。有监督微调通常采用BP算法从输出层到输入层逐层实现对网络参数的调整。8.5.2卷积神经网络卷积神经网络(ConvolutionalNeuralNetwork,CNN),是一种由若干卷积层和子采样层交替叠加形成的一种深层网络结构。其出现受生物界“感受野”概念的启发,采用逐层抽象、逐次迭代的工作方式。卷积神经网络的基本结构通常由三部分组成:第一部分为输入层,第二部分由多个卷积层和池化层交替组合而构成,第三部分由一个全连接层和输出层所构成8.5.2卷积神经网络基本结构(1)卷积层:作用是进行特征提取。其基本思想是:自然图像有其固有特征,从图像某一部分学到的特征同样能够用到另一部分上。或者说,从一个大图像中随机选取其中的一小块图像作为样本块,那么从该样本块学到的特征同样可以应用到这个大图像的任意位置。右图输入层图像的大小为32×32,选择的样本块大小5×5,假设已经从这个5×5的样本块中学到了一些特征,这些特征可以被应用到该32×32的图像中。从卷积神经网络的角度,要想得到整个图像的卷积特征,就需要对整个图像中的每个5×5的小图像块都进行卷积运算。8.5.2卷积神经网络基本结构(2)池化层:也称下采样层,其作用是为了减小参数规模,降低计算复杂度。池化层的思想比较简单,就是要把卷积层中每个尺寸为k×k的池化空间的特征聚合到一起,形成池化层对应特征图中的一个像素点。8.5.2卷积神经网络基本结构(3)全连接层和输出层:全连接层的作用是实现图像分类,即计算图像的类别,完成对图像的识别。输出层的作用是当图像识别完成后,将识别结果输出。8.5.2卷积神经网络学习算法——信号的正向传播过程(1)卷积神经网络的训练过程,由计算信号的正向传播过程和误差的反向传播过程组成。卷积神经网络的正向传播过程是指从输入层到输出层的信息传播过程,该过程的基本操作包括:从输入层到卷积层或从池化层到卷积层的卷积操作,从卷积层到池化层的池化操作,以及全连接层的分类操作。卷积操作的基本过程是:针对图像的某一类特征,先构造其特征过滤器(FeatureFilter,FF),然后利用该过滤器对图像进行特征提取,得到相应特征的特征图(FeatureMap,FM)。依次针对图像的每类特征,重复如上操作,最后得到由所有特征图构成的卷积层。8.5.2卷积神经网络学习算法——信号的正向传播过程(2):卷积操作特征过滤器也称为卷积核(CoilingKernel,CK),实际上是由相关神经元连接权值形成的一个权值矩阵。该矩阵的大小由卷积核的大小确定。卷积核与特征图之间具有一一对应关系,一个卷积核唯一地确定了一个特征图,而一个特征图唯一地对应着一个卷积核。并且,卷积核具有平移不变性,即卷积核对图像特征的提取,仅与其自身的权值分布有关,与该特征在图像中的位置无关。特征图是应用一个过滤器对图像进行过滤,或者说利用卷积核对图像做卷积运算所得到的结果。8.5.2卷积神经网络学习算法——信号的正向传播过程(3):卷积操作卷积核对输入图像的卷积过程为:将卷积核从图像的左上角开始移动到右下角,每次移动一步,都要将滤波器与其在原图像中所对应位置的子图像做卷积运算,最终得到卷积后的图像,即特征图。下图中,特征图第1行第1列元素的计算过程为:

8.5.2卷积神经网络学习算法——信号的正向传播过程(4):池化操作池化层也叫子采样层或降采样,其主要作用是利用子采样(或降采样)对输入图像的像素进行合并,得到池化层的特征图,实现对卷积层的特征图的降维,并降低过拟合。池化窗口是指池化操作使用的一个矩形区域,池化操作利用该矩形区域实现对卷积层特征图像素的合并。池化操作的基本过程是:从特征图的左上角开始,按照池化窗口,先从左到右,然后从上向下,不重叠地依次扫过整个图像,同时利用子采样方法进行池化计算。常用的池化方法有最大池化法、平均池化法和概率矩阵池化法等。8.5.2卷积神经网络学习算法——信号的正向传播过程(5):池化操作最大池化法的基本思想是:取原图像中与池化窗口对应的所有像素中值最大的一个,作为合并后的像素的值下图中,s12=max(5,5,4,6)=6最大池化法对背景的保留较好。8.5.2卷积神经网络学习算法——信号的正向传播过程(5):池化操作平均池化法的基本思想是:取原图像中与池化窗口对应的所有像素的平均值,作为合并后的像素的值。下图中,s12=(5+5+4+6)/4=20/4=5平均池化法对纹理的提取较好。8.5.2卷积神经网络学习算法——误差的反向传播过程(1)卷积神经网络的反向传播涉及两个基本问题:误差的反向传播和参数的反向调整。其中,前者与当前网络层的类型有关,即卷积层、池化层、全连接层的误差反向传播方法不同;后者一般通过梯度计算来实现。由于全连接层的反向传播与BP网络类似,BP网络的误差反向传播和参数调整前面已做过详细讨论,本节这里主要讨论由池化层到卷积层和由卷积层到池化层的误差反向传播问题。8.5.2卷积神经网络学习算法——误差的反向传播过程(2):卷积层的误差及梯度考虑当前层l为卷积层,连接该卷积层的下一层l+1为池化层,上一层l−1也为池化层。由于池化层l+1的误差矩阵的维度小于卷积层l的误差矩阵的维度,因此把池化层l+1的误差传递给卷积层l时,需要先进行上采样,使得上采样后卷积层l误差矩阵的维度和该层特征图的维度相同,再将卷积层l的激活函数的偏导数与由池化层l+1经上采样得到的误差矩阵进行点积操作,最后得到卷积层l第m个特征图的误差。8.5.2卷积神经网络学习算法——误差的反向传播过程(3):卷积层的误差及梯度假设δl+1,j为池化层l+1中与卷积层l第m个特征图对应的特征图j的误差,则当前卷积层l中的第m个特征图的误差δl,m可表示为上采样作为下采样的逆过程,与正向传播时所使用的下采样方法对应。当根据l+1层的误差反向计算l层的误差时,需要先知道l层当前特征图中哪些区域与l+1层中的哪个特征图中的神经元相连,再按照池化窗口大小将l+1层特征图中的每个像素在对应位置的水平和垂直方向上复制,得到卷积层每个神经元的误差。为卷积层l层中特征图m的神经元激活函数的导数;“•”——矩阵的点积操作,即逐对元素相乘;

为上采样

8.5.2卷积神经网络学习算法——误差的反向传播过程(4):卷积层的误差及梯度上采样作为下采样的逆过程,与正向传播时所使用的下采样方法对应。当根据l+1层的误差反向计算l层的误差时,需要先知道l层当前特征图中哪些区域与l+1层中的哪个特征图中的神经元相连,再按照池化窗口大小将l+1层特征图中的每个像素在对应位置的水平和垂直方向上复制,得到卷积层每个神经元的误差。8.5.2卷积神经网络学习算法——误差的反向传播过程(5):卷积层的误差及梯度上采样的例子:平均池化法(以图8-28为例)假设卷积层特征图的大小为4×4,子采样窗口大小为2×2,若l+1层误差矩阵为:则该误差在l层的误差分布为:由于反向传播时各层间的误差总和不变,故需要将该误差在l层特征图对应的位置进行平均,即除以子采样窗口的大小2×2=4,即得到池化层l+1的误差在l层的分布为:图8-28平均池化法示例8.5.2卷积神经网络学习算法——误差的反向传播过程(6):卷积层的误差及梯度上采样的例子:最大池化法(以图8-27为例)采用最大池化,除了需要考虑l+1层神经元与l层区域块的对应关系,其前向传播的池化过程还需要记录其最大值所在的位置。图8-28,子采样过程所取的最大值5、6、4、8,分别位于卷积层l中所对应块的右上、右下、左下、左上位置,则误差反向传播过程所得到的l层误差分布为:通过以上操作,得到了卷积层每个特征图的误差图8-27最大池化法示例8.5.2卷积神经网络学习算法——误差的反向传播过程(6):卷积层的误差及梯度得到了卷积层每个特征图的误差,根据其总误差计算卷积层l中的参数,包括卷积核权值的梯度和偏置值的梯度。偏置值的梯度:总误差E关于偏置值bl,m的偏导。其值为卷积层l中第j个特征图所有节点的误差之和,即:

u,v为卷积层l中特征图m的总行数和总列数(8-80)8.5.2卷积神经网络学习算法——误差的反向传播过程(7):卷积层的误差及梯度得到了卷积层每个特征图的误差,根据其总误差计算卷积层l中的参数,包括卷积核权值的梯度和偏置值的梯度。卷积核的梯度:总误差E关于卷积核Kl,m的偏导数,其值为卷积层l中第m个特征图所有节点的误差之和再乘以(al,m)u,v。由于卷积层中的同一特征图共享同一个卷积核,因此需要求出所有与该卷积核有过连接的神经元的梯度,再对这些梯度进行求和,即

(8-81)(al-1,i)u,v为计算第l层第m个特征图时,与卷积核Kl,m相乘过的输入特征图中的所有元素,即l−1层第i个特征图al-1,i中的所有元素。8.5.2卷积神经网络学习算法——误差的反向传播过程(8):池化层的误差及梯度考虑当前层l为池化层,连接该池化层的下一层l+1为卷积层,上一层l−1也为卷积层的情况。如果下一层是全连接层,则可按照BP网络的反向传播方法计算。当下一层是卷积层时,由池化层l到卷积层l+1的计算公式如下先确定池化层l中特征图m的误差矩阵中的哪个区域块对应于卷积层l+1中特征图i的误差矩阵中的哪个位置,再将该误差反向加权传递给池化层l中的特征图m。其中的权值就是卷积核参数,反向加权的权值就是旋转180度之后的卷积核。

(8-82)8.5.2卷积神经网络学习算法——误差的反向传播过程(9):池化层的误差及梯度反向传播方式窄卷积运算是指前向传播时,由池化层l到卷积层l+1的运算。由于该运算导致特征图变小,故称窄卷积运算。宽卷积运算则是指反向传播时,因卷积层l+1的特征图的大小小于池化层的特征图,需要将其扩充为与l层特征图的大小相同的大小。(8-83)conv2(X,Y,full’)为MATLAB中对矩阵进行宽卷积运算的函数8.5.2卷积神经网络学习算法——误差的反向传播过程(10):池化层的误差及梯度池化层l的偏置值的梯度和权值的梯度:若假设

为池化层l的特征图m的误差,则:(8-84)βl,m为下采样权重;δl,m为池化层算子;(8-85)(8-86)

:上采样,即信息正向传播时所采用的下采样的逆过程;

:第l层第m个特征图神经元的激发函数的导数;

“•”

:矩阵的点积操作。8.5.2卷积神经网络学习算法——误差的反向传播过程(11):参数的更新方法卷积层参数池化层参数全连接层参数τ:学习率,其值影响学习过程的收敛速度。若太小,学习过程收敛速度较慢;若太大,可能导致无法收敛。(8-91)(8-87、88)(8-89、90)8.5.3循环神经网络循环神经网络(RecurrentNeuralNetwork,RNN)源自1982年由SarathaSathasivam提出的Hopfield神经网络,它是基于“人的认知是基于过往的经验和记忆”这一观点提出的。它与DNN、CNN不同,它不仅考虑前一时刻的输入,而且赋予了网络对前面内容的一种“记忆”功能。RNN是在时间上传递的网络,网络的深度就是时间的长度。该神经网络是专门用来处理时间序列问题的,能够提取时间序列的信息。其主要用途是处理和预测序列数据,解决序列化相关问题,包括但不限于序列化标注问题、NER、POS、语音识别等。8.5.3循环神经网络RNN能够提取时间序列的信息。序列数据包括时间序列以及串数据,常见的序列有时序数据、文本数据、语音数据等。处理序列数据的模型称为序列模型,依赖时间信息。在应用神经网络预测时,首先要对输入信息进行编码,其中最简单、应用最广泛的是基于滑动窗口的编码方法。在时间序列上,滑动窗口把序列分成两个窗口,分别代表过去和未来,大小均需人为确定。8.5.3循环神经网络考虑简单的时间序列:1、2、3、4、3、2、1、2、3、4、3、2、1。从数据串的起始位置开始,输入窗口大小为3,第4与第5个为输出窗口,是期望的输出值,然后窗口根据步长向前滑动,落在输入窗口的为输入,落在输出窗口的为输出。此时的训练集为:[1,2,3]→[4,3][2,3,4]→[3,2][3,4,3]→[2,1][4,3,2]→[1,2]上述是在一个时间序列上对数据进行编码,也可以对多个时间序列进行编码。8.5.3循环神经网络普通循环神经网络的结构(1)与CNN相比,RNN内部为循环结构,包含重复神经网络模型的链式形式。在标准的RNN中,基本模型仅仅含有一个简单的网络层。RNN层级结构主要有输入层、隐含层、输出层等组成。在隐含层用一个箭头表示数据的循环更新,即实现时间记忆功能。隐含层内的节点可以自连,也可以互连,不同时刻记忆在隐含层单元中,每个时刻的隐含层单元有一个输出。8.5.3循环神经网络普通循环神经网络的结构(2)根据输入、输出的差异,RNN有以下五种结构。one-to-one(一到一)one-to-n(一到n)8.5.3循环神经网络普通循环神经网络的结构(3)根据输入、输出的差异,RNN有以下五种结构。n-to-n(n到n)n-to-one(n到1)8.5.3循环神经网络普通循环神经网络的结构(4)根据输入、输出的差异,RNN有以下五种结构。n-to-m(n到m)n-to-m结构,又称为Encoder-Decoder模型,也可称为Seq2Seq模型。在实际中,遇到的大部分序列是不等长的,如机器翻译中,源语言和目标语言的句子往往并没有相同的长度。而Encoder-Decoder结构先将输入数据编码成一个上下文向量c,之后再通过这个上下文向量输出预测序列。8.5.3循环神经网络普通循环神经网络的训练(1)RNN的训练是按时刻展开循环神经网络进行反向传播,找出在所有网络参数下的损失梯度。每一次RNN训练可以看作是对同一神经网络的多次赋值。按时间点将RNN展开,可得到下图的结构。图8-36RNN展开结构8.5.3循环神经网络普通循环神经网络的训练(2)在不同的时间点,RNN的输入都与之前的时间状态有关,tn时刻网络的输出结果是该时刻的输入和所有历史共同作用的结果,记忆在隐含层单元中存储和流动,而输出取自于隐含层单元及网络的最终输出。在反向传导时,对于时刻t的输入层,其残差不仅来自输出,还来自之后的隐含层。通过反向传播算法,利用输出层的误差,求解各个权重的梯度,然后更新各权重。RNN的参数在所有时刻都是共享的,每一次反向传播,不仅依赖当前时刻的计算结果,而且依赖之前时刻,按时刻对网络展开,并执行反向传播,这个过程称为基于时间的反向传播(BackPropagationThroughTime,BPTT)。8.5.3循环神经网络普通循环神经网络的训练(3)理论上,RNN可以使用先前所有时间点的信息作用到当前的任务上。但实际上,随着间隔的不断增大,RNN会出现“梯度消失”或“梯度爆炸”的现象,这就是RNN的长期依赖问题。若使用Sigmoid函数作为神经元的激活函数,如对于幅度为1的信号,每向后传递一层,梯度就衰减为原来的0.25,层数越多,到最后梯度指数衰减到底层基本上接收不到有效的信号,这种情况就是“梯度消失”。随着间隔的增大,RNN会丧失学习到远距离信息的能力。8.5.3循环神经网络长短时记忆网络的结构(1)为了解决普通RNN的长时依赖问题,Hochreiter与Schmidhuber在1997年改进了RNN,提出了长短时记忆网络(LongShort-TermMemory,LSTM),并被AlexGraves进行了改良和推广。LSTM通过设计门限结构解决长时依赖问题。LSTM包含有4个神经网络层,并且以一种非常特殊的方式进行交互。增加的这4个神经网络层,使得LSTM网络包括4个输入:当前时刻的输入信息、遗忘门(ForgetGate)、输入门(InpuGate)和输出门(OutputGate),即当前时刻网络的输出。各个门上的激活函数使用Sigmoid函数,其输出范围为0~1,用于定义各个门是否打开或打开的程度,赋予了它去除或者添加信息的能力。图8-37LSTM的结构8.5.3循环神经网络长短时记忆网络的结构(2)LSTM模块包含3个Sigmoid层,分别是遗忘门、输入门和输出门。每一条信号线传输一个向量,从一个节点的输出到其他节点。圈代表逐点(pointwise)的操作,矩阵是学习到的神经网络层。合在一起的线表示向量的连接,分开的线表示内容被复制,然后分发到不同的位置。3个输入都是当前时刻的输入Xt和上一时刻的输出ht-1,在前向传播过程中,针对不同的输入表现不同的角色。8.5.3循环神经网络长短时记忆网络的结构(3):门输入门控制有多少信息可以流入记忆细胞;遗忘门控制有多少上一时刻的记忆细胞中的信息可以累积到当前的记忆细胞中;输出门控制有多少当前时刻的记忆细胞中的信息可以流入当前隐含状态中。LSTM不仅有多个门的复杂结构;而且还引入了细胞状态来记录信息。细胞状态通过门(gate)结构来添加新的记忆和删除旧的记忆信息。细胞核的状态是LSTM的核心,类似于传送带,直接在整个链上穿过,附带一些少量的线性交互,让信息在上面流传而保持不变。8.5.3循环神经网络长短时记忆网络的结构(3):遗忘门利用遗忘门决定从细胞状态中丢弃何种信息,如图8-38所示。该门会读取ht-1和xt的信息,通过Sigmoid层输出一个0到1的数值,作为给每个在神经元状态Ct-1中的数字,0表示“完全舍弃”,1表示“完全保留”。这就决定了上一神经元Ct-1会有多少信息能进入当前神经元状态Ct。遗忘门的计算公式ft为衰减系数,Wf为权值矩阵,ht-1和xt为遗忘门的输入,bf为偏置图8-38遗忘门图8-40LSTM状态更新8.5.3循环神经网络长短时记忆网络的结构(3):输入门输入门,也称更新门、写入门,如图8-39所示。输入门it决定输入信息有哪些被保留,包括两个部分:Sigmoid层与tanh层。二者的输入都是当前时刻的输入xt和上一时刻的输出ht-1。it为输入门,

为即时神经元状态。Ct为当前时刻的神经元状态8.5.3循环神经网络长短时记忆网络的结构(4):输出门输出门ot读取刚更新的神经网络状态,也就是记忆单元进行输出,但具体哪些信息可以输出同样受输出门ot的控制,即决定ht-1和xt中哪些信息将被输出,如公式(8-99)所示。神经元状态Ct通过tanh激活函数压缩到(-1,1)区间,通过输出门,得到当前时刻的输出ht。W0为权值矩阵,ht-1和xt为输入,b0为偏置,Ct为当前时刻的神经元状态图8-41输出门8.5.3循环神经网络长短时记忆网络的变体:GRU门控循环单元(GatedRecurrentUnit,GRU),将遗忘门和输入门合成了一个单一的更新门,同样还混合了细胞状态和隐藏状态,以及其他一些改动。GRU模型比标准的LSTM模型更简单一些。图8-42GRU结构和计算过程8.5.4生成对抗网络深度学习的模型可大致分为判别式模型和生成式模型。判别式模型是一种能够学习输入数据和输出标签之间关系的模型,它通过学习输入数据的特征来预测输出标签,可以用于分类、回归等任务。生成式模型则用于模拟训练样本的概率分布,并试图生成与训练样本具有相同概率分布或相似特征的新样本。生成模型可用于图像清晰度提升、破损或遮挡图像的修复、样本数据生成等场景。受二人零和博弈的启发,2014年,Goodfellow等人提出了生成对抗网络(GenerativeAdversarialNets,GAN),并阐明了生成对抗网络背后的基本思想是学习训练样本的概率分布。8.5.4生成对抗网络基于二人零和博弈思想,GAN的框架中包含一对相互对抗的模型——判别器和生成器。判别器的目的是正确区分真实样本和生成样本,从而最大化判别准确率;生成器则是尽可能逼近真实样本的潜在分布。为了在博弈中胜出,二者需不断提高各自的判别能力和生成能力,优化的目标就是寻找二者间的纳什均衡。8.5.4生成对抗网络生成对抗网络的结构(1)一个GAN主要包括一个生成器G和一个判别器D当GAN输入一个噪声变量z,网络首先将噪声z在生成器G的多层感知器或者其他神经网络当中映射,得到一个新的样本G(z),然后把真实样本x和生成样本G(z)送入判别器D中。判别器D会根据实际输入的样本x与生成的样本G(z)进行判别,从而输出判别真假的概率值。图8-43生成对抗网络的结构图假如判别器的输出和设定的答案方向不相同,即实际的输入概率值趋近于0,生成样本的概率趋近于100%,则可以反映出生成器的生成样本准确度很高。8.5.4生成对抗网络生成对抗网络的结构(2)在GAN训练过程中,生成器G的目标就是用生成的样本去欺骗判别器D,而判别器D的目标就是尽量把生成器G生成的样本和真实的样本区分开来。简单生成对抗网络的生成模型和判别模型可通过全连接神经网络实现,称为朴素生成对抗网络。对于朴素生成对抗网络,判别模型、生成模型和损失函数是极其重要的组成部分。8.5.4生成对抗网络生成对抗网络的结构(3)朴素生成对抗网络的判别模型:由输入层、隐藏层、输出层组成的3层神经网络。该神经网络输入的是真实样本或生成样本,输出的是当前样本为真实样本而非生成样本的概率。朴素生成对抗网络的生成模型:也是由输入层、隐藏层、输出层组成的3层神经网络,不同的是,其输入是n维服从某一已知概率分布的随机数,如服从均匀分布或正态分布的随机噪声;输出为生成样本。朴素生成对抗网络的损失函数:判别模型和生成模型都有其各自的损失函数。判别模型的目标是准确地将输入的真实样本标记为真,输入的生成样本标记为假。8.5.4生成对抗网络生成对抗网络的结构(4)在判别模型中存在两种损失:将输入的真实样本标记为假以及将输入的生成样本标记为真的损失。其损失函数定义为lossD(real)表示输入为真实样本时判别模型的损失;lossD(fake)表示输入为生成样本时判别模型的损失;Nreal表示输出输入判别模型的真实样本数量;Nfake

表示输入判别模型的生成样本数量;y(i)表示样本i输入判别模型时的期望输出8.5.4生成对抗网络生成对抗网络的结构(5)生成模型的目标是能够生成欺骗判别模型的样本,因此损失函数可以定义为Nfake

表示输入判别模型的生成样本数量;y(i)表示样本i输入判别模型时的期望输出y(i)=18.5.4生成对抗网络生成对抗网络的训练(1)图8-44GAN网络的训练过程8.5.4生成对抗网络生成对抗网络的训练(2)固定生成器G训练判别器D。仅采用生成器G的前馈过程得到输出,但不执行其反向传播过程。训练开始时,从原始训练集中随机选出一批真实样本x输入判别器D中,判别器D输出判别概率D(x)。判别概率D(x)与样本的真实性标签,即1比较,得到误差LossD1;再将随机噪声z输入生成器G得到伪造样本G(z),并将G(z)输入判别器中,得到判别概率D(G(z))。伪造样本的判别概率D(G(z))与其真实性标签,即0比较,得到误差LossD2。最后计算判别器D的总误差,将误差反向传播至判别器D中各个网络节点、并更新网络中的参数。至此,判别器D的一轮训练学习完成。8.5.4生成对抗网络生成对抗网络的训练(3)固定判别器D训练生成器G。将随机噪声z输入生成器G,得到伪造样本G(z),再将G(z)作为输入送进判别器D,得到判别器给出的概率数值D(G(z))。与在判别器求误差的过程不同,判别器中伪造样本G(z)的真实性标签为0,即标注为“生成样本”。而在生成器中,其目的就是要训练出生成样本去“欺骗”判别器,使判别器认为生成样本是真实样本,并给出判别概率D(G(z))接近1的结果。因此在生成器中,通常将输出的真实性标签设置为1。得到伪造样本的真实性判别概率D(G(z))与真实性标签1的误差LossG之后,将误差反向传播至生成器G中的各个节点,并更新网络中的参数。至此,生成器G的一轮学习完成。8.5.4生成对抗网络生成对抗网络的训练(4)训练过程中,判别概率与真实性标签的误差计算,一般选择交叉熵代价函数(Cross-entropyCostFunction)。神经网络中交叉熵代价函数的一般定义为在生成对抗网络中,整体的价值函数V(G,D)定义为n表示所有样本的数量,y表示x

的期望输出,a

表示样本的实际输出。当期望输出y与实际输出a越接近,代价函数越接近0。G、D分别代表生成器与判别器。x-Pdata(x)表示x采样于真实样本分布Pdata(x),E(·)表示计算期望值。z-pz(z)表示z采样于某一噪声分布,如标准正态分布pz(z)=N(0,1)。8.5.4生成对抗网络生成对抗网络的训练(5)GAN的整体训练过程:随机选取真实图像x将x输入D,得到D(x)希望D(x)=1,获得反向梯度,保存备用由随机采样生成z,如z为100维的{Z1,Z2,…,Z100},其中,Zi是标准差为1的正态分布的随机数将z输入G,生成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论