BP神经网络模型与学习算法

合集下载

BP神经网络模型分析

BP神经网络模型分析

BP神经网络模型分析自动化1001 31002369 潘飞摘要:本文介绍了BP网络模型、基本原理、算法以及研究现状。

关键词:BP网络基本原理结构模型1引言BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一2BP神经网络的基本原理BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。

输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。

当实际输出与期望输出不符时,进入误差的反向传播阶段。

误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。

周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。

BP神经网络模型BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。

(1)节点输出模型隐节点输出模型:Oj=f(∑Wij×Xi-qj) (1)输出节点输出模型:Yk=f(∑Tjk×Oj-qk) (2)f-非线形作用函数;q -神经单元阈值。

图1 典型BP网络结构模型图表 1 BP网络结构(2)作用函数模型作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数: f(x)=1/(1+e) (3)(3)误差计算模型误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数:Ep=1/2×∑(tpi-Opi) (4)tpi- i节点的期望输出值;Opi-i节点计算输出值。

BP人工神经网络的基本原理模型与实例

BP人工神经网络的基本原理模型与实例

BP人工神经网络的基本原理模型与实例BP(Back Propagation)人工神经网络是一种常见的人工神经网络模型,其基本原理是模拟人脑神经元之间的连接和信息传递过程,通过学习和调整权重,来实现输入和输出之间的映射关系。

BP神经网络模型基本上由三层神经元组成:输入层、隐藏层和输出层。

每个神经元都与下一层的所有神经元连接,并通过带有权重的连接传递信息。

BP神经网络的训练基于误差的反向传播,即首先通过前向传播计算输出值,然后通过计算输出误差来更新连接权重,最后通过反向传播调整隐藏层和输入层的权重。

具体来说,BP神经网络的训练过程包括以下步骤:1.初始化连接权重:随机初始化输入层与隐藏层、隐藏层与输出层之间的连接权重。

2.前向传播:将输入向量喂给输入层,通过带有权重的连接传递到隐藏层和输出层,计算得到输出值。

3.计算输出误差:将期望输出值与实际输出值进行比较,计算得到输出误差。

4.反向传播:从输出层开始,将输出误差逆向传播到隐藏层和输入层,根据误差的贡献程度,调整连接权重。

5.更新权重:根据反向传播得到的误差梯度,使用梯度下降法或其他优化算法更新连接权重。

6.重复步骤2-5直到达到停止条件,如达到最大迭代次数或误差小于一些阈值。

BP神经网络的训练过程是一个迭代的过程,通过不断调整连接权重,逐渐减小输出误差,使网络能够更好地拟合输入与输出之间的映射关系。

下面以一个简单的实例来说明BP神经网络的应用:假设我们要建立一个三层BP神经网络来预测房价,输入为房屋面积和房间数,输出为价格。

我们训练集中包含一些房屋信息和对应的价格。

1.初始化连接权重:随机初始化输入层与隐藏层、隐藏层与输出层之间的连接权重。

2.前向传播:将输入的房屋面积和房间数喂给输入层,通过带有权重的连接传递到隐藏层和输出层,计算得到价格的预测值。

3.计算输出误差:将预测的价格与实际价格进行比较,计算得到输出误差。

4.反向传播:从输出层开始,将输出误差逆向传播到隐藏层和输入层,根据误差的贡献程度,调整连接权重。

BP神经网络学习及算法

BP神经网络学习及算法

BP神经网络学习及算法1.前向传播:在BP神经网络中,前向传播用于将输入数据从输入层传递到输出层,其中包括两个主要步骤:输入层到隐藏层的传播和隐藏层到输出层的传播。

(1)输入层到隐藏层的传播:首先,输入数据通过输入层的神经元进行传递。

每个输入层神经元都与隐藏层神经元连接,并且每个连接都有一个对应的权值。

输入数据乘以对应的权值,并通过激活函数进行处理,得到隐藏层神经元的输出。

(2)隐藏层到输出层的传播:隐藏层的输出被传递到输出层的神经元。

同样,每个隐藏层神经元与输出层神经元连接,并有对应的权值。

隐藏层输出乘以对应的权值,并通过激活函数处理,得到输出层神经元的输出。

2.反向传播:在前向传播后,可以计算出网络的输出值。

接下来,需要计算输出和期望输出之间的误差,并将误差通过反向传播的方式传递回隐藏层和输入层,以更新权值。

