1、BP神经网络详细讲解严选参考PS:这篇介绍神经网络是很详细的,有一步一步的推导公式!神经网络是DL(深度学习)的基础。如果对神经网络已经有所了解,可以直接跳到 “三、BP算法的执行步骤“ 部分,算法框架清晰明了。另外,如果对NN 很感兴趣,也可以参阅最后两篇参考博文,也很不错!学习是神经网络一种最重要也最令人注目的特点。在神经网络的发展进程中,学习算法的研究有着十分重要的地位。目前,人们所提出的神经网络模型都是和学习算 法相应的。所以,有时人们并不去祈求对模型和算法进行严格的定义或区分。有的模型可以有多种算法而有的算法可能可用于多种模型。不过,有时人们也称算法 为模型。自从40年代Hebb提出
2、的学习规则以来,人们相继提出了各种各样的学习算法。其中以在1986年Rumelhart等提出的误差反向传播法,即BP(error BackPropagation)法影响最为广泛。直到今天,BP算法仍然是自动控制上最重要、应用最多的有效算法。121 神经网络的学习机理和机构在神经网络中,对外部环境提供的模式样本进行学习训练,并能存储这种模式,则称为感知器;对外部环境有适应能力,能自动提取外部环境变化特征,则称为认知器。神经网络在学习中,一般分为有教师和无教师学习两种。感知器采用有教师信号进行学习,而认知器则采用无教师信号学习的。在主要神经网络如BP网 络,Hopfield网络,ART网络和Koh
3、onen网络中;BP网络和Hopfield网络是需要教师信号才能进行学习的;而ART网络和 Kohonen网络则无需教师信号就可以学习。所谓教师信号,就是在神经网络学习中由外部提供的模式样本信号。一、感知器的学习结构感知器的学习是神经网络最典型的学习。目前,在控制上应用的是多层前馈网络,这是一种感知器模型,学习算法是BP法,故是有教师学习算法。一个有教师的学习系统可以用图17表示。这种学习系统分成三个部分:输入部,训练部和输出部。图1-7 神经网络学习系统框图输入部接收外来的输入样本X,由训练部进行网络的权系数W调整,然后由输出部输出结果。在这个过程中,期望的输出信号可以作为教师信号输入,由该
4、教师信号与实际输出进行比较,产生的误差去控制修改权系数W。学习机构可用图18所示的结构表示。在图中,Xl,X2,Xn,是输入样本信号,W1,W2,Wn是权系数。输入样本信号Xi可以取离散值“0”或“1”。输入样本信号通过权系数作用,在u产生输出结果 WiXi,即有:u=WiXi=W1X1+W2X2+WnXn再把期望输出信号Y(t)和u进行比较,从而产生误差信号e。即权值调整机构根据误差e去对学习系统的权系数进行修改,修改方向应使误差e变小,不断进行下去,使到误差e为零,这时实际输出值u和期望输出值Y(t)完全一样,则学习过程结束。神经网络的学习一般需要多次重复训练,使误差值逐渐向零趋近,最后到
5、达零。则这时才会使输出与期望一致。故而神经网络的学习是消耗一定时期的,有的学习过程要重复很多次,甚至达万次级。原因在于神经网络的权系数W有很多分量W1,W2,-Wn;也即是一个多参数修改系统。系统的参数的调整就必定耗时耗量。目前,提高神经网络的学习速度,减少学习重复次数是十分重要的研究课题,也是实时控制中的关键问题。二、感知器的学习算法感知器是有单层计算单元的神经网络,由线性元件及阀值元件组成。感知器如图1-9所示。图1-9 感知器结构感知器的数学模型:(1-12)其中:f.是阶跃函数,并且有(1-13)是阀值。感知器的最大作用就是可以对输入的样本分类,故它可作分类器,感知器对输入信号的分类如
6、下:(1-14)即是,当感知器的输出为1时,输入样本称为A类;输出为-1时,输入样本称为B类。从上可知感知器的分类边界是:(1-15)在输入样本只有两个分量X1,X2时,则有分类边界条件:(1-16)即 W1X1+W2X2-=0 (1-17)也可写成(1-18)这时的分类情况如固110所示。感知器的学习算法目的在于找寻恰当的权系数w(w1w2,Wn),使系统对一个特 定的样本x(xt,x2,xn)熊产生期望值d。当x分类为A类时,期望值d1;X为B类 时,d=-1。为了方便说明感知器学习算法,把阀值并人权系数w中,同时,样本x也相应增加一 个分量xn+1。故令:Wn+1=-,Xn+1=1 (1
7、-19)则感知器的输出可表示为:(1-20)感知器学习算法步骤如下:1对权系数w置初值对权系数w(W1W2,Wn,Wn+1)的各个分量置一个较小的零随机值,但Wn+1-。并记为Wl(0),W2(0),Wn(0),同时有Wn+1(0)-。这里Wi(t)为t时刻从第i个输入上的权系数,i1,2,n。Wn+1(t)为t时刻时的阀值。图1-10 感知器的分类例子2输入一样本X(X1,X2,Xn+1)以及它的期望输出d。期望输出值d在样本的类属不同时取值不同。如果x是A类,则取d1,如果x是B类,则取-1。期望输出d也即是教师信号。3计算实际输出值Y4根据实际输出求误差eedY(t) (1-21)5用误
8、差e去修改权系数i=1,2,n,n+1 (1-22)其中,称为权重变化率,01在式(122)中,的取值不能太大如果1取值太大则会影响wi(t)的稳定;的取值也不能太小,太小则会使Wi(t)的求取过程收敛速度太慢。当实际输出和期望值d相同时有:Wi(t+1)=Wi(t)6转到第2点,一直执行到一切样本均稳定为止。从上面式(114)可知,感知器实质是一个分类器,它的这种分类是和二值逻辑相应的。因此,感知器可以用于实现逻辑函数。下面对感知器实现逻辑函数的情况作一些介绍。例:用感知器实现逻辑函数X1VX2的真值:X10011X20101X1V X20111以X1VX21为A类,以X1VX2=0为B类,
9、则有方程组(1-23)即有:(1-24)从式(124)有:W1,W2令 W1=1,W2=2则有:1取=0.5则有:X1+X2-0.5=0,分类情况如图111所示。图1-11 逻辑函数X1VX2的分类122 神经网络学习的梯度算法从感如器的学习算法可知,学习的目的是在于修改网络中的权系数,使到网络对于所输入的模式样本能正确分类。当学习结束时,也即神经网络能正确分类时,显然 权系数就反映了同类输人模式样本的共同特征。换句话讲,权系数就是存储了的输人模式。由于权系数是分散存在的,故神经网络自然而然就有分布存储的特点。前面的感知器的传递函数是阶跃函数,所以,它可以用作分类器。前面一节所讲的感知器学习算
10、法因其传递函数的简单而存在局限性。感知器学习算法相当简单,并且当函数线性可分时保证收敛。但它也存在问题:即函数不是线性可分时,则求不出结果;另外,不能推广到一般前馈网络中。为了克服存在的问题,所以人们提出另一种算法梯度算法(也即是LMS法)。为了能实现梯度算法,故把神经元的激发函数改为可微分函数,例如Sigmoid函数,非对称Sigmoid函数为f(X)=1/(1+e-x),对称Sigmoid函数f(X)=(1-e-x)/(1+e-x);而不采用式(113)的阶跃函数。对于给定的样本集Xi(i1,2,n),梯度法的目的是寻找权系数W*,使得fW*.Xi与期望输出Yi尽可能接近。设误差e采用下式表示:(1-25)其中,YifW*Xi是对应第i个样本Xi的实时输出Yi是对应第i个样本Xi的期望输出。要使误差e最小,可先求取e的梯度:(对每一个样本的期望与输出值求导)(1-26)其中:(1-27)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1