人工神经网络ArtificialNeuralNetworks平顶山学院数学建模暑期培训2015.7.202019/12/2512019/12/252人类对人工智能的研究可以分成两种方式对应着两种不同的技术:传统的人工智能技术——心理的角度模拟基于人工神经网络的技术——生理的角度模拟2019/12/253学习驾驶汽车的人工神经网络摘自《机器学习》,T.M.Mitchell2019/12/254人脸识别2019/12/255手写数字识别2019/12/256人工神经网络的概念1、定义(1)Hecht—Nielsen(1988年)人工神经网络是一个并行、分布处理结构,它由处理单元及其称为联接的无向讯号通道互连而成。这些处理单元(PE—ProcessingElement)具有局部内存,并可以完成局部操作。每个处理单元有一个单一的输出联接,这个输出可以根据需要被分枝成希望个数的许多并行联接,且这些并行联接都输出相同的信号,即相应处理单元的信号,信号的大小不因分支的多少而变化。2019/12/257人工神经网络的概念别名人工神经系统(ANS)神经网络(NN)自适应系统(AdaptiveSystems)、自适应网(AdaptiveNetworks)联接模型(Connectionism)神经计算机(Neurocomputer)2019/12/258人工神经网络的研究始于本世纪40年代。1943年,心理学家McCulloch和数学家Pitts合作,融合了生物物理学和数学,提出了第一个神经元计算模型—MP模型。这种单个神经元模型功能较弱,但连接而成的网络记忆能力巨大。这种巨大的记忆能力存储在网络中足够多的神经元之间丰富的连接强度上。MP模型虽然简单,但它开创了神经网络模型的理论研究,为各种神经元模型及网络模型的研究打下了基础。历史总结2019/12/2591949年心理学家Hebb提出神经元之间突触联系强度可变的假设。他认为学习过程是在突触上发生的,突触的联系强度随其前后神经元的活动而变化。根据这一假说提出了改变神经元连接强度的Hebb规则。它对以后人工神经网络的结构及算法都有很大影响。直到现在,Hebb的学习算法仍在不少人工神经网络中应用。历史总结2019/12/251050年代末,Rosenblatt提出感知器模型,第一次把神经网络的研究付诸工程实践。这是一种学习和自组织的心理学模型,它基本上符合神经生理学的知识,模型的学习环境是有噪声的,网络构造中存在随机连接,这符合动物学习的自然环境。这是第一个真正的人工神经网络,他给出了两层感知器的收敛定理。后来的一大类神经网络模型都是感知器模型的变形。历史总结2019/12/251160年代末,美国著名人工智能学者Minsky和Papart对Rosenblatt的工作进行了深入的研究,写了很有影响的《感知器》一书,指出感知器的处理能力有限,单层感知器只能作线性划分,对于非线性或其他分类会遇到很大的困难。这时应采用含有隐单元的多层神经网络,但引入隐单元后找到一个有效的学习算法非常困难,Minsky断言这种感知器无科学研究价值可言,包括多层的也没有什么意义。历史总结2019/12/2512这个结论对当时的神经网络研究无疑是一个沉重的打击,客观上对神经网络的研究起了一定的消极作用。同时当时的微电子技术也无法为神经网络的研究提供有效的技术保障。故在其后的十几年内,从事神经网络研究的人数及经费支持大大下降,神经网络研究处于低潮。历史总结2019/12/2513然而在此期间,仍有为数不多的学者致力于神经网络的研究,1969年Grossberg等提出了自适应共振理论模型。1972年Kohenen提出自组织映射的理论模型,并称神经网络为联想存贮器。所有这些理论为神经网络的进一步发展奠定了理论基础。历史总结2019/12/25141982年,美国加州工程学院物理学家Hopfield提出了一个用于联想记忆及优化计算的新途径—Hopfield模型,并于1984年进行修改,提出了利用模拟电路的基础元件构成了人工神经网络的硬件原理模型,为实现硬件奠定了基础。1985年Hopfield和Tank提出用神经网络解决优化问题。历史总结2019/12/2515这一时期还有一个以Rumelhart和McClelland为首的并行分布处理(PDP)的研究小组,他们提出了多层网络学习的误差反向传播学习算法(BP算法),解决了多层网络的学习问题,从实践上证实了人工神经网络具有很强的学习能力,并不象Minsky等人预料的那样弱,相反它可以完成许多学习任务,解决许多实际问题,也因此推动了前馈式神经网络的研究。BP算法目前已成为迄今为止应用最普遍的神经网络学习算法。历史总结2019/12/2516或称神经细胞,是生物神经系统的最基本单元。从组成结构看,各种神经元具有共性,它由细胞体(Soma)、轴突(Axon)和树突(Dendrite)三个主要部分组成。生物神经网生物神经元(Neuron)时空整合功能兴奋与抑制状态脉冲与电位转换突触延时与不应期2019/12/2517生物神经网1、构成胞体(Soma)枝蔓(Dendrite)胞体(Soma)轴突(Axon)突触(Synapse)2、工作过程2019/12/2518生物神经网3、六个基本特征:1)神经元及其联接;2)神经元之间的联接强度决定信号传递的强弱;3)神经元之间的联接强度是可以随训练改变的;4)信号可以是起刺激作用的,也可以是起抑制作用的;5)一个神经元接受的信号的累积效果决定该神经元的状态;6)每个神经元可以有一个“阈值”。2019/12/2519人工神经元的基本构成人工神经元模拟生物神经元的一阶特性。输入:X=(x1,x2,…,xn)联接权:W=(w1,w2,…,wn)T网络输入:net=∑xiwi向量形式:net=XWxnwn∑x1w1x2w2net=XW…2019/12/25202.2.2激活函数(ActivationFunction)激活函数——执行对该神经元所获得的网络输入的变换,也可以称为激励函数、活化函数:o=f(net)1、线性函数(LinerFunction)f(net)=k*net+cnetooc2019/12/25212、非线性斜面函数(RampFunction)γifnet≥θf(net)=k*netif|net|θ-γifnet≤-θγ0为一常数,被称为饱和值,为该神经元的最大输出。2019/12/25223、阈值函数(ThresholdFunction)阶跃函数βifnetθf(net)=-γifnet≤θβ、γ、θ均为非负实数,θ为阈值二值形式:1ifnetθf(net)=0ifnet≤θ双极形式:1ifnetθf(net)=-1ifnet≤θ2019/12/25233、阈值函数(ThresholdFunction)阶跃函数β-γθonet02019/12/25244、S形函数压缩函数(SquashingFunction)和逻辑斯特函数(LogisticFunction)。f(net)=a+b/(1+exp(-d*net))a,b,d为常数。它的饱和值为a和a+b。最简单形式为:f(net)=1/(1+exp(-d*net))函数的饱和值为0和1。S形函数有较好的增益控制2019/12/25254、S形函数a+bo(0,c)netac=a+b/22019/12/2526M-P模型x2w2∑fo=f(net)xnwn…net=XWx1w1McCulloch—Pitts(M—P)模型,也称为处理单元(PE)2019/12/2527层次划分信号只被允许从较低层流向较高层。层号确定层的高低:层号较小者,层次较低,层号较大者,层次较高。输入层:被记作第0层。该层负责接收来自网络外部的信息输出层隐藏层输入层o1o2om…x1x2xn………………2019/12/2528第j层:第j-1层的直接后继层(j0),它直接接受第j-1层的输出。输出层:它是网络的最后一层,具有该网络的最大层号,负责输出网络的计算结果。隐藏层:除输入层和输出层以外的其它各层叫隐藏层。隐藏层不直接接受外界的信号,也不直接向外界发送信号输出层隐藏层输入层o1o2om…x1x2xn………………2019/12/2529约定:输出层的层号为该网络的层数:n层网络,或n级网络。第j-1层到第j层的联接矩阵为第j层联接矩阵,输出层对应的矩阵叫输出层联接矩阵。今后,在需要的时候,一般我们用W(j)表示第j层矩阵。输出层隐藏层输入层o1o2om…x1x2xn………………W(1)W(2)W(3)W(h)2019/12/2530多级网——h层网络输出层隐藏层输入层o1o2om…x1x2xn………………W(1)W(2)W(3)W(h)2019/12/2531多级网非线性激活函数F(X)=kX+CF3(F2(F1(XW(1))W(2))W(3))2019/12/2532BP网络主要内容:BP网络的构成隐藏层权的调整分析Delta规则理论推导算法的收敛速度及其改进讨论BP网络中的几个重要问题重点:BP算法难点:Delta规则的理论推导2019/12/2533BP网络1概述2基本BP算法3算法的改进4算法的实现5算法的理论基础6几个问题的讨论2019/12/2534概述1、BP算法的出现非循环多级网络的训练算法UCSDPDP小组的Rumelhart、Hinton和Williams1986年独立地给出了BP算法清楚而简单的描述1982年,Paker就完成了相似的工作1974年,Werbos已提出了该方法2、弱点:训练速度非常慢、局部极小点的逃离问题、算法不一定收敛。3、优点:广泛的适应性和有效性。2019/12/2535基本BP算法网络的构成神经元的网络输入:neti=x1w1i+x2w2i+…+xnwni神经元的输出:netenetfo11)()1()()1(1)(22ooooeenetfnetnet2019/12/2536输出函数分析0.5f′(net)0.25o011(0,0.5)net(0,0)oneteo11应该将net的值尽量控制在收敛比较快的范围内可以用其它的函数作为激活函数,只要该函数是处处可导的2019/12/2537网络的拓扑结构x1o1输出层隐藏层输入层x2o2omxn…………………W(1)W(2)W(3)W(L)2019/12/2538网络的拓扑结构1.BP网的结构2.输入向量、输出向量的维数、网络隐藏层的层数和各个隐藏层神经元的个数的决定3.实验:增加隐藏层的层数和隐藏层神经元个数不一定总能够提高网络精度和表达能力。4.BP网一般都选用二级网络。2019/12/2539网络的拓扑结构x1o1输出层隐藏层输入层x2o2omxn…………WV2019/12/2540训练过程概述样本:(输入向量,理想输出向量)权初始化:“小随机数”与饱和状态;“不同”保证网络可以学。1、向前传播阶段:(1)从样本集中取一个样本(Xp,Yp),将Xp输入网络;(2)计算相应的实际输出Op:Op=Fl(…(F2(F1(XpW(1))W(2))…)W(L))2019/12/2541训练过程概述2、向后传播阶段——误差传播阶段:(1)计算实际输出Op与相应的理想输出Yp的差;(2)按极小化误差的方式调整权矩阵。(3)网络关于第p个样本的误差测度:mjpjpjpoyE1221(4)网络关于整个样本集的误差测度:ppEE2019/12/2542误差传播分析1、输出层权的调整wpq=wpq+∆wpq∆wpq=αδqop=αfn′(netq)(yq-oq)op=αoq(1-oq)(yq-oq)opwpqANpANq第L-1层第L层∆wpq2019/12/2543隐藏层权的调整ANpANqANhvhpδpk-1δ1kwp1wpqδqkwpmδmk第k