(1)计算误差:使用误差函数(通常为均方差函数)计算网络输出与期望输出之间的误差。

误差函数的具体形式根据问题的特点而定。

(2)反向传播误差:从输出层开始,将误差通过反向传播的方式传递回隐藏层和输入层。

首先,计算输出层神经元的误差,然后将误差按照权值比例分配给连接到该神经元的隐藏层神经元,并计算隐藏层神经元的误差。

依此类推,直到计算出输入层神经元的误差。

(3)更新权值:利用误差和学习率来更新网络中的权值。

通过梯度下降法,沿着误差最速下降的方向对权值和阈值进行更新。

权值的更新公式为:Δwij = ηδjxi,其中η为学习率,δj为神经元的误差,xi为连接该神经元的输入。

以上就是BP神经网络的学习算法。

在实际应用中,还需要考虑一些其他的优化方法和技巧,比如动量法、自适应学习率和正则化等,以提高网络的性能和稳定性。

此外,BP神经网络也存在一些问题,比如容易陷入局部极小值、收敛速度慢等,这些问题需要根据实际情况进行调优和改进。

BP算法程序实现

BP算法程序实现

BP算法程序实现BP(Back Propagation)神经网络是一种常见的人工神经网络模型,是一种监督学习算法。

在BP算法中,神经网络的参数通过反向传播的方式得到更新,以最小化损失函数。

BP神经网络的实现主要分为前向传播和反向传播两个步骤。

首先,我们需要定义BP神经网络的结构。

一个典型的BP神经网络包括输入层、隐藏层和输出层。

输入层接收原始数据,隐藏层进行特征提取和转换,输出层进行最终的预测。

在实现BP神经网络时,我们首先需要进行初始化。

初始化可以为神经网络的权重和偏置添加一些随机的初始值。

这里我们使用numpy库来处理矩阵运算。

前向传播的过程实际上就是将输入数据通过神经网络的每一层,直到输出层。

在每一层中,我们将对应权重和输入数据进行点乘运算,并加上偏置项,然后通过一个激活函数进行非线性转换。

这里我们可以选择sigmoid函数作为激活函数。

在反向传播中,我们根据损失函数对权重和偏置进行调整。

首先,我们计算输出误差,即预测值与真实值之间的差异。

然后,我们根据链式法则来计算每一层的误差,并将误差传递回前一层。

根据误差和激活函数的导数,我们可以计算每个权重和偏置的更新量,然后使用梯度下降法对权重和偏置进行更新。

