计算智能神经网络精选文档.ppt
计算智能神经网络本讲稿第一页,共二十六页 神经网络马文明斯基(Marvin Lee Minsky,1927年8月9日)生于纽约市,1944年-1945年服役于美国海军。1954年于普林斯顿大学获得数学博士学位。在数学系做研究生时,明斯基与同学构建了第一台基于模拟突出增强原理的随机连线网络学习机器(SNARC),被称为第一台神经网络计算机。2.自己是第一台神经网络计算机的制造者,却险些葬送了神经网络的前途。1.由于搞的太偏门,险些无法毕业。趣事:本讲稿第二页,共二十六页 神经网络原文如下:尽管它有严重的局限性,感知器展示了它自身的研究价值。它有很多吸引人的优点:它的线性,迷人的学习法则,作为一类并行计算范例的清晰的简单性。没有任何理由认为这些优点能带到多层感知器中去。依据我们的直觉判断,即使推广到多层系统也不会有好的结果。但是,我们认为证明(或否定)这一点是一个很重要的需要研究的问题。1969年,他和佩波特的名著感知机证明了Rosenblatt感知机解决非线性问题能力薄弱,连XOR逻辑分类都做不到,只能作线性划分。更重要的是,他将关于单层感知器局限性的结论推广到了多层感知器。本讲稿第三页,共二十六页 神经网络神经网络研究进入低谷期,一直持续了将近20年。神经网络的反击:1988年,赛本柯(Cybenko)等证明:具有两个隐层的BP网络可以实现任何有界连续函数。1989年又证明:单隐层BP网络可以实现任何有界连续函数。明斯基对多层感知器的“判决”被彻底推翻我想说两点:1.不要随便预言科学的未来。好像就从来没准过。2.不要太迷信大师。本讲稿第四页,共二十六页多层前馈神经网络结构输入层隐含层输出层W1W2x2x1xny2y1ym说明1.信号只能向前传播-前馈2.含有一个输入层和输出层,含有多个隐含层3.每层之间的连接都有权值4.每层节点数目可以不同本讲稿第五页,共二十六页多层前馈神经网络具有单个隐含层的网络已经具备非线性分类能力,因此,常见的神经网络为3层:输入层、隐含层、输出层输入矢量:x1,x2,xix2x1xiwijwjkijkjk输入层节点数目为i输入层第i个节点输出为隐含层节点数目为j隐层第j个节点输出为输出层节点数目为k输出层第k个节点输出为隐含层阈值为j,输出层为k输入层到隐层权值为wij,隐层到输出层权值为wjk本讲稿第六页,共二十六页多层前馈神经网络工作过程:x2x1xiwijwjkijkjkf为激励函数(转移函数)本讲稿第七页,共二十六页激励函数神经网络常用的激励函数:(1)Sigmoid函数:1 0.5xy0(0 f(x)1)Sigmoid函数为一单调递增连续函数,且处处可导,其导数为:本讲稿第八页,共二十六页激励函数(2)双曲正切函数:(-1 f(x)1)1-1xy0导数为:Sigmoid函数通过下式能够映射到(-1,1)范围:本讲稿第九页,共二十六页误差函数用期望输出与实际输出的方差作为相应的误差测度tk为第k个样本的期望输出,yk为第k个样本通过神经网络计算的实际输出。N为参与训练的样本总数如果输出向量的维数为m,则:tk,i为第k个样本第i维的期望输出,yk,i为第k个样本通过神经网络计算出的第i维实际输出。本讲稿第十页,共二十六页神经网络的训练通过感知器的学习我们知道,如果需要感知器对问题进行分类,必须首先需要训练感知器。同样,我们也可以想到:作为感知器的扩展,神经网络也需要训练才能对问题进行分类。感知器的训练算法:Delta学习神经网络训练算法:误差逆向传播算法(BP算法)感知器调整的参数:权值w和阈值神经网络调整的参数:所有神经元的权值w和阈值本讲稿第十一页,共二十六页BP算法BP算法主要分为两个阶段:1.向前计算阶段2.向后计算阶段(逆向误差修正计算阶段)输入信号通过输入层经隐层逐层处理并计算出每个节点的实际输出值。逐层计算实际输出和期望输出之间的误差,并以此误差来修正权值。由于BP算法是多层前馈神经网络最常用的训练算法,因此,多层前馈神经网络也被称为BP神经网络。本讲稿第十二页,共二十六页BP算法-向前计算阶段x2x1xiwijwjkijkjk(1)输入一个学习样本(XK,TK),k表示样本集中的第k个样本。(2)计算隐层节点输出(3)计算输出层节点输出本讲稿第十三页,共二十六页BP算法-向后计算阶段(1)隐含层到输出层权值调整单个神经元可视为感知器,根据感知器学习算法:由于神经网网络神经元有sigmoid激励函数,所以误差k修正为:且所以:jkwjkkk本讲稿第十四页,共二十六页BP算法-向后计算阶段隐含层到输出层权值调整公式为:(2)输入层到隐含层权值调整由于隐层节点j有k个输出,且每个输出的误差为k,所以:输入层到隐含层同样有激励函数,误差调整为:wjkjkwj1wi2ij12kj本讲稿第十五页,共二十六页BP算法-向后计算阶段权值修正量:输入层到隐含层权值调整公式为:wjkjkwj1wi2ij12kj本讲稿第十六页,共二十六页学习结束取一学习样本做为输入信号中间层节点输出的计算输出层节点输出的计算输出层节点误差的计算中间层节点误差的计算中间层和输出层间权值的更新,输出层节点阈值更新输入层和中间层间权值的更新,中间层节点阈值更新全部学习样本取完?误差E小于误差上限?YYYNNW和的初始化开始向前计算阶段向后计算阶段学习次数达到?N本讲稿第十七页,共二十六页W和的初始化对每个学习样本计算误差修正值缓存区更新权值和阈值的更新全部学习样本取完?NY一括修正部分程序流程本讲稿第十八页,共二十六页举例例1:下图给出了一个多层前馈神经网络。设学习率为0.9,该网络的初始权值和阈值如下表所示,第一个样本为X=1,0,1,通过BP算法学习样本。x1x2x3w14w15w24w25w34w35w46w564561010.2-0.30.40.1-0.50.2-0.3-0.2-0.40.20.1本讲稿第十九页,共二十六页(1)向前计算:逐层计算节点输出x1x2x3w14w15w24w25w34w35w46w564561010.2-0.30.40.1-0.50.2-0.3-0.2-0.40.20.1节点4:节点5:节点6:本讲稿第二十页,共二十六页(2)向后计算:逐层计算误差x1x2x3w14w15w24w25w34w35w46w564561010.2-0.30.40.1-0.50.2-0.3-0.2-0.40.20.1节点6:节点4:节点5:本讲稿第二十一页,共二十六页(2)向后计算:修正权值、阈值x1x2x3w14w15w24w25w34w35w46w564561010.2-0.30.40.1-0.50.2-0.3-0.2-0.40.20.1节点6权值、阈值:节点4权值、阈值:本讲稿第二十二页,共二十六页(2)向后计算:修正权值、阈值x1x2x3w14w15w24w25w34w35w46w564561010.2-0.30.40.1-0.50.2-0.3-0.2-0.40.20.1节点5权值、阈值:本讲稿第二十三页,共二十六页XOR问题XORXOR逻辑逻辑逻辑逻辑x1 x2 x1 XOR x2 000011101110 x1 x2 x1 XOR x2 output0000.0082810110.9934461010.9931121100.006403测试训练后的网络:x2x135wijwjk4网络模型注:训练误差上限为0.00010.5为两类分界线class0110本讲稿第二十四页,共二十六页几个问题的讨论网络瘫痪问题网络瘫痪问题 在训练中,权可能变得很大,这会使神经元的网络输出变得很大,从而又使得其激活函数的导函数在此点上的取值很小。根据相应式子,此时的训练步长会变得非常小,进而将导致训练速度降得非常低,最终导致网络停止收敛。收敛速度问题收敛速度问题 局部极小问题局部极小问题 逃离 统计方法;Wasserman,1986将Cauchy训练与BP算法结合起来,可以在保证训练速度不被降低的情况下,找到全局极小点。本讲稿第二十五页,共二十六页几个问题的讨论步长问题步长问题 所谓步长,指的就是权值调整量w步长太小,收敛就非常慢步长太大,可能会导致网络的瘫痪自适应步长,使得权修改量能随着网络的训练而不断变化。本讲稿第二十六页,共二十六页