10-第三篇 第3章 常用神经网络
- 格式:doc
- 大小:625.00 KB
- 文档页数:15
神经网络的原理和应用神经网络,是一种模拟生物神经系统、具有学习和适应功能的计算模型。
神经网络模型的基本组成部分是神经元,通过有向边连接起来构成网络。
神经网络模型可以应用于图像识别、语音识别、自然语言处理、智能控制等领域,吸引了广泛的研究和应用。
一、神经网络的基本原理1.神经元模型神经元是神经网络的基本单元,也是神经网络的最小计算单元。
与生物神经元类似,神经元将多个输入信号加权求和,并通过激活函数处理后输出到下一层神经元。
常用的激活函数有Sigmoid函数、ReLU函数、Tanh函数等。
2.前馈神经网络前馈神经网络是一种最基本的神经网络模型,输入层接受输入信号,输出层输出处理结果,中间层称为隐层。
每个节点都与下一层节点相连接,信息仅从输入层流向输出层。
前馈神经网络可以用于分类、回归、预测等问题。
3.反向传播算法反向传播算法是神经网络训练中常用的算法之一。
神经网络训练的目标是通过优化权重参数使得网络输出与期望输出尽可能接近。
反向传播算法通过反向传递误差信号更新权重,使得误差逐渐减小。
反向传播算法的优化方法有随机梯度下降、自适应学习率等。
二、神经网络的应用1.图像识别图像识别是神经网络应用的一个重要领域,常用的应用有人脸识别、车牌识别、物体识别等。
神经网络可以通过反复训练调整权重参数,识别出图像中的特征,并进行分类或者抽取特征。
2.自然语言处理自然语言处理是指对人类语言进行计算机处理的领域。
神经网络在机器翻译、文本分类、情感分析等领域有着广泛的应用。
神经网络可以处理句子、段落等不同层次的语言特征,从而提高自然语言处理的效果。
3.智能控制智能控制是指通过建立控制系统,从而优化控制效果,提高生产效率。
神经网络在智能控制领域有着广泛的应用。
神经网络可以学习和自适应地优化控制系统的参数,从而提高稳定性和控制精度。
三、神经网络的未来随着人工智能技术的不断进步,神经网络将发挥越来越重要的作用。
未来,神经网络将继续发展和优化,实现更加精准和智能的应用。
神经网络简介神经网络简介:人工神经网络是以工程技术手段来模拟人脑神经元网络的结构和特征的系统。
利用人工神经网络可以构成各种不同拓扑结构的神经网络,他是生物神经网络的一种模拟和近似。
神经网络的主要连接形式主要有前馈型和反馈型神经网络。
常用的前馈型有感知器神经网络、BP 神经网络,常用的反馈型有Hopfield 网络。
这里介绍BP (Back Propagation )神经网络,即误差反向传播算法。
原理:BP (Back Propagation )网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
BP 神经网络模型拓扑结构包括输入层(input )、隐层(hide layer)和输出层(output layer),其中隐层可以是一层也可以是多层。
图:三层神经网络结构图(一个隐层)任何从输入到输出的连续映射函数都可以用一个三层的非线性网络实现 BP 算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。
正向传播时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。
若在输出层得不到期望的输出,则转向误差信号的反向传播流程。
通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。
单个神经元的计算:设12,...ni x x x 分别代表来自神经元1,2...ni 的输入;12,...i i ini w w w 则分别表示神经元1,2...ni 与下一层第j 个神经元的连接强度,即权值;j b 为阈值;()f ∙为传递函数;j y 为第j 个神经元的输出。
若记001,j j x w b ==,于是节点j 的净输入j S 可表示为:0*nij ij i i S w x ==∑;净输入j S 通过激活函数()f ∙后,便得到第j 个神经元的输出:0()(*),nij j ij i i y f S f w x ===∑激活函数:激活函数()f ∙是单调上升可微函数,除输出层激活函数外,其他层激活函数必须是有界函数,必有一最大值。
神经⽹络(NeuralNetwork)⼀、激活函数激活函数也称为响应函数,⽤于处理神经元的输出,理想的激活函数如阶跃函数,Sigmoid函数也常常作为激活函数使⽤。
在阶跃函数中,1表⽰神经元处于兴奋状态,0表⽰神经元处于抑制状态。
⼆、感知机感知机是两层神经元组成的神经⽹络,感知机的权重调整⽅式如下所⽰:按照正常思路w i+△w i是正常y的取值,w i是y'的取值,所以两者做差,增减性应当同(y-y')x i⼀致。
参数η是⼀个取值区间在(0,1)的任意数,称为学习率。
如果预测正确,感知机不发⽣变化,否则会根据错误的程度进⾏调整。
不妨这样假设⼀下,预测值不准确,说明Δw有偏差,⽆理x正负与否,w的变化应当和(y-y')x i⼀致,分情况讨论⼀下即可,x为负数,当预测值增加的时候,权值应当也增加,⽤来降低预测值,当预测值减少的时候,权值应当也减少,⽤来提⾼预测值;x为正数,当预测值增加的时候,权值应当减少,⽤来降低预测值,反之亦然。
(y-y')是出现的误差,负数对应下调,正数对应上调,乘上基数就是调整情况,因为基数的正负不影响调整情况,毕竟负数上调需要减少w的值。
感知机只有输出层神经元进⾏激活函数处理,即只拥有⼀层功能的神经元,其学习能⼒可以说是⾮常有限了。
如果对于两参数据,他们是线性可分的,那么感知机的学习过程会逐步收敛,但是对于线性不可分的问题,学习过程将会产⽣震荡,不断地左右进⾏摇摆,⽽⽆法恒定在⼀个可靠地线性准则中。
三、多层⽹络使⽤多层感知机就能够解决线性不可分的问题,输出层和输⼊层之间的成为隐层/隐含层,它和输出层⼀样都是拥有激活函数的功能神经元。
神经元之间不存在同层连接,也不存在跨层连接,这种神经⽹络结构称为多层前馈神经⽹络。
换⾔之,神经⽹络的训练重点就是链接权值和阈值当中。
四、误差逆传播算法误差逆传播算法换⾔之BP(BackPropagation)算法,BP算法不仅可以⽤于多层前馈神经⽹络,还可以⽤于其他⽅⾯,但是单单提起BP算法,训练的⾃然是多层前馈神经⽹络。
神经网络基本知识、BP神经网络一.概述1.1神经网络的定义人工神经网络(Artificial Neural Networks,简写为 ANNs)是由大量类似于生物神经元的处理单元相互连接而成的非线性复杂网络系统。
它是用一定的简单的数学模型来对生物神经网络结构进行描述,并在一定的算法指导下,使其能够在某种程度上模拟生物神经网络所具有的智能行为,解决传统算法所不能胜任的智能信息处理的问题。
它是巨量信息并行处理和大规模并行计算的基础,神经网络既是高度非线性动力学系统,又是自组织自适应系统,可用来描述认知、决策和控制的智能行为。
1.2 神经网络的发展历史对人工神经网络的研究始于 1943 年,经历 60 多年的发展,目前已经在许多工程研究领域得到了广泛应用。
但它并不是从一开始就倍受关注,它的发展道路曲折、几经兴衰,大致可以分为以下五个阶段:①奠基阶段:1943 年,由心理学家 McCulloch 和数学家 Pitts 合作,提出第一个神经计算模型,简称 M-P 模型,开创了神经网络研究这一革命性的思想。
②第一次高潮阶段:20 世纪 50 年代末 60 年代初,该阶段基本上确立了从系统的角度研究人工神经网络。
1957 年 Rosenblatt 提出的感知器(Perceptron)模型,可以通过监督学习建立模式判别能力。
③坚持阶段:随着神经网络研究的深入开展,人们遇到了来自认识、应用实现等方面的难题,一时难以解决。
神经网络的工作方式与当时占主要地位的、以数学离散符号推理为基本特征的人工智能大相径庭,但是更主要的原因是:当时的微电子技术无法为神经网络的研究提供有效的技术保证,使得在其后十几年内人们对神经网络的研究进入了一个低潮阶段。
④第二次高潮阶段:20 世纪 70 年代后期,由于神经网络研究者的突出成果,并且传统的人工智能理论和 Von.Neumann 型计算机在许多智能信息处理问题上遇到了挫折,而科学技术的发展又为人工神经网络的物质实现提供了基础,促使神经网络的研究进入了一个新的高潮阶段。
了解神经网络的不同类型及其优势神经网络是一种模拟人脑神经系统的计算模型,它通过各个神经元之间的连接以及连接权值的调整来实现信息的处理和学习。
随着人工智能领域的发展,神经网络在图像识别、自然语言处理、推荐系统等应用中发挥着重要的作用。
本文将介绍神经网络的不同类型及其优势。
一、前馈神经网络(Feedforward Neural Network)前馈神经网络是最基本的神经网络类型之一,它的信息流只能沿着前向的路径传递,不允许回路出现。
前馈神经网络通常由输入层、隐含层(可能存在多个)、输出层组成。
其中,输入层接收外部输入的数据,隐含层进行信息的处理和转换,输出层输出网络的结果。
前馈神经网络的优势在于其简单性和易于理解。
通过调整连接权值和选择合适的激活函数,前馈神经网络可以实现各种复杂的非线性映射关系,从而适用于多种任务。
二、循环神经网络(Recurrent Neural Network)循环神经网络是一种具有循环连接的神经网络类型,它可以根据以前的计算结果进行自我反馈。
相比于前馈神经网络,循环神经网络具有记忆功能,适用于处理序列数据,比如语音识别、语言模型等。
循环神经网络的优势在于其能够捕捉序列数据中的时间依赖关系。
通过循环连接,网络可以利用之前的状态信息来影响当前的输出,从而实现对历史信息的记忆和利用。
三、卷积神经网络(Convolutional Neural Network)卷积神经网络是一种专门用于处理网格结构数据的神经网络类型,如图像、视频等。
其核心思想是利用卷积层和池化层来提取图像中的特征,最终通过全连接层进行分类或回归任务。
卷积神经网络的优势在于其能够自动学习图像中的特征。
通过卷积操作,网络可以提取图像的局部特征,并通过池化操作减少参数量,使网络具有更好的计算效率和推广能力。
四、生成对抗网络(Generative Adversarial Network)生成对抗网络是由生成器和判别器两个部分组成的,它们通过对抗的方式相互协调来提高网络的性能。
神经⽹络系列之三--损失函数第3章损失函数3.0 损失函数概论3.0.1 概念在各种材料中经常看到的中英⽂词汇有:误差,偏差,Error,Cost,Loss,损失,代价......意思都差不多,在本书中,使⽤“损失函数”和“Loss Function”这两个词汇,具体的损失函数符号⽤J来表⽰,误差值⽤loss表⽰。
“损失”就是所有样本的“误差”的总和,亦即(m为样本数):损失 = \sum^m_{i=1}误差_iJ = \sum_{i=1}^m loss在⿊盒⼦的例⼦中,我们如果说“某个样本的损失”是不对的,只能说“某个样本的误差”,因为样本是⼀个⼀个计算的。
如果我们把神经⽹络的参数调整到完全满⾜独⽴样本的输出误差为0,通常会令其它样本的误差变得更⼤,这样作为误差之和的损失函数值,就会变得更⼤。
所以,我们通常会在根据某个样本的误差调整权重后,计算⼀下整体样本的损失函数值,来判定⽹络是不是已经训练到了可接受的状态。
损失函数的作⽤损失函数的作⽤,就是计算神经⽹络每次迭代的前向计算结果与真实值的差距,从⽽指导下⼀步的训练向正确的⽅向进⾏。
如何使⽤损失函数呢?具体步骤:1. ⽤随机值初始化前向计算公式的参数;2. 代⼊样本,计算输出的预测值;3. ⽤损失函数计算预测值和标签值(真实值)的误差;4. 根据损失函数的导数,沿梯度最⼩⽅向将误差回传,修正前向计算公式中的各个权重值;5. goto 2, 直到损失函数值达到⼀个满意的值就停⽌迭代。
3.0.2 机器学习常⽤损失函数符号规则:a是预测值,y是样本标签值,J是损失函数值。
Gold Standard Loss,⼜称0-1误差loss=\begin{cases} 0 & a=y \\ 1 & a \ne y \end{cases}绝对值损失函数loss = |y-a|Hinge Loss,铰链/折页损失函数或最⼤边界损失函数,主要⽤于SVM(⽀持向量机)中loss=max(0,1-y \cdot a), y=\pm 1Log Loss,对数损失函数,⼜叫交叉熵损失函数(cross entropy error)loss = -\frac{1}{m} \sum_i^m y_i log(a_i) + (1-y_i)log(1-a_i) \qquad y_i \in \{0,1\}Squared Loss,均⽅差损失函数loss=\frac{1}{2m} \sum_i^m (a_i-y_i)^2Exponential Loss,指数损失函数loss = \frac{1}{m}\sum_i^m e^{-(y_i \cdot a_i)}3.0.3 损失函数图像理解⽤⼆维函数图像理解单变量对损失函数的影响图3-1 单变量的损失函数图图3-1中,纵坐标是损失函数值,横坐标是变量。
神经网络的基本知识点总结一、神经元神经元是组成神经网络的最基本单元,它模拟了生物神经元的功能。
神经元接收来自其他神经元的输入信号,并进行加权求和,然后通过激活函数处理得到输出。
神经元的输入可以来自其他神经元或外部输入,它通过一个权重与输入信号相乘并求和,在加上偏置项后,经过激活函数处理得到输出。
二、神经网络结构神经网络可以分为多层,一般包括输入层、隐藏层和输出层。
输入层负责接收外部输入的信息,隐藏层负责提取特征,输出层负责输出最终的结果。
每一层都由多个神经元组成,神经元之间的连接由权重表示,每个神经元都有一个对应的偏置项。
通过调整权重和偏置项,神经网络可以学习并适应不同的模式和规律。
三、神经网络训练神经网络的训练通常是指通过反向传播算法来调整网络中每个神经元的权重和偏置项,使得网络的输出尽可能接近真实值。
神经网络的训练过程可以分为前向传播和反向传播两个阶段。
在前向传播过程中,输入数据通过神经网络的每一层,并得到最终的输出。
在反向传播过程中,通过计算损失函数的梯度,然后根据梯度下降算法调整网络中的权重和偏置项,最小化损失函数。
四、常见的激活函数激活函数负责对神经元的输出进行非线性变换,常见的激活函数有Sigmoid函数、Tanh函数、ReLU函数和Leaky ReLU函数等。
Sigmoid函数将输入限制在[0,1]之间,Tanh函数将输入限制在[-1,1]之间,ReLU函数在输入大于0时输出等于输入,小于0时输出为0,Leaky ReLU函数在输入小于0时有一个小的斜率。
选择合适的激活函数可以使神经网络更快地收敛,并且提高网络的非线性拟合能力。
五、常见的优化器优化器负责更新神经网络中每个神经元的权重和偏置项,常见的优化器有梯度下降法、随机梯度下降法、Mini-batch梯度下降法、动量法、Adam优化器等。
这些优化器通过不同的方式更新参数,以最小化损失函数并提高神经网络的性能。
六、常见的神经网络模型1、全连接神经网络(Fully Connected Neural Network):每个神经元与下一层的每个神经元都有连接,是最基础的神经网络结构。
第三章常用神经网络3.1前馈型人工神经网络前馈神经网络是神经网络中的一种典型分层结构,信息从输入层进入网络后逐层向前传递至输出层。
根据前馈网络中神经元转移函数、隐层数以及权值调整规则的不同,可以形成具有各种功能特点的神经网络。
例如,如果转移函数采用线性阈值函数或符号函数且只有一个输出层(无隐层),或有一个以上的隐层,则分别称为单层感知器和多层感知器;如果转移函数采用非线性连续有界函数且只有一个输出层(无隐层),或有一个以上的隐层,则分别称为单层BP网络和多层BP网络。
3.1.1 线性阈值单元组成的前馈网络这类前馈网络的转移函数采用线性阈值函数或符号函数。
1.单层感知器1958年,美国心理学家Frank Rosenblat提出一种具有单层计算单元的神经网络,称为Perception,即感知器。
感知器是模拟人的视觉接受环境信息,并由神经冲动进行信息传递。
感知器研究中首次提出了自组织、自学习的思想,而且对所能解决的问题存在着收敛算法,并能从数学上严格证明,因而对神经网络的研究起了重要推动作用。
单层感知器的结构与功能都非常简单,以单层感知器(图3-1神经元基本模型(即MP基本模型。
1)图3-1为第j(j=1,2,…mx n)T,通过一个阈值函数f(从数学观点来说,等于0时,输出为1神经元的连接权值w ji当输入为X,对于jnii jijx ws=∑=1其输出为:2 )(1j ni i ji j x w f y θ+=∑= (3-1)转移函数f (•)是阈值函数(即单位阶跃函数),故: ⎪⎪⎩⎪⎪⎨⎧<+≥+=∑∑==0,00,111j ni i jij ni i jij x wx wy θθ (3-2)通过转移函数,其输出只有两个状态,“1”或“0”,所以,它实际上是输入模式的分类器,即可以辨识输入模式属两类中的那一类。
当单层感知器模型只有1个输出结点时,称为简单感知器,其实就是MP 模型。
对于输出结点为的简单感知器,若输入向量的维数n=2,则向量X 用两维平面上的一个点来表示。
设被观察的模式只有A 、B 两类,则:(3-3)A 、B 两类分别属于集合R 1 (A ∈R 1)、R 2(B ∈R 2),且R 1与R 2是 线性可分的,如图3-2所示。
利用简单感知器的计算式(3-3)可以实现逻辑代数中的一些运算: (1)当取w 1=w 2=1, θ=-1.5时, 完成逻辑“与”的运算功 能,即 x 1∧x 2;(2)当取w 1=w 2=1, θ=-0.5时,完成逻辑“或”的运算功能, 即x 1∨x 2;(3)当取w 1= -1,w 2=0, θ= 1时,完成逻辑“非”的运算功能,即x 。
若x 1与x 2分别取布尔值,逻辑运算列入表3-1中。
表3-1 逻辑运算表若净输入为零,便得到一条线性的模式判别函数:⎩⎨⎧→→=++=+=∑=类类B A x w x w f x w f y i i i 01)()(212211θθ图3-2 线性可分两维模式302211=++θx w x w设 w 1=w 2=1 θ= -1.5 则 x 1有输入样本取为“0”和“1输入样本记为(x 1,x 2):(0,0),(0,1),(1,0),(1,1),用表“*图3-3a 所示。
若θ=-0.5,其他相同,则直线 x 1+x 2-0.5=0进行“或”运算,可分性如图3-3 b 所示。
2)单层感知器的学习方法感知器的学习是有导师的学习,样本向量X 输入到感知器中,感知器的各处理单元按(3-1)式计算,得到实际输出yj,算法就是前面介绍的感知器学习算法,一单层多结点感知器模型,(1(2)输入样本对{X p ,d p },样本对数望的输出向量(导师信号);(3)将X p )s g n(p j jp X W y = (j=1,2,…,m (4)计算各结点对应的权值:jp jp j j y d t W t W [)()1(-+=+∆η其中η为学习率,一般取0<η<1,取值太大影响训练稳定性,太小则使训练的收敛速度变慢。
(5)返回步骤(2),输入下一对样本,周而复始直到d jp =y jp 即d jp -y jp =0为止。
例3-1 单神经元感知器有3个样本对,分别如下:X 1=[1 -2 0 1 ]T d 1=-1 X 2=[0 1.5 -0.5 -1]T d 2=-1 X 3=[-1 1 0.5 -1]T d 3= 1设初始权向量W o =[1 -1 0 0.5], η=0.1,试根据上面的学习规则训练感知器。
解:(1)输入X 1,得4 s 1=W o X 1=[1 -1 0 0.5]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-1021=2.5y 1=s gn (2.5)=1∆W 1=η(d 1-y 1)X 1T= 0.1(-1-1)[1-2 0 1]=[-0.2 0.4 0 0.2]W 1=W O +∆W 1=[1 -1 0 0.5]+[-0.2 0.4 0 0.2]=[0.8 -0.6 0 0.7] (2)输入X 2,得s 2=W 1X 2=[0.8 -0.6 0 0.7] ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--15.05.10= -1.6 y 2=sgn (-1.6)= -1由于y 2=d 2 故∆W 2=0 , W 2=W 1+∆W 2=W 1(3)输入X 3, 得S 3=W 2X 3=[0.8 -0.6 0 0.7] ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-15.011= -2.1故y 2=sgn (-2.1)= -1所以 ∆W 3=η(d 3-y 3)X 3T =0.1[1-(-1)][-1 1 0.5 -1]=[-0.2 0.2 0.1 -0.2]W 4 =W 3+∆W 3=[0.8 -0.6 0 0.7]+[-0.2 0.2 0.1 -0.2]=[0.6 -0.4 0.1 0.5](4)重复以上三个步骤,即重新输入X 1、X 2和X 3并调整向权量,直到d p -y p =0(p=1,2,3)为止。
通过Rosenlatt 证明,当输入样本是线性可分时,不论初始权向量如何,经有限次修改,最终能找到一个权向量把n 维空间的两类模式用n-1维的超平面线性分开。
必须指出:初始值W 1不同,训练的结果W 也不同,但都能满足误差为零的要求;另外,收敛的速度与η值有关。
3) 单层感知器的局限性1969年Minsky 和Papert 出版了《感知机》这本书,他们指出了简单感知器的局限性问题,只能解决一阶谓词逻辑和线性分类问题,不能解决高级阶谓词和非线性分类问题,如“异或”(XOR )问题。
例如,表3-2给出一组通过异或计算样本,要求经过学习,感知器能产生相应的输出。
假定简单的感知器能解这个问题,那么,根据式(3-3),须满足下列四个不等式:5θθθθθθθθ-<+→<+⨯+⨯->→>+⨯+⨯->→>+⨯+⨯<→<+⨯+⨯2121121221210110010100000w w w w w w w w w w w w从上述可以看出,4个等式无法同时满足,主要是2、3、4式是矛盾的。
即无法使权重分别都大于-θ,同时权重和又小于-θ,即这组权重不存在。
现在用简单的几何图形来说明感知器的分类问题。
当[x 1,x 2]T =[1,0]T 及[0,1]T 时,y=1,图(3-5)中用“*”表示;当[x 1,x 2]T =[0,0] T 及[1,1]T 时,y=0,图(3-5)用“o ”表示。
这个四方形顶点,不存在一条直线将*与o 分开,所以简单感知器无法实现异或问题,这就是简单感知器的局限性。
Minsky 和Paret 认为要解决高阶谓词和非线性问题,必须引入含有隐层单元的多层感知器。
6)5.111()5.111()5.011(21212211-⨯+⨯=+⨯-⨯-=-⨯+⨯=y y f z x x f y x x f y 该感知器的输入层和隐含层的连接;实际上就是在模式空间中用两个超平面去划分样本,如图3-7所示,两条直线为:5.1:5.0:212211=+=+x x L x x L不难看出,输出层相当于一个逻辑“与”运算,这就构成了图3-7所示的两条直线内的区域,从而解决了“异域”这种非线性分类问题。
可以想象到,单隐层神经元数目的增加,可以在两维平面上构建任意的凸域。
所谓凸域,就是双表3-3直观形象地给出了不同隐层感知器的分类能力。
表3-3中,将转移函数限定为符号函数或单位跳跃函数,以便于直观描述感知器的分类能力。
表3-3 不同隐层数感知器的分类能力73.1.2 非线性单元组成的前馈网络这类前馈网络的转移函数采用非线性连续有界可导函数。
1、误差反向传播算法(BP 算法)的基本思想含有隐层的多层前馈网络能大大提高网络的分类能力,但长期以来没有提出解决权值调整的有效算法。
1986年,Rumelhart 和Mccelland 领导的科学家小组在《Parallel Distributed Processing 》一书中,对具有非线性转移函数的多层前馈网络的进行了详尽的分析,提出了误差反向传播(Error Back Proragation ,简称BP)算法,实现了Minsky 关于多层网络能够进行XOR 分类的设想。
由于具有非线性连续有界可导转移函数的多层前馈网络的训练经常采用误差反向传播算法,因此人们也常把这种前馈网络直接称为BP 网络。
BP 算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传人,经各隐层逐层处理后,传向输出层。
若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段;误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信导,此误差信导即作为修正各单元权值的依据。
这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。
权值不断调整的过程,也就是网络的学习训练过程。
此过程一直进行到网络输出的误差2、单层BP 网络图3-10是一单层BP 函数。
当网络实际输出j y 与期望输出j d 误差E :∑∑∑∑====-=-=-=mj ni i ji j m j j m j j j x w f d f d y d E 121112)]([21[21)(21式(3-4沿负梯度方向调权值,即权值调整量与负梯度成正比,即:)...2,1;...2,1(n i m j w E w jiji ==∂∂-=∆η(3-5)8)1,0(∈η为比例系数。
由于BP 算法使权值调整沿负梯度方向变化,故该算法常被称为误差的梯度下降算法。
现推导BP 算法:输出层第j 单元的净输入:i ni jij x ws ∑==1(3-6)输出层第j 单元的输出为:)(j j s f y = (3-7)式(3-5)可写成:jij jjiw s s E w E∂∂⨯∂∂=∂∂ (3-8)式(3-8)中,定义误差信号为jj s E ∂∂-=δ,由式(3-6)i jij x w s =∂∂式(3-8)可写成:i j jix w Eδ-=∂∂,于是式(3-5)可写为:i j ji x w ηδ=∆ (3-9a )式(3-9a )为BP 算法调整权值的元素式,也可写成向量式:T T T T m j jm ji j j X X w w w W ηδδδδη==∆∆∆=∆]......[]......[11 (3-9b )式(3-9b )中,Tn i x x x X ]......[1=,]......[1m j δδδδ=调整后的权矩阵为(k 为迭代次数):T T X k W W k W k W ηδ+=∆+=+)()()1( (3-10)式(3-9a )可进一步展开:jj jjj s y y E s E ∂∂⨯∂∂-=∂∂-=δ (3-11)式(3-11)第一项:)(])(21[12j j mj j j j j y d y d y y E--=-∂∂=∂∂∑= (3-12)式(3-11)第二项:)()](['j j jjj s f s f s s y =∂∂=∂∂ (3-13) 将式(3-11)、(3-12)、(3-13)代入(3-9a )得到输出层BP 算法的最终形式:i j j j i j ji x s f y d x w )()('-==∆ηηδ (3-14)比较(3-14)与(2-13)可知,BP 算法采用的就是δ学习规则。