实现BP算法的程序如下:```pythonimport numpy as npclass NeuralNetwork:def __init__(self, layers):yers = layersself.weights = [np.random.randn(y, x) for x, y inzip(layers[:-1], layers[1:])]self.biases = [np.random.randn(y, 1) for y in layers[1:]] def forward(self, x):a = np.array(x).reshape(-1, 1)for w, b in zip(self.weights, self.biases):z = np.dot(w, a) + ba = self.sigmoid(z)return adef backward(self, x, y, lr=0.01):a = np.array(x).reshape(-1, 1)targets = np.array(y).reshape(-1, 1)# forward passactivations = [a]zs = []for w, b in zip(self.weights, self.biases):z = np.dot(w, a) + bzs.append(z)a = self.sigmoid(z)activations.append(a)# backward passdeltas = [self.loss_derivative(activations[-1], targets) * self.sigmoid_derivative(zs[-1])]for l in range(2, len(yers)):z = zs[-l]sp = self.sigmoid_derivative(z)deltas.append(np.dot(self.weights[-l + 1].T, deltas[-1]) * sp)deltas.reverse# update weights and biasesfor l in range(len(yers) - 1):self.weights[l] += -lr * np.dot(deltas[l], activations[l].T) self.biases[l] += -lr * deltas[l]def sigmoid(x):return 1 / (1 + np.exp(-x))def sigmoid_derivative(x):return NeuralNetwork.sigmoid(x) * (1 -NeuralNetwork.sigmoid(x))def loss_derivative(y_pred, y_true):return y_pred - y_true```上述代码中,首先我们定义一个NeuralNetwork类,包含两个主要方法:forward(和backward(。

BP神经网络的基本原理_一看就懂

BP神经网络的基本原理_一看就懂

BP神经网络的基本原理_一看就懂BP神经网络(Back Propagation Neural Network)是一种常用的人工神经网络模型,用于解决分类、回归和模式识别问题。

它的基本原理是通过反向传播算法来训练和调整网络中的权重和偏置,以使网络能够逐渐逼近目标输出。

1.前向传播:在训练之前,需要对网络进行初始化,包括随机初始化权重和偏置。

输入数据通过输入层传递到隐藏层,在隐藏层中进行线性加权和非线性激活运算,然后传递给输出层。

线性加权运算指的是将输入数据与对应的权重相乘,然后将结果进行求和。

非线性激活指的是对线性加权和的结果应用一个激活函数,常见的激活函数有sigmoid函数、ReLU函数等。

激活函数的作用是将线性运算的结果映射到一个非线性的范围内,增加模型的非线性表达能力。

2.计算损失:将网络输出的结果与真实值进行比较,计算损失函数。

常用的损失函数有均方误差(Mean Squared Error)和交叉熵(Cross Entropy)等,用于衡量模型的输出与真实值之间的差异程度。

3.反向传播:通过反向传播算法,将损失函数的梯度从输出层传播回隐藏层和输入层,以便调整网络的权重和偏置。

反向传播算法的核心思想是使用链式法则。

首先计算输出层的梯度,即损失函数对输出层输出的导数。

然后将该梯度传递回隐藏层,更新隐藏层的权重和偏置。

接着继续向输入层传播,直到更新输入层的权重和偏置。

在传播过程中,需要选择一个优化算法来更新网络参数,常用的优化算法有梯度下降(Gradient Descent)和随机梯度下降(Stochastic Gradient Descent)等。

4.权重和偏置更新:根据反向传播计算得到的梯度,使用优化算法更新网络中的权重和偏置,逐步减小损失函数的值。

权重的更新通常按照以下公式进行:新权重=旧权重-学习率×梯度其中,学习率是一个超参数,控制更新的步长大小。

梯度是损失函数对权重的导数,表示了损失函数关于权重的变化率。

BP神经网络算法

BP神经网络算法
BP神经网络算法
1


一、BP神经网络算法概述
二、BP神经网络算法原理
三、BP神经网络算法特点及改进
2
一.BP神经网络算法概述
BP神经网络(Back-Propagation Neural Network),即误差
后向传播神经网络,是一种按误差逆向传播算法训练的多层前馈网
络,是目前应用最广泛的网络模型之一。
11
二.BP神经网络算法原理
图5 Tan-Sigmoid函数在(-4,4)范围内的函数曲线
12
二.BP神经网络算法原理
激活函数性质:
① 非线性
② 可导性:神经网络的优化是基于梯度的,求解梯度需要确保函
数可导。
③ 单调性:激活函数是单调的,否则不能保证神经网络抽象的优
化问题转化为凸优化问题。
④ 输出范围有限:激活函数的输出值范围有限时,基于梯度的方

= 1 ෍
=1
7
,
= 1,2,3 … , q
二.BP神经网络算法原理
输出层节点的输出为:

j = 2 ෍ ,
= 1,2,3. . . ,
=1
至此,BP网络完成了n维空间向量对m维空间的近似映射。
图2 三层神经网络的拓扑结构
8
二.BP神经网络算法原理
BP神经网络是多层前馈型神经网络中的一种,属于人工神经网
络的一类,理论可以对任何一种非线性输入输出关系进行模仿,因
此 被 广 泛 应 用 在 分 类 识 别 ( classification ) 、 回 归
(regression)、压缩(compression)、逼近(fitting)等领域。
在工程应用中,大约80%的神经网络模型都选择采用BP神经网

bp神经网络算法原理

bp神经网络算法原理

bp神经网络算法原理BP神经网络算法(Backpropagation algorithm)是一种监督学习的神经网络算法,其目的是通过调整神经网络的权重和偏置来实现误差的最小化。

BP神经网络算法基于梯度下降和链式法则,在网络的前向传播和反向传播过程中进行参数的更新。

在前向传播过程中,输入样本通过网络的各个神经元计算,直到达到输出层。

每个神经元都会对上一层的输入进行加权求和,并经过一个非线性激活函数得到输出。

前向传播的结果即为网络的输出。

在反向传播过程中,首先需要计算网络的输出误差。

误差是实际输出与期望输出的差异。

然后,从输出层开始,沿着网络的反方向,通过链式法则计算每个神经元的误差贡献,并将误差从输出层反向传播到输入层。

每个神经元根据自身的误差贡献,对权重和偏置进行调整。

这一过程可以看作是通过梯度下降来调整网络参数,以最小化误差。

具体而言,对于每个样本,BP神经网络算法通过以下步骤来更新网络的参数:1. 前向传播:将输入样本通过网络,计算得到网络的输出。

2. 计算误差:将网络的输出与期望输出进行比较,计算得到输出误差。

3. 反向传播:从输出层开始,根据链式法则计算每个神经元的误差贡献,并将误差沿着网络反向传播到输入层。

4. 参数更新:根据每个神经元的误差贡献,使用梯度下降方法更新神经元的权重和偏置。

5. 重复以上步骤,直到达到预设的训练停止条件,例如达到最大迭代次数或误差小于某个阈值。

总的来说,BP神经网络算法通过计算输出误差和通过反向传播调整网络参数的方式,实现对神经网络的训练。

通过不断迭代优化网络的权重和偏置,使得网络能够更准确地进行分类、回归等任务。

bp神经网络的学习规则

bp神经网络的学习规则

bp神经网络的学习规则BP神经网络的学习规则是指BP神经网络的学习原理,它主要有以下几点:1. 反向传播(Backpropagation):BP神经网络中提出的一种训练算法,使用这种算法,从网络输出端反向传播,调整权值参数,以期令训练样本的偏差减小。

2. 误差反向传播(error-backpropagation):又称BP算法,它采用动态调整参数的梯度下降方法,就是利用反向传播误差来更新网络参数,使网络能够自动调节自己,从而使网络误差最小化。

3. 权值加权法(weighted-sum-rule):这是BP神经网络中的一种常用的学习规则,它根据每个输入单元对输出单元影响的程度,调整神经元的权值参数,以达到最佳的输出结果。

4. 插值法(Interpolation-rule):这是BP神经网络中比较容易理解的一种学习规则,它将输入空间映射到输出空间,实现对输出样本的分类或回归。

5. 迭代算法(iterative-rule):它是BP神经网络中最重要的学习规则,它使BP神经网络能够不断改善自身,并自动搜索出最优解。

6. 随机搜索技术(random-search-technology):它是BP神经网络中的一种学习规则,它使BP神经网络能够在训练集中的数据空间中的搜索优化方法,以寻求最佳权值解。

7. 动态结构调整机制(Dynamic-structural-adjustment):这是一种BP 神经网络中的进阶学习规则,它可以根据实际需求调整网络结构以及网络参数,以达到最佳的性能。

以上就是BP神经网络的学习规则,它们都是综合能力强的机器学习算法。

BP神经网络可以实现自适应训练、增量学习和自我学习,是一种有效的智能学习算法,可以实现深度学习与人工智能应用,为人类的发展带来重要的科技创新。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BP神经网络模型与学习算法BP神经网络模型与学习算法 (1)一,什么是BP (1)二、反向传播BP模型 (8)一,什么是BP"BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。

BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。

它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。

BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。

"我们现在来分析下这些话:•“是一种按误差逆传播算法训练的多层前馈网络”BP是后向传播的英文缩写,那么传播对象是什么?传播的目的是什么?传播的方式是后向,可这又是什么意思呢。

传播的对象是误差,传播的目的是得到所有层的估计误差,后向是说由后层误差推导前层误差:即BP的思想可以总结为利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。

•“BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)”最简单的三层BP:•“BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。

”BP利用一种称为激活函数来描述层与层输出之间的关系,从而模拟各层神经元之间的交互反应。

激活函数必须满足处处可导的条件。

那么比较常用的是一种称为S型函数的激活函数:那么上面的函数为什么称为是S型函数呢:我们来看它的形态和它导数的形态:p.s. S型函数的导数:神经网络的学习目的:希望能够学习到一个模型,能够对输入输出一个我们期望的输出。

学习的方式:在外界输入样本的刺激下不断改变网络的连接权值学习的本质:对各连接权值的动态调整学习的核心:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。

二,有监督的BP模型训练过程1. 思想有监督的BP模型训练表示我们有一个训练集,它包括了:input X 和它被期望拥有的输出output Y所以对于当前的一个BP模型,我们能够获得它针对于训练集的误差所以BP的核心思想就是:将输出误差以某种形式通过隐层向输入层逐层反传,这里的某种形式其实就是:也就是一种"信号的正向传播----> 误差的反向传播"的过程:2.具体这里解释下根据误差对权值的偏导数来修订权值:反向传播BP模型学习是神经网络一种最重要也最令人注目的特点。

在神经网络的发展进程中,学习算法的研究有着十分重要的地位。

目前,人们所提出的神经网络模型都是和学习算法相应的。

所以,有时人们并不去祈求对模型和算法进行严格的定义或区分。

有的模型可以有多种算法.而有的算法可能可用于多种模型。

不过,有时人们也称算法为模型。

自从40年代Hebb提出的学习规则以来,人们相继提出了各种各样的学习算法。

其中以在1986年Rumelhart等提出的误差反向传播法,即BP(error BackPropagation)法影响最为广泛。

直到今天,BP算法仍然是自动控制上最重要、应用最多的有效算法。

1.2.1 神经网络的学习机理和机构在神经网络中,对外部环境提供的模式样本进行学习训练,并能存储这种模式,则称为感知器;对外部环境有适应能力,能自动提取外部环境变化特征,则称为认知器。

神经网络在学习中,一般分为有教师和无教师学习两种。

感知器采用有教师信号进行学习,而认知器则采用无教师信号学习的。

在主要神经网络如BP网络,Hopfield网络,ART网络和Kohonen网络中;BP网络和Hopfield网络是需要教师信号才能进行学习的;而ART网络和Kohonen网络则无需教师信号就可以学习。

所谓教师信号,就是在神经网络学习中由外部提供的模式样本信号。

一、感知器的学习结构感知器的学习是神经网络最典型的学习。

目前,在控制上应用的是多层前馈网络,这是一种感知器模型,学习算法是BP法,故是有教师学习算法。

一个有教师的学习系统可以用图1—7表示。

这种学习系统分成三个部分:输入部,训练部和输出部。

图1-7 神经网络学习系统框图输入部接收外来的输入样本X,由训练部进行网络的权系数W调整,然后由输出部输出结果。

在这个过程中,期望的输出信号可以作为教师信号输入,由该教师信号与实际输出进行比较,产生的误差去控制修改权系数W。

学习机构可用图1—8所示的结构表示。

在图中,X l,X2,…,X n,是输入样本信号,W1,W2,…,W n是权系数。

输入样本信号X i可以取离散值“0”或“1”。

输入样本信号通过权系数作用,在u产生输出结果∑W i X i,即有:u=∑W i X i =W1 X1 +W2 X2+…+W n X n再把期望输出信号Y(t)和u进行比较,从而产生误差信号e。

即权值调整机构根据误差e去对学习系统的权系数进行修改,修改方向应使误差e变小,不断进行下去,使到误差e为零,这时实际输出值u和期望输出值Y(t)完全一样,则学习过程结束。

神经网络的学习一般需要多次重复训练,使误差值逐渐向零趋近,最后到达零。

则这时才会使输出与期望一致。

故而神经网络的学习是消耗一定时期的,有的学习过程要重复很多次,甚至达万次级。

原因在于神经网络的权系数W有很多分量W1,W2,----W n;也即是一个多参数修改系统。

系统的参数的调整就必定耗时耗量。

目前,提高神经网络的学习速度,减少学习重复次数是十分重要的研究课题,也是实时控制中的关键问题。

二、感知器的学习算法感知器是有单层计算单元的神经网络,由线性元件及阀值元件组成。

感知器如图1-9所示。

图1-9 感知器结构感知器的数学模型:(1-12)其中:f[.]是阶跃函数,并且有(1-13)θ是阀值。

感知器的最大作用就是可以对输入的样本分类,故它可作分类器,感知器对输入信号的分类如下:(1-14)即是,当感知器的输出为1时,输入样本称为A类;输出为-1时,输入样本称为B类。

从上可知感知器的分类边界是:(1-15)在输入样本只有两个分量X1,X2时,则有分类边界条件:(1-16)即W1 X1 +W2 X2 -θ=0 (1-17)也可写成(1-18)这时的分类情况如固1—10所示。

感知器的学习算法目的在于找寻恰当的权系数w=(w1.w2,…,Wn),使系统对一个特定的样本x=(xt,x2,…,xn)熊产生期望值d。

当x分类为A类时,期望值d=1;X为B类时,d=-1。

为了方便说明感知器学习算法,把阀值θ并人权系数w中,同时,样本x也相应增加一个分量x n+1。

故令:W n+1 =-θ,X n+1=1 (1-19)则感知器的输出可表示为:(1-20)感知器学习算法步骤如下:1.对权系数w置初值对权系数w=(W1.W2,…,W n,W n+1 )的各个分量置一个较小的零随机值,但W n+1=—g。

并记为W l (0),W2 (0),…,W n (0),同时有Wn+1(0)=-θ。

这里W i (t)为t时刻从第i个输入上的权系数,i=1,2,…,n。

W n+1 (t)为t时刻时的阀值。

图1-10 感知器的分类例子2.输入一样本X=(X1,X2,…,X n+1 )以及它的期望输出d。

期望输出值d在样本的类属不同时取值不同。

如果x是A类,则取d=1,如果x是B类,则取-1。

期望输出d也即是教师信号。

3.计算实际输出值Y4.根据实际输出求误差ee=d—Y(t) (1-21)5.用误差e去修改权系数i=1,2,…,n,n+1(1-22)其中,η称为权重变化率,0<η≤1在式(1—22)中,η的取值不能太大.如果1取值太大则会影响w i (t)的稳定;的取值也不能太小,太小则会使W i (t)的求取过程收敛速度太慢。

当实际输出和期望值d相同时有:W i (t+1)=W i (t)6.转到第2点,一直执行到一切样本均稳定为止。

从上面式(1—14)可知,感知器实质是一个分类器,它的这种分类是和二值逻辑相应的。

因此,感知器可以用于实现逻辑函数。

下面对感知器实现逻辑函数的情况作一些介绍。

例:用感知器实现逻辑函数X1 VX2的真值:X001110101X2XV10111X2以X1VX2=1为A类,以X1VX2=0为B类,则有方程组(1-23)即有:(1-24)从式(1—24)有:W1≥θ,W2≥θ令W1 =1,W2 =2则有:θ≤1取θ=0.5则有:X1+X2-0.5=0,分类情况如图1—11所示。

图1-11 逻辑函数X1 VX2的分类1.2.2 神经网络学习的梯度算法从感如器的学习算法可知,学习的目的是在于修改网络中的权系数,使到网络对于所输入的模式样本能正确分类。

当学习结束时,也即神经网络能正确分类时,显然权系数就反映了同类输人模式样本的共同特征。

换句话讲,权系数就是存储了的输人模式。

由于权系数是分散存在的,故神经网络自然而然就有分布存储的特点。

前面的感知器的传递函数是阶跃函数,所以,它可以用作分类器。

前面一节所讲的感知器学习算法因其传递函数的简单而存在局限性。

感知器学习算法相当简单,并且当函数线性可分时保证收敛。

但它也存在问题:即函数不是线性可分时,则求不出结果;另外,不能推广到一般前馈网络中。

为了克服存在的问题,所以人们提出另一种算法——梯度算法(也即是LMS法)。

为了能实现梯度算法,故把神经元的激发函数改为可微分函数,例如Sigmoid函数,非对称Sigmoid函数为f(X)=1/(1+e-x ),对称Sigmoid 函数f(X)=(1-e-x )/(1+e-x );而不采用式(1—13)的阶跃函数。

对于给定的样本集X i (i=1,2,,n),梯度法的目的是寻找权系数W*,使得f[W*. X i ]与期望输出Yi尽可能接近。

设误差e采用下式表示:(1-25)其中,Y i=f〔W* ·X i ]是对应第i个样本X i的实时输出Y i是对应第i个样本X i的期望输出。

要使误差e最小,可先求取e的梯度:(1-26) 其(1-27) 中:令U k =W. X k ,则有:(1-28) 即有:(1-29) 最后有按负梯度方向修改权系数W的修改规则:(1-30) 也可写成:(1-31)在上式(1—30),式(1—31)中,μ是权重变化率,它视情况不同而取值不同,一般取0-1之间的小数。

很明显,梯度法比原来感知器的学习算法进了一大步。

其关键在于两点:1.神经元的传递函数采用连续的s型函数,而不是阶跃函数;2.对权系数的修改采用误差的梯度去控制,而不是采用误差去控制。

相关文档
最新文档