神经网络 BP算法
学习系统 比较 输入 神经网络 教师示教 希望输出 实际输出
学习系统 自我比较 输入 神经网络 实际输出
3.BP算法
BP算法如下。 其中,l为学习率;oi为单元i的输出;oj为单元j的输出;Tj为输出层单元j 的期望输出;Errj为与隐藏层单元j的误差加权和;wjk为单元j与单元k 相连的有向加权边的权重;为改变单元j活性的偏量。 输入:训练样本S,学习率l,多层前馈网络。 输出:一个训练的、对样本分类的神经网络。 方法: (1) 初始化网络的权和阈值 (2) WHILE终止条件满足{ (3) FOR S中的每个训练样本X{ (4) FOR隐藏或输出层每个单元j{( I w o (5) ; //相对于前一层计算单元j的净输入 1 o (1 e ) (6) ; // 计算每个单元j的输出 (7) FOR输出层每个单元 E rr o (1 o )(T o ) (8) ; //计算误差 (9) FOR由最后一个到第一个隐藏层,对于隐藏层每个单元j E rr o (1 o ) E rr w (10) ; //计算关于下一个较高层k的误差 (11) FOR网络中的每一个权 w (12) w w l E rr o ; (13) FOR网络中每个单元偏量 (14) l E rr
工程上用的人工神经元模型如图所示:
7.3.2 反向传播模型 1.工作原理 神经网络模型分为前 馈多层式网络模型、 反馈递归式网络模型、 随机型网络模型等。 误差反向传播(Back propagation,简称BP 网络) ,又称为多层 前馈神经网络。
其模型结构如图7.3所示
输入层
隐藏层
输出层
1 w15 2 w24 w25
. . .
w14 4 w46 6 5 w35
. . ..
w34
w56
. . .
3
首先算出单元4、5、6的输入、输出,具体结果 见表7-12,然后计算4、5、6的误差,见表7-13; NT中每条有向加权边的新权重、每个隐藏层与输 出层单元的新偏置见表7-14。
•图7.4 两层前馈神经网络
开始
设定连接权初值 输入数据 评价 评价标准 连接权调整
教师示教学习方式, 需要给定一组样本(输入 输出数据对),网络根据 实际输出与样本的比较, 决定连接权的调整方式。 无教师示教学习方 式,外部不提供正确的 输出,网络仅仅是根据 其特有的网络结构和学 习规则,对属于同一类 的模式进行自动分类。
其中,k为样本数,n为输入结点数,m为输出样本, 为隐藏层结点数。
7.3.4 神经网络工作过程
所有神经网络的工作过程主 要分两个阶段:工作阶段和学 习阶段 (1) 工作阶段,此时各连接权 值固定,处理单元状态变化, 以求达到稳定状态; (2) 学习阶段,各处理单元状 态保持不变,各连接权值可修 改。
表7-13 隐藏层与输出层每个单元的误差
单元j 误 差
6
0.474×(1-0.474)×(l-0.474)=0.1311
5
0.525×(l-0.525)×(0.1311×(-0.2))=-0.0065
4
0.332×(l-0.332)×(0.1311×(-0.3))=-0.0087
表7-14 有向加权边的新权重、每个隐藏层与输出层单元的新偏置
x1
x2
. . .
. . ..
. . .
xi wij Oj wjk Ok
2.学习过程 BP网络学习过程是一种误差边向后传播边修正 权系数的过程,BP算法把网络的学习过程分为正向 传播和反向传播两种交替过程。 (1)正向传播 输入信息先传到隐藏层的结点上,经过各单 元的特性为S型的激活函数运算后,把隐藏层结 点的输出信息传到输出结点,最后给出输出结果。 (2)反向传播 如果得不到实际的输出,则转入反向传播 过程,将误差信号沿原来的连接线路返回,通过 修改各层神经元的权值,逐次地向输入层传播进 行计算,再经过正向传播过程。这两个过程的反 复运用,逐渐使得误差信号最小,网络学习过程 就结束。
6 5 4
7.3.3 定义神经网络拓扑
神经网络在开始训练之前,必须确定输人层 的单元数、层数,每个隐藏层的单元数和输出层 的单元数,以确定网络拓扑结构。 如何选取最佳的隐藏层数目,
i0
n
n1 i
), n1
n m a , n1 lo g 2
n
W46 W56 W14 W15 W24 W25 W34 W35
-0.3+0.9×0.1311×0.332=-0.261 -0.2+0.9×0.1311×0.525=-0.138 0.2+0.9×(-0.00087)×1=0.192 -0.3+0.9×(-0.0065)×1=-0.306 0.4+0.9×(-0.0087)×0=0.4 0.1+0.9×(-0.0065)×0=0.1 -0.5+0.9×(-0.0087)×1=-0.508 0.2+0.9×(-0.0065)×1=0.194 0.1+0.9×0.1311=0.218 0.2+0.9×(-0.0065)=0.194 -0.4+0.9×(-0.0087)=-0.408
7.3 神经网络算法
7.3.1 神经网络的基本原理 人工神经网络是在研究生物神经系统的启发下发 展起来的一种信息处理方法。它模拟生物神经系统结 构,由大量处理单元组成非线性自适应动态系统,具 有高度非线性的超大规模实践特性,网络的全局作用、 大规模并行分布处理及高度的鲁棒性和容错性,有联 想记忆、抽象概括和自适应能力,这种抽象概括和自 适应能力一般称之为自学能力。
j
ij
i
j
i
j
I j
j
j
j
j
j
j
j
j
k
jk
k
ij
ij
ij
j
i
j
j
j
j
【例7-5】 假设训练样本s 的属性值为{1,0,1}, 实际类别分别为1,两层 前馈神经网络NT如图 7.4所示,NT中每条有 一向加权边的权重、每 个隐藏层与输出层单元 的偏置如表7-11所示, 学习率为0.9。写出输入 S训练NT的过程。
表7-11 权重、单元的偏置
表7-12 隐藏层与输出层每个单元的输入、输出
单元j 4 5 6 输入Ij 0.2×1+0.4×0+(-0.5)×1+(-0.4)=-0.7 (-0.3)×l+0.1×0+0.2 × 1+0.2=0.1 (-0.3) ×0.332+(-0.2)×0.525+0.1=-0.105 输出Oj 1/(l+e-(-0.7))=0.332 1/(l+e-0.1)= 0.525 1/(l+e-(-0.105))=0.474