购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 BP神经网络

通过以上章节我们知道人脑对信息的传递和对外界刺激所产生的反应都是由神经元控制的,人脑由上百亿个这样的神经元构成。这些神经元之间并不孤立而且联系很密切,每个神经元平均与几千个神经元相连接,因此构成了人脑的神经网络。刺激在神经网络中的传播是遵循一定规则的,一个神经元并非每次接到其他神经传递过来的刺激都产生反应。它首先会将与其相邻的神经元传来的刺激进行积累,到一定的时候产生自己的刺激并将其传递给一些与它相邻的神经元。这样工作的百亿个神经元构成了人脑对外界进行的反应。而人脑对外界刺激的学习机制就是通过调节这些神经元之间联系及其强度。当然,以上说的是对人脑真正神经工作的一种简化的生物模型,利用这种简化的生物模型可以将它推广至机器学习中来,并把它描述成人工神经网络。BP神经网络就是其中的一种。

BP(Back Propagation)网络是由Rinehart和McClelland [7] 为首的科学家小组于1986年提出的,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存储大量的输入-输出模式映射关系,而无须事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(Input)、隐层(Hide layer)和输出层(Output layer)。

2.2.1 BP神经元

图2-6给出了第 j 个基本BP神经元(节点),它只模仿了生物神经元所具有的三个最基本也是最重要的功能:加权、求和与转移。其中 x 1 , x 2 ,…, x i ,…, x n 分别代表来自神经元1,2,…, i ,…, n 的输入; w j 1 , w j 2 ,…, w ji ,…, w jn 则分别表示神经元1,2,…, i ,…, n 与第 j 个神经元的连接强度,即权值; bj 为阈值, f (•)为传递函数, y j 为第 j 个神经元的输出。

j 个神经元的净输入值 S j 为:

img
img

图2-6 BP神经元

其中: X =[ x 1 , x 2 ,…, x i ,…, x n ] T W j =[ w j 1 , w j 2 ,…, w ji ,…, w jn ],若视 x 0 =1, w j 0 = b j ,既令 X W j 包括 x 0 w j 0 ,则 X =[ x 0 , x 1 , x 2 ,…, x i ,…, x n ] T W j =[ w j 0 , w j 1 , w j 2 ,…, w ji ,…, w jn ]。于是节点 j 的净输入 S j 可表示为:

img

净输入 S j 通过传递函数(Transfer Function) f (•)后,便得到第 j 个神经元的输出 y j

img

其中 f (•)是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。

2.2.2 BP神经网络构成

BP神经网络用最直观的图形表示如图2-7所示。

img

图2-7 BP神经网络

第一区域相当于外界的刺激,是刺激的来源并且将刺激传递给神经元,因此把第一区域命名为输入层。

第二区域,表示神经元相互之间传递刺激相当于人脑里面,因此把第二区命名为隐藏层。

第三区域,表示神经元经过多层次相互传递后对外界的反应,因此把第三区域命名为输出层。

简单的描述就是,输入层将刺激传递给隐藏层,隐藏层通过神经元之间联系的强度(权重)和传递规则(激活函数)将刺激传到输出层,输出层整理隐藏层处理后的刺激产生最终结果。若有正确的结果,那么将正确的结果和产生的结果进行比较,得到误差,再逆推对神经网中的链接权重进行反馈修正,从而来完成学习的过程。这就是BP神经网的反馈机制,也正是BP(Back Propagation)名字的来源,即运用向后反馈的学习机制,来修正神经网中的权重,最终达到输出正确结果的目的。

BP算法由数据流的前向计算(正向传播)和识差信号的反向传播两个过程构成。正向传播时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。

2.2.3 正向传播

设BP网络的输入层有 n 个节点,隐层有 q 个节点,输出层有 m 个节点,输入层与隐层之间有权值为 v ki ,隐层与输出层之间的权值为 w jk ,如图2-8所示。

img

图2-8 三层神经网络的拓扑结构

隐层的传递函数为 f 1 (•),输出层的传递函数为 f 2 (•),则隐层节点的输出为(将阈值写入求和项中, k = 1,2,…, p ):

img

输出层节点的输出为( j = 1,2,…, m ):

img

至此BP网络就完成了 n 维空间向量对 m 维空间的近似映射。

2.2.4 反向传播

1.定义误差函数

输入 P 个学习样本,用 x 1 , x 2 ,… x v ,… x p 来表示。第 v 个样本输入到网络后得到输出 img j = 1,2,…, m )。采用平方型误差,于是得到第 v 个样本的误差 E v

img

其中, img 为期望输出。

对于 P 个样本,全局误差为:

img

2.输出层权值变化

采用累计误差BP算法调整 w jk ,使全局误差E变小,即

img

其中 η 为学习率(learningrate)。

定义误差信号为:

img

其中第一项:

img

第二项:

img

是输出层传递函数的偏微分。

于是:

img

由链定理得:

img

于是输出层各神经元的权值调整公式为:

img

3.隐层权值变化

img

定义误差信号为:

img

其中第一项:

img

由链定理得:

img

第二项:

img

是隐层传递函数的偏微分。

于是:

img

由链定理得:

img

从而得到隐层各神经元的权值调整公式为: /17YzNY6zqw1ujj7HmYHP4GDmpTnVo3KWBdVhtD4xXSB2ke8hGz7FJD8GbWFQq3S

img
点击中间区域
呼出菜单
上一章
目录
下一章
×

打开