第四讲人工神经网络.docx
第四讲人工神经网络教学内容:本章主要学习经典人工神经网络模型、深度神经网络模型以及它们之间的联系和区别。(学点:反向传播算法、深度卷积神经网络模型。教学难点:反向传播算法、深度循环神经网络模型。教学方法:课堂教学为主,结合智慧树等在线平台实时提问、收集学生学习情况,充分利用网络课程中的多媒体素材来表示深度神经网络的结构和功能。讨论五分钟。课后布置作业,要求学生查找、阅读与人工神经网络有关的经典论文等。学习慕课第四章人工神经网络并完成章节测试。教学要求:重点掌握基本人工神经元模型、经典反向传播穿法原理、深度卷积神经网络原理及实现过程。了解深度神经网络是在浅层神经网络基础上发展而来的,是联结主义发展而来的新方法。课程思政内容:在人工神经网络的发展历史上,曾经经历三次低谷和两次高潮,伴随着人工智能的发展历史。但是,即使是在处于低潮时期,少数科学家仍然坚持自己的努力方向,不随波逐流,凭借长期的努力和坚定的信念,终于发展出深度神经网络,并在今天的社会发挥巨大作用。要学习科学家们这种咬定青山不放松、持之以恒、不忘初心的科学拼搏精神。学习目标:1 .掌握和理解人工神经网络基本原理、算法和实现过程;2 .掌握和理解传统人工神经网络与深度神经网络的关系:3 .学习和了解人工神经网络研究内容和应用。学习导言人工神经网络(ArlifiCiaINeU同NelWork,ANN)自诞生以来,在人工智能领域有着举足轻重的地位和作用,整个人工神经网络发展历史都可以看作是人工智能的发展史。特别是20世纪80年代,人工神经网络的研究取得了重大进展,有关理论、方法已经发展成一门介于物理学、数学、计算机科学和神经生物学之间的交叉学科,它不仅是当今人工智能学术研究的核心,更在实际应用中大放异彩,成为人工智能的主流技术。人工神经网络在包括视觉、听觉等感知智能,机器翻译和语音识别、聊天机器人等语言智能,棋类、游戏等决策类应用,以及艺术创造等方面所取得的重要成就,证明了多年来联结主义路线,即以人类大脑神经系统为原型设计人工智能方法的正确性,也是结构主义思想的胜利。本章从最基础的人工神经元开始,经典的人工神经网络方法过渡到深度神经网络,全面理解现阶段主流的深度学习技术的基础一深度神经网络的发展脉络和原理,为了解目前人工智能应用背后的核心技术奠定基础。4 .1如何构建人工神经网络人工神经网络从域初的心理学研究发展到早期人工智能联结主义方法,到现在成为人工智能的主流方法,也是最重要的方法,其取得成功的原因在于对大脑的结构模拟。尽管这种模拟是粗略,并不是真实更现大脑的神经元之间的联结模式和结构,但其在应用上取得的成功说明“结构决定功能”在人工智能中一定程度是成立的。(4-1)(4-2)(4-3)(4-4)j批注11:怎么两个式子? ? ?上述神经元的活动可以用公式4/和42进行表达:"=心=%-Q)i=di'k)尤=以匕)>'=/(«-9)=/(£吗七一6)”=/(';)将式子42进行整理,则有:。=w,EJ-Oy=()=dE%J式子4-3和4乂中,Xi)=-I时,权值%=0。1.单层感知器感知器模型是一个只有单层计算单元的前馈神经网络,称为单层感知器,其结构如图4.5,圆圈代表神经元,神经元作为基本单位,也是输入信号的节点,网络连接权值3模拟生物神经元间的连接关系,在输入层和输出层的神经元之间建立起连接关系,同一层神经元之间不连接。感知器的网络结构可以用式子4-6进行表达:|y.=g(u,×0)=g(alXWl+a2×m+ai×w)y=F(X)=maxx,x.(4-5)式子4-6中,y代表感知器的输出信号,(4M2,q)和分别代表输入信号和网络连接权值,将所有的输入信号加权求和类似神经元模型中的激活函数f(),这里也有个功能函数g(),R(E)决定输出信号£的状态。图4.5中的感知器模型近似模拟了神经元的功能,现在利用这个感知器模型就可以实现简单的分类了。例子4.1:假设待分类的生鲜有:豆角、绿苹果、茄子、洋葱和西瓜,要求将这些生鲜分成水果和蔬菜两类。解:首先,对待分类的生鲜进行特征提取,采用颜色、形状和口感三个特征量作为输入,用0、如、。3来分别表示,设定生鲜的特征值如表4.1。表4.1中,颜色特征1代表绿色,-1代表紫色:形状特征1代表圆形,T代表条形:口感特征1代表(生吃)好吃,-1代表(生吃)不好吃;表4.1特征值定义生鲜颜色4形状g口感外豆角1血色)-I(条形)-I(不好吃)绿球果1(绿色)I(圆形1(好吃)茄子-1(紫色)-I(条形)-1(不好吃)洋葱-1(紫色)1(圆形)-I(不好吃)西瓜1俗色)1(圆形)1(好吃)其次,定义感知器的输出:1代表水果,T代表蔬菜。假设网络连接权值以=吗=吸=1,功能函数g()选用Sign函数g(x)=F;现在我们看一下,利用感知器模型式子4-5计-LXO算的分类结果:豆角:yi=gl×l+(-l×l)+(-l×l)=g(-l)三-l绿苹果:yl=(1×l+l×l+l×1)=g(3)=l茄子:'2=(-1×1)+-1x1+(-1×1)J=(-3)=-1同理,对表4.1中的洋葱和西瓜进行分类计算,洋葱以-1)=-1、西瓜g(3)=l,可以看到图4.5中的单层感知器能够对表4.1中的生鲜进行准确分类。4.2神经网络的训练-反向传播算法反向传播(BackPropagation.BP)算法就是迄今为止最成功和使用最多的神经网络学习算法。BP算法是一种相对感知器的简单学习规则有了较大进步的学习算法,一类通用“学习规则”的本质就是梯度下降,即找到一个函数的局部极小值.梯度下降法是个阶最优化算法,要找到一个函数的局部极小值,必须在函数上当前点对应梯度(或者是近似梯度)的反方向以规定步长进行迭代搜索。般的人工神经网络确定网络结构之后,就会利用算法进行训练。在4.1.2节单层感知器分类水果和蔬菜的例子中,我们得知正确分类的关键就是选择或者找到一组合适的网络权值卬,这个过程就是算法训练的过程。(1)激活函数的选择/W1T+77(4-12). 批注|3:图中正余I体不规范,大小写不规范激活函数/(.)选用式子4-13的Sigmoid函数,因为采用梯度下降法求导,娈求函数是连续可导的,阶跃函数不连续因此不可导,而Sigmoid函数曲线平滑连续可导(如图4.9),并且如公式4-13有“函数导数可以用函数本身表示”的特性,可以使BP算法的公式推导获得简化的表达。(4-13)(2)确定网络模型结构和参数假设输入层有,“个神经元,隐藏层有A个神经元,输出层有个神经元,则网络模型:输入层输入xxltxiXG隐藏层输入%=(%,%ha)隐藏层输出¼=(i,2,.,m)输出层输入y=(%,%)输出层输出%=(为,%,.,%)期望输出do(dl,d2<)输入层与隐藏层、隙藏层与输出层的连接权值分别为陶和叫隐藏层、输出层的神经元偏置分别为仇和(3)隐藏层和输出层的计算隐藏层输入几伏)=亦";4)-"人=1,2”匕(4-14)f=隐藏层输出a()=f(tih(k)h=l,2t,k(4-15)输出层输入yi,(k)=J>vl,htb(k)-boo=,2n(4-16)-l输出层输出%,(左)=/(拈伏)?O=L2(4-17)(4)损失函数P的计算P=1力4,伏)-凡(初2<4-18)2“t我们需要找到一组连接权值卬,让系统实际输出或等于或接近期望输出4,用损失函数尸来评价实际输出和期望输出的差距,则问题就变为求。的极小值。(5)采用梯度下降法找到损失函数P的局部极小值。ap P yio=-Wk)-ytxf(k)fyi,(k)htjll(k)G幻= Y(W心(4-19)其中,(k) = dn(k)-ym(k)fyjk)(4-20)批注4:正斜体不规范! ! !【注】:全文注意此类问题,3PAP如伏)孤伏)加k=%“”加以初卜伏)(4-21)fo=-ll(k)xi(k)其中,“=停,伏山1%伏)j)<4-22)这里省略式子4-19和式子4-21的详细推导过程,由式子422我们可以看到,误差项心(幻可以由误差项2伏)计算得到,如果存在多个隐藏层,这个特质依然成立,即第/层的个神经元的误差项是所有与该神经元相连的第1+1层的神经元的误差项乘以权值再求和,然后再乘上该神经元激活函数的梯度,这就是误差的反向传播。(6)调整权值和偏置参数(4-23)(4-24)*=H+嗝(&)%(2)喏'=喷+哂,(DMR:为控制权值调整速度的常数,又称为学习率,0<v<L以上可以得知,BP算法的训练结果取决于输出的误差和相邻的网络连接权值,误差是从最后一层到第一层反向传播。采用“误差修正型”的学习规则与梯度下降法结合使用,是用来训练人工神经网络的常见方法,该方法对网络中所有权值计算损失函数的梯度,这个梯度用来更新网络连接权值以获得最小化损失函数。多层神经网络的训练(学习),除了连接权值的参数调整,偏置参数也可这样利用梯度下降法进行调整。批注15:为何以表的形式展现?较为奇怪.请参考其他 同类书籍写法。批注6:怎么有半角?批注I7J:。批注网:.BP算法的训练过程I如表4.3厮示H是一个反曳迭代、修正网络权值和偏匿参数的过程.BP算法训练过程分为两个阶段I:I第一阶段是将输入信号通过整个神经网络正向(向前)传播,点到最后一层,这个过程称为前限I第二阶段,该算法会计算个误差,然后从最后层到第层反向传播该误差,采用梯度下降法找到性能函数的局部极小值,调整网络权值和偏置参数。BP算法的终止条件是设定最大迭代次数N,也可以通过设置全局误差的方式,在没有达到设定条件之前,不停循环,得出最优的模型。表4.3BP算法的训炼怆入:训练集(严.严),Jft大迭代次数怆出Iw,b(W是权值,6是偏置节点)初始化w.blfor/=.jVdofori三.do(I)前馈计算陷藏层和输出层的状态和激活值,直到最后层:(2>用式子4-20和4-22反向计算斑层的谩差X",/为腐络的层数;(3>用式子4I9和421计算摊一层参数的偏导:=-,(*K,(*)<4-25)=-<¾(),(*)<4-26)(4)史新赛数:变=磋+"9427)M)=W+“焉::<4-28):为控制权值调整速度的常数,又称为学习率Qvvlendend4.3卷积神经网络原理1、权值共享与特征提取权值共享就是感受野的权值一样,通过感受野和权值共享减少了神经网络需要训练的参数的个数。输入层读入经过规则化(统一大小)的图像,在神经网络的全连接中,一帼IOoOXloOO像素的图像可以看作是个IoooXlOOO的方阵排列的神经元,每个像素对应1个神经元:局部连接则将图像一组小的局部近邻的神经元作为输入,也就是局部感受野。全连接Example:100O>1000imageIMhiddenuntFillersize:10*10lMparameters从输入层到隐藏层的这种映射为特征映射,共享权值和共享偏置就是定义在特征图上的权值和偏置。神经元感受野的值越大表示其能接触到的原始图像范围就越大,也意味着它可能蕴含更为全局,语义层次更高的特征;相反,值越小则表示其所包含的特征越趋向局部和细节。2、卷积层假设图像是一个3x4的灰度图像,2x2的卷积核与图像上对应的像素灰度值相乘并求和,则卷积后所获得的特征图像左上角第1个像素为GV+版+y+力。从左上角开始,卷积核计算每次滑动1个像素单位(卷积步长为1),滑动顺序由左至右、由上至下,再重新上述计算过程,则特征图像左上角第2个像素为加v+以+b+gz,最终输出一个2x3的特征图像。卷积后的特征图像每个像素与网络隐藏层中的神经元相连,每个卷积核检测的都是相同的特征,这些相同的特征只是在输入图像中的位置不同。当提到神经网络中的卷积时,通常是指由多个并行卷枳组成的运算。通常希望网络的每一层能够在多个位置提取多种类型的特征。3、池化层池化层一般在卷积层后,通过池化来降低卷积层输出的特征向量维数。池化过程最大程度的降低了图像的分辨率,同时降低了图像的处理维度,但又保留了图像的有效信息,降低了后面卷积层处理豆杂度,大大降低了网络对图像旋转和平移的敏感性。一般采用的池化方法有两种:平均池化(meanpooling)和最大池化(maxpooling)平均池化是指对图像目标同部区域的平均值进行计算,将其作为池化后该区域的值。最大池化则是选取图像目标区域的最大值作为池化后的值。卷积核为2X2,步长为2的最大池化5.全连接层随着卷积层C、池化层S反复堆叠次数的增加,网络连接深度的增大,代表特征图像的长方体横截面面积越来越小,但是长度却越来越长。全连接层FC的作用是分类,全连接层的每一个节点都与上一层的所有节点相连接,用来把前边提取到的特征综合初始化第I步:前向传播,前向传播是数据经过卷税神经网络模型不断提取特征进行分类的过程。Stepk输入层输入数据,对数据进行预处理,如去均Cft和归,化等操作,再送入送枳层中.Siep2;在卷板层实现权值共享,M少模型金数,井能缈有效的检测出图像中的特征,Stcp3:使用激活函数对卷枳层的输出做非线性映射,处过澈活函数处理后,图像愉入到池化层。激活函数对卷枳层的输出做非线性映射,常用的激活函数有SigmOid、tanh和RelU等.卷枳层的浅积操作仅是线性运算,无法形成亚杂的模里,激活函数为模型加入了非线性元素,提高模型的表达能力。Stcp4:通过池化操作,对数据进行向下采样.减少模型参数和模型的复杂度.成轻过拟合.Step5:桂枳层和池化层田现地堆比,至豆Step2Step4的操作,堆叠的层数是根据所处理数据的规模而确定的,模型提取到的特征逐渐由低端特征变成高雄特征。浅层的卷枳层只能提取到一些低级的图像特征如边缘、角,Kl着层数的加深,卷积层不断对低级特征组合迭代.深层的卷积可以提取到更杂的特征.Siep6:通过全连接层将i潍特征羟过整理组合输出到褊出层,股在模型的最后起到分类器的作用.Step7:输出层通常也是一个全连接层,在对T出层用SOnmaX分类甥对图像进行分类。第2步:反向传播.Sieph利用损失函数计以最后个全连接层输出ft与数据的其实伯之间的误差,使用类似BP悌度F降的方法,通过误差反向传播,不断调整网络的权值和儡SL以降低给出值与真实值之间的误差.彻失函数层的作用是用来估算模型的预测值/(.*)与实际(ft?的差距的函数.通常用4匕/(刈表示,是一个非负的实数值函数,值越小,反应该网络的数据拟合性能越好,以法不断地循环重复第1步和第2步,直至损失函数降低到设定的值,模型达到理想的效果。训练过程结束起来。课后实践:利用百度飞桨平台搭建深度卷积神经网络框架并训练一个医学图像分类数据。利用华为MlNDSPORE搭建深度卷积神经网络框架并训练一个医学图像分类数据。4.5循环神经网络循环神经网络(RecurrentNeuralNetwork*RNN)由PaUIWCrboS于1988年提出的,该模型为了可以更好的处理序列数据,在结构中加入了循环的概念将信息进行持久化.该算法独有的循环结构使得网络可以对早先输入的信息进行记忆并将该记忆中的有用信息应用到对后续输出的计算过程中,一般用来处理文本、音频、视频等序列数据,甚至是股票数据等具有''序列”特点的数据建模问题,该模型已经在语音识别,自然语言处理,机器翻译等众多时序分析领域中取得了巨大的成就,它与卷积神经网络并称为当下最热门的两大深度学习算法。RNN与CNN不同的是:它不仅考虑前时刻的输入,而且赋予了网络对前面的内容的一种“记忆”功能,即一个序列当前的输出与