B-P神经网络算法-理论详解+应用实例
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
但同一层的神经元之间无信息传输;
(4) 设信息传输的方向是从输入层到输出层方向;因此称为前向网络。没有反 向传播信息。
(5) a0( j)表示输入的第 j 个分量。
在上述假定下网络的输入输出关系可以表示为:
u1(i)
N0
w1(i, j)a0( j) θ1(i),
j 1
a1(i) f(u1(i)),
w(l p)(i, j) w(l p1)(i, j) ηδ(l p)a(l p1)( j),
l 1,...,L
。
3. 应用实例
已知的两类蚊子的数据如表 1:
翼长
触角长 类别 目标值
1) 1.78
1.14 Apf 0.9
2) 1.96
1.18 Apf 0.9
3) 1.86
1.20 Apf 0.9
取激励函数为 f(x) 1 1 ex
则 a1(i)
f(u1(i))
1
1 exp(u1(i))
,
i = 1,2
同样,取
a1(3) 1,w2(1,3) θ
3
u2(1) w2(1, j)a1( j) j 1
a2(1)
1
1 exp(u2(1))
具体算法如下:
令 p=0
(11)
δ(l p)(i)
f
'(u(l
p
N
)(i))
l
1
δ(l p1)(
j)w(l p11)(
j,i)
j 1
1 l L 1. (12)
BP 算法: • 选定学习的数据,p=1,…,P, 随机确定初始权矩阵 W(0) • 用学习数据计算网络输出 • 用(10)式反向修正,直到用完所有学习数据。
1.40 Af 0.1
13) 1.82
1.48 Af 0.1
14) 1.82
1.54 Af 0.1
15) 2.08
1.56 Af 0.1
输入数据有 15 个,即 p=1,……,15;j=1,2;对应 15 个输出。
建模:(输入层,中间层,输出层,每层的元素应取多少个?)
建立神经网络:
规定目标为: 当 t(1)=0.9 时表示属于 Apf 类,t(2)=0.1 表示属于 Af 类。 设两个权重系数矩阵为:
n
min (t piopi)2 , (p=1,…,P) i 1
(2)
Delta 学习规则:
记 wij 表示递推一次的修改量,则有
wij wij wij
(3)
P
P
wij
η(t pi opi )ipj
ηδ p ii p j
p 1
p 1
(4)
δpi t pi opi
计算W2(P1)(1, j),j=1,2,3
W2( p1)(1, j) W2( p)(1, j) ηδ(2 p1)(1)a(1 p1)( j), j=1,2,3
(5)计算 δ1( p1)(i)和W1( p 1)(i, j)
δ1( p1)(i) (δ(2p1)(1)W2( p1)(1,i))exp(u2(1))/(1 exp(u2(1)))2
3
u1(1) w1(1,1)a0(1) w1(1,2)a0(2) w1(1,3)a0(3) w1(1, j)a0( j) j 1
3
u1(2) w1(2,1)a0(1) w1(2,2)a0(2) w1(2,3)a0(3) w1(2, j)a0( j) j 1
(1)随机给出两个权矩阵的初值;例如用 MATLAB 软件时可以用以下语句:
W1(0)
rand(2,3);
W (0) 2
rand(1,3);
(2)根据输入数据利用公式计算出网络的输出
3
u1(1) w1(1,1)a0(1) w1(1,2)a0(2) w1(1,3)a0(3) w1(1, j)a0( j) j 1
为第 L 层;第 k 层有 Nk 个神经元。 (2) 设 uk(i)表示第 k 层第 i 神经元所接收的信息;
wk(i,j) 表示从第 k-1 层第 j 个元到第 k 层第 i 个元的权重; ak(i)表第 k 层第 i 个元的输出 ;
(3) 设层与层间的神经元都有信息交换(否则,可设它们之间的权重为零);
a1(1) f(u1(1)), a1(2) f(u1(2))
a1(1),a1(2)为第一层的输出,同时作为第二层的输入。其中 θi 为阈值,f 为激 励函数.
若令 a0(3) 1,作为一固定输入
w1( j,3) θ j ,
j 1,2 (阈值作为固定输入神经元相应的权系数)
则有:
η 称为学习的速率。
注:由(1) 式,第 i 个神经元的输出可表示为
m
opi f( wijipj ), j 1
(5)
其中,ipm= -1 , wim= (第 i 个神经元的阈值)。特别当 f 是线性函数时
m
opi a( wijipj ) b j 1
(6)
定理:按上面描述的神经网络,设其中wk.baidu.com个神经元都是线性的,取训练指标为
W1
w1(1,1) w1(2,1)
w1(1,2) w1(2,2)
w1(1,3) w1(2,3)
W2 w2(1,1) w2(1,2) w2(1,3)
其中, wi( j,3) θi( j)为阈值 分析如下:
u1(1) w1(1,1)a0(1) w1(1,2)a0(2) θ1(1) u1(2) w1(2,1)a0(1) w1(2,2)a0(2) θ1(2)
N1
u2(i)
a2(i)
w2(i, j)a1( j) θ2(i),
j 1
f(u2(i)),
1 i N1, 1 i N2,
.......................................
NL 1
u
L(i)
wL(i, j)aL1( j) θL1(i),
(9)
则每个训练循环中按梯度下降时;其权重迭代公式为:
w(l p)(i, j) w(l p 1)(i, j) ηδ(l p)a(l p1)( j)
其中, l 1,...,L 。
(10)
w(l p)(i, j)表示第 l-1 层第个元对第 l 层第个元输入的第次迭代时的权重。
δ(Lp)(i) (t( p)(i) a(Lp)(i))f '(u(Lp)(i))
������
������ = ∑ ������������
������=1
������
������������
=
1 2
∑(������������������
−
������������������ )2
������=1
时,求 E 的最小梯度最速下降发就是 Delta 学习规则。
2. 多层前馈网络
假设: (1) 输入层不计在层数之内,它有 N0 个神经元.设网络 共有 L 层;输出层
W1( p1)(i, j) W1( p)(i, j) ηδ1( p1)(i)a(0p1)( j),
i=1,2,3
j=1,2,3
(6)p=p+1,转(2)
注:仅计算一圈(p=1,2,…,15)是不够的,直到当各权重变化很小
时停止,本例中,共计算了 147 圈,迭代了 2205 次。
最后结果是:W1
B-P(Back Propagation)神经网络算法
——即反向传播算法 0. 算法目的:根据实际的输入与输出数据,计算模型参数(权系数)。 1. 简单的 B-P 算法
假设有 P 个训练样本,即有 P 个输入输出对(Ip, Tp),p=1,…,P, 其中:
输入向量为:
I p (ip1,...,ipm)T
3
u1(2) w1(2,1)a0(1) w1(2,2)a0(2) w1(2,3)a0(3) w1(2, j)a0( j) j 1
a1(i)
f(u1(i))
1
1
,
exp(u1(i))
i=1,2
取 a1(3) 1,
3
u2(1) w2(1, j)a1( j) j 1
目标输出向量(实际输出)为:
Tp (t p1,...,t pn )T
网络算法输出向量(理论上)为: Op (op1,...,opn)T
记 wij 为从输入向量的第 j (j=1,…,m) 个分量到输出向量的第 i (i=1,…,n)个分 量的权重。通常理论值与实际值有一误差,网络学习则是指不断地把 Op 与 Tp 比 较,并根据极小原则修改参数 wij,使误差平方和达最小,即:
4) 1.72
1.24 Af 0.1
5) 2.00
1.26 Apf 0.9
6) 2.00
1.28 Apf 0.9
7) 1.96
1.30 Apf 0.9
8) 1.74
1.36 Af 0.1
9) 1.64
1.38 Af 0.1
10) 1.82
1.38 Af 0.1
11) 1.90
1.38 Af 0.1
12) 1.70
5.5921 0.5787
7.5976 0.2875
0.5765 0.2764
W2 8.4075 0.4838 3.9829
a2(1)
1
1 exp(u2(1))
(3)计算
因为
f(x)
1
1 ex
,所以
f '(x)
ex (1 e x )2
δ2(1) (t(1) a2(1))f '(u2(1))
(t(1) a2(1))exp(u2(1))/(1 exp(u2(1)))2 (4)取 η 0.1(或其他正数,可调整大小)
j 1
aL(i) f(uL(i)),
1 i NL,
(7)
其中表示第 k 层第 i 个元的阈值。
定理 2:对于具有多个隐层的前馈神经网络;设激发函数为 S 函数;且指标函数 取E
P
E Ep p 1
(8)
其中, Ep
1 2
NL (t( p)(i)
i 1
a(Lp)(i))2
(4) 设信息传输的方向是从输入层到输出层方向;因此称为前向网络。没有反 向传播信息。
(5) a0( j)表示输入的第 j 个分量。
在上述假定下网络的输入输出关系可以表示为:
u1(i)
N0
w1(i, j)a0( j) θ1(i),
j 1
a1(i) f(u1(i)),
w(l p)(i, j) w(l p1)(i, j) ηδ(l p)a(l p1)( j),
l 1,...,L
。
3. 应用实例
已知的两类蚊子的数据如表 1:
翼长
触角长 类别 目标值
1) 1.78
1.14 Apf 0.9
2) 1.96
1.18 Apf 0.9
3) 1.86
1.20 Apf 0.9
取激励函数为 f(x) 1 1 ex
则 a1(i)
f(u1(i))
1
1 exp(u1(i))
,
i = 1,2
同样,取
a1(3) 1,w2(1,3) θ
3
u2(1) w2(1, j)a1( j) j 1
a2(1)
1
1 exp(u2(1))
具体算法如下:
令 p=0
(11)
δ(l p)(i)
f
'(u(l
p
N
)(i))
l
1
δ(l p1)(
j)w(l p11)(
j,i)
j 1
1 l L 1. (12)
BP 算法: • 选定学习的数据,p=1,…,P, 随机确定初始权矩阵 W(0) • 用学习数据计算网络输出 • 用(10)式反向修正,直到用完所有学习数据。
1.40 Af 0.1
13) 1.82
1.48 Af 0.1
14) 1.82
1.54 Af 0.1
15) 2.08
1.56 Af 0.1
输入数据有 15 个,即 p=1,……,15;j=1,2;对应 15 个输出。
建模:(输入层,中间层,输出层,每层的元素应取多少个?)
建立神经网络:
规定目标为: 当 t(1)=0.9 时表示属于 Apf 类,t(2)=0.1 表示属于 Af 类。 设两个权重系数矩阵为:
n
min (t piopi)2 , (p=1,…,P) i 1
(2)
Delta 学习规则:
记 wij 表示递推一次的修改量,则有
wij wij wij
(3)
P
P
wij
η(t pi opi )ipj
ηδ p ii p j
p 1
p 1
(4)
δpi t pi opi
计算W2(P1)(1, j),j=1,2,3
W2( p1)(1, j) W2( p)(1, j) ηδ(2 p1)(1)a(1 p1)( j), j=1,2,3
(5)计算 δ1( p1)(i)和W1( p 1)(i, j)
δ1( p1)(i) (δ(2p1)(1)W2( p1)(1,i))exp(u2(1))/(1 exp(u2(1)))2
3
u1(1) w1(1,1)a0(1) w1(1,2)a0(2) w1(1,3)a0(3) w1(1, j)a0( j) j 1
3
u1(2) w1(2,1)a0(1) w1(2,2)a0(2) w1(2,3)a0(3) w1(2, j)a0( j) j 1
(1)随机给出两个权矩阵的初值;例如用 MATLAB 软件时可以用以下语句:
W1(0)
rand(2,3);
W (0) 2
rand(1,3);
(2)根据输入数据利用公式计算出网络的输出
3
u1(1) w1(1,1)a0(1) w1(1,2)a0(2) w1(1,3)a0(3) w1(1, j)a0( j) j 1
为第 L 层;第 k 层有 Nk 个神经元。 (2) 设 uk(i)表示第 k 层第 i 神经元所接收的信息;
wk(i,j) 表示从第 k-1 层第 j 个元到第 k 层第 i 个元的权重; ak(i)表第 k 层第 i 个元的输出 ;
(3) 设层与层间的神经元都有信息交换(否则,可设它们之间的权重为零);
a1(1) f(u1(1)), a1(2) f(u1(2))
a1(1),a1(2)为第一层的输出,同时作为第二层的输入。其中 θi 为阈值,f 为激 励函数.
若令 a0(3) 1,作为一固定输入
w1( j,3) θ j ,
j 1,2 (阈值作为固定输入神经元相应的权系数)
则有:
η 称为学习的速率。
注:由(1) 式,第 i 个神经元的输出可表示为
m
opi f( wijipj ), j 1
(5)
其中,ipm= -1 , wim= (第 i 个神经元的阈值)。特别当 f 是线性函数时
m
opi a( wijipj ) b j 1
(6)
定理:按上面描述的神经网络,设其中wk.baidu.com个神经元都是线性的,取训练指标为
W1
w1(1,1) w1(2,1)
w1(1,2) w1(2,2)
w1(1,3) w1(2,3)
W2 w2(1,1) w2(1,2) w2(1,3)
其中, wi( j,3) θi( j)为阈值 分析如下:
u1(1) w1(1,1)a0(1) w1(1,2)a0(2) θ1(1) u1(2) w1(2,1)a0(1) w1(2,2)a0(2) θ1(2)
N1
u2(i)
a2(i)
w2(i, j)a1( j) θ2(i),
j 1
f(u2(i)),
1 i N1, 1 i N2,
.......................................
NL 1
u
L(i)
wL(i, j)aL1( j) θL1(i),
(9)
则每个训练循环中按梯度下降时;其权重迭代公式为:
w(l p)(i, j) w(l p 1)(i, j) ηδ(l p)a(l p1)( j)
其中, l 1,...,L 。
(10)
w(l p)(i, j)表示第 l-1 层第个元对第 l 层第个元输入的第次迭代时的权重。
δ(Lp)(i) (t( p)(i) a(Lp)(i))f '(u(Lp)(i))
������
������ = ∑ ������������
������=1
������
������������
=
1 2
∑(������������������
−
������������������ )2
������=1
时,求 E 的最小梯度最速下降发就是 Delta 学习规则。
2. 多层前馈网络
假设: (1) 输入层不计在层数之内,它有 N0 个神经元.设网络 共有 L 层;输出层
W1( p1)(i, j) W1( p)(i, j) ηδ1( p1)(i)a(0p1)( j),
i=1,2,3
j=1,2,3
(6)p=p+1,转(2)
注:仅计算一圈(p=1,2,…,15)是不够的,直到当各权重变化很小
时停止,本例中,共计算了 147 圈,迭代了 2205 次。
最后结果是:W1
B-P(Back Propagation)神经网络算法
——即反向传播算法 0. 算法目的:根据实际的输入与输出数据,计算模型参数(权系数)。 1. 简单的 B-P 算法
假设有 P 个训练样本,即有 P 个输入输出对(Ip, Tp),p=1,…,P, 其中:
输入向量为:
I p (ip1,...,ipm)T
3
u1(2) w1(2,1)a0(1) w1(2,2)a0(2) w1(2,3)a0(3) w1(2, j)a0( j) j 1
a1(i)
f(u1(i))
1
1
,
exp(u1(i))
i=1,2
取 a1(3) 1,
3
u2(1) w2(1, j)a1( j) j 1
目标输出向量(实际输出)为:
Tp (t p1,...,t pn )T
网络算法输出向量(理论上)为: Op (op1,...,opn)T
记 wij 为从输入向量的第 j (j=1,…,m) 个分量到输出向量的第 i (i=1,…,n)个分 量的权重。通常理论值与实际值有一误差,网络学习则是指不断地把 Op 与 Tp 比 较,并根据极小原则修改参数 wij,使误差平方和达最小,即:
4) 1.72
1.24 Af 0.1
5) 2.00
1.26 Apf 0.9
6) 2.00
1.28 Apf 0.9
7) 1.96
1.30 Apf 0.9
8) 1.74
1.36 Af 0.1
9) 1.64
1.38 Af 0.1
10) 1.82
1.38 Af 0.1
11) 1.90
1.38 Af 0.1
12) 1.70
5.5921 0.5787
7.5976 0.2875
0.5765 0.2764
W2 8.4075 0.4838 3.9829
a2(1)
1
1 exp(u2(1))
(3)计算
因为
f(x)
1
1 ex
,所以
f '(x)
ex (1 e x )2
δ2(1) (t(1) a2(1))f '(u2(1))
(t(1) a2(1))exp(u2(1))/(1 exp(u2(1)))2 (4)取 η 0.1(或其他正数,可调整大小)
j 1
aL(i) f(uL(i)),
1 i NL,
(7)
其中表示第 k 层第 i 个元的阈值。
定理 2:对于具有多个隐层的前馈神经网络;设激发函数为 S 函数;且指标函数 取E
P
E Ep p 1
(8)
其中, Ep
1 2
NL (t( p)(i)
i 1
a(Lp)(i))2