BP神经网络与简单示例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络
——浅尝
数学建模工作室 张敏
神经网络浅尝
• 神经网络基础知识 • 常用函数介绍 • 案例——蠓虫分类
神经网络基础知识
构成:大量简单的基本元件——神经元相互连接 工作原理:模拟生物的神经处理信息的方式 功能:进行信息的并行处理和非线性转化
特点:比较轻松地实现非线性映射过程 具有大规模的计算能力
调用格式:A=tansig(n)
2 f (x) 1 e2n 1
如:
n=-10:0.1:10 a=tansig(n) plot(n,a) grid on 如右图所示
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-10 -8 -6 -4 -2
0
2
4
6
8 10
newff
常用函数
创建一个BP网络,其调用格式为:
特点:任意两个神经元之间都可能有 联系
BP神经网络
多层前馈神经网络,信号向前传播,误差向后传播。
输入层
i
中间层 j
输出层
k
输入层
i
中间层 j
输出层
k
xi
ji
kj
中间层:
输入
p
u j xi ji i 1
输出
v j f (u j )
输入层
i
中间层 j
输出层
k
xi
ji
kj
输出层:
输入
n
U k v j kj j 1
叫隐含层,可以由若干层组成)和输出层。
输入层
中间层
输出层
特点:每层只接受前一层的信息,没有反馈。 如:感知器网络和BP神经网络
有反馈的前向神经网络:
特点:输出层对输入层有反馈信息。
如:认知机和回归BP网络。
层内有互相结合的前向网络:
特点:可以实现同一层内神经元之间的横 向抑制或兴奋作用
相互结合型网络:
神经网络仿真函数sim 调用格式为:
[Y,Pf,Af,E,perf]=sim(net,P,Pi,Ai,T)
其中, Y:函数返回值,网络输出; Pf:函数返回值,最终输出延迟; Af:函数返回值,最终的层延迟; E:函数返回值,网络误差; perf:函数返回值,网络性能; net:待仿真的神经网络; P:网络输入; Pi:初始输入延迟,默认为0; Ai:初始的层延迟,默认为0; T:网络目标,默认为0.
应用范围
医学:疾病识别
图像:识别、去噪、增强、配准、 融合
金融:股票和有价证券的预测分 析、资本收益的预测和分析、风 险管理、信用评估等等
神经网络结构图
输入层
中间层
输出层
生物神经元结构:
树突
细胞体
细胞核
轴突
突触 神经末梢
神经元结构模型
x1
x2
x3
xj
ij
i
yi
xn
可以看出神经元一般表现为一个多输入、单输出的非线性器件
调用格式:A=logsig(N)
2 f (x) 1 e2x
如:
n=-10:0.1:10 a=logsig(n)
plot(n,a)
grid on
图形如下:
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-10 -8 -6 -4 -2
0
2
4
6
8 10
tansig(双曲正切S型传递函数):
输入层
i
中间层 j
输出层
k
xi
ji
kj
n
p
Vk f ( ( f ( (xi ji )) kj )) 0或1
j 1
i 1
输入层
i
中间层 j
输出层
k
xi
ji
kj
2、通过已知样本训练出合适的权值 ji、kj
使输出为(0,1)或(1,0)。
3、将待区分的蠓虫数据输入网络,求值。
权值求法:向后传播法
clear p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90; 1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08]; p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00 1.28,2.00;1.30,1.96]; p=[p1;p2]'; pr=minmax(p); goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)]; plot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o') net=newff(pr,[3,2],{'logsig','logsig'}); net = train(net,p,goal); x=[1.24 1.80;1.28 1.84;1.40 2.04]'; y0=sim(net,p) y=sim(net,x)
net=newff
net=newff(PR,[S1 S2 …SN1],{TF1 TF2…TFN1},BTF,BLF,PF)
其中,
net=newff :用于在对话框中创建一个BP网络 PR :由每组输入(共有R组输入)元素的最大值和最小值组成的R×2维的矩 阵;
Si :第i层的长度,共计N1层 TFi:第i层的传递函数,默认为“tansig” BTF:BP网络的训练函数,默认为“trainlm”; BLF:权值和阈值的BP学习算法,默认为“learngdm” PF:网络的性能函数,默认为“mse”
train 用于对神经网络进行训练。调用格式为:
[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai)
其中,
NET:待训练的神经网络; P:网络的输入信号; T:网络的目标,默认值为0; Pi:初始的输入延迟,默认为0; Ai:初始的层次延迟,默认为0; net:函数返回值,训练后的神经网络; tr:函数返回值,训练记录(包括步数和性能); Y:函数返回值,神经网络的输出信号; E:函数返回值,神经网络的误差; Pf:函数返回值,最终输入延迟; Af:函数返回值,最终层延迟。
理想输出 Af类(1,0),Apf类(0,1)记为 { Tis}
则有误差:
E()
1 2
i、s
(Ti s
Vk
)2
1 2
(Ti s
i、s
f
(
n
(
j 1
f
p
(
i 1
( xi
ji )) kj )))
使得E(w)最小的 ji、kj 作为所需的权值
传递函数(激活函数)
logsig(S型函数):
MATLAB按此函数计算:
输出 Vk f (Uk )
输入层
i
中间层 j
输出层
k
xi
ji
kj
n
p
Uk ( f ( (xi ji )) kj )
j 1
i1
n
p
Vk f ( ( f ( (xi ji )) kj ))
j 1
i 1
思路:
1、触角长和翼长作为输入信息,分别记为x1,x2。 目标输出:(0,1) 、(1,0)。 Af类记为 (1,0),Apf类记为(0,1)。
xj为输入信号, i 为阈值,
表示与神经元
ij
xj
连接的权值
yi表示输出值
阈值型 线性型
S型
传ຫໍສະໝຸດ Baidu函数
f
(x)
1 0
xi 0
xi 0
1 f (xi ) axi b
0
xi x2
x1 xi x2
xi x1
1
f (xi )
( xi ) 2
1 e c
神经网络的互连模式
前向网络: 神经元分层排列,分别组成输入层、中间层(也
——浅尝
数学建模工作室 张敏
神经网络浅尝
• 神经网络基础知识 • 常用函数介绍 • 案例——蠓虫分类
神经网络基础知识
构成:大量简单的基本元件——神经元相互连接 工作原理:模拟生物的神经处理信息的方式 功能:进行信息的并行处理和非线性转化
特点:比较轻松地实现非线性映射过程 具有大规模的计算能力
调用格式:A=tansig(n)
2 f (x) 1 e2n 1
如:
n=-10:0.1:10 a=tansig(n) plot(n,a) grid on 如右图所示
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-10 -8 -6 -4 -2
0
2
4
6
8 10
newff
常用函数
创建一个BP网络,其调用格式为:
特点:任意两个神经元之间都可能有 联系
BP神经网络
多层前馈神经网络,信号向前传播,误差向后传播。
输入层
i
中间层 j
输出层
k
输入层
i
中间层 j
输出层
k
xi
ji
kj
中间层:
输入
p
u j xi ji i 1
输出
v j f (u j )
输入层
i
中间层 j
输出层
k
xi
ji
kj
输出层:
输入
n
U k v j kj j 1
叫隐含层,可以由若干层组成)和输出层。
输入层
中间层
输出层
特点:每层只接受前一层的信息,没有反馈。 如:感知器网络和BP神经网络
有反馈的前向神经网络:
特点:输出层对输入层有反馈信息。
如:认知机和回归BP网络。
层内有互相结合的前向网络:
特点:可以实现同一层内神经元之间的横 向抑制或兴奋作用
相互结合型网络:
神经网络仿真函数sim 调用格式为:
[Y,Pf,Af,E,perf]=sim(net,P,Pi,Ai,T)
其中, Y:函数返回值,网络输出; Pf:函数返回值,最终输出延迟; Af:函数返回值,最终的层延迟; E:函数返回值,网络误差; perf:函数返回值,网络性能; net:待仿真的神经网络; P:网络输入; Pi:初始输入延迟,默认为0; Ai:初始的层延迟,默认为0; T:网络目标,默认为0.
应用范围
医学:疾病识别
图像:识别、去噪、增强、配准、 融合
金融:股票和有价证券的预测分 析、资本收益的预测和分析、风 险管理、信用评估等等
神经网络结构图
输入层
中间层
输出层
生物神经元结构:
树突
细胞体
细胞核
轴突
突触 神经末梢
神经元结构模型
x1
x2
x3
xj
ij
i
yi
xn
可以看出神经元一般表现为一个多输入、单输出的非线性器件
调用格式:A=logsig(N)
2 f (x) 1 e2x
如:
n=-10:0.1:10 a=logsig(n)
plot(n,a)
grid on
图形如下:
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-10 -8 -6 -4 -2
0
2
4
6
8 10
tansig(双曲正切S型传递函数):
输入层
i
中间层 j
输出层
k
xi
ji
kj
n
p
Vk f ( ( f ( (xi ji )) kj )) 0或1
j 1
i 1
输入层
i
中间层 j
输出层
k
xi
ji
kj
2、通过已知样本训练出合适的权值 ji、kj
使输出为(0,1)或(1,0)。
3、将待区分的蠓虫数据输入网络,求值。
权值求法:向后传播法
clear p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90; 1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08]; p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00 1.28,2.00;1.30,1.96]; p=[p1;p2]'; pr=minmax(p); goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)]; plot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o') net=newff(pr,[3,2],{'logsig','logsig'}); net = train(net,p,goal); x=[1.24 1.80;1.28 1.84;1.40 2.04]'; y0=sim(net,p) y=sim(net,x)
net=newff
net=newff(PR,[S1 S2 …SN1],{TF1 TF2…TFN1},BTF,BLF,PF)
其中,
net=newff :用于在对话框中创建一个BP网络 PR :由每组输入(共有R组输入)元素的最大值和最小值组成的R×2维的矩 阵;
Si :第i层的长度,共计N1层 TFi:第i层的传递函数,默认为“tansig” BTF:BP网络的训练函数,默认为“trainlm”; BLF:权值和阈值的BP学习算法,默认为“learngdm” PF:网络的性能函数,默认为“mse”
train 用于对神经网络进行训练。调用格式为:
[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai)
其中,
NET:待训练的神经网络; P:网络的输入信号; T:网络的目标,默认值为0; Pi:初始的输入延迟,默认为0; Ai:初始的层次延迟,默认为0; net:函数返回值,训练后的神经网络; tr:函数返回值,训练记录(包括步数和性能); Y:函数返回值,神经网络的输出信号; E:函数返回值,神经网络的误差; Pf:函数返回值,最终输入延迟; Af:函数返回值,最终层延迟。
理想输出 Af类(1,0),Apf类(0,1)记为 { Tis}
则有误差:
E()
1 2
i、s
(Ti s
Vk
)2
1 2
(Ti s
i、s
f
(
n
(
j 1
f
p
(
i 1
( xi
ji )) kj )))
使得E(w)最小的 ji、kj 作为所需的权值
传递函数(激活函数)
logsig(S型函数):
MATLAB按此函数计算:
输出 Vk f (Uk )
输入层
i
中间层 j
输出层
k
xi
ji
kj
n
p
Uk ( f ( (xi ji )) kj )
j 1
i1
n
p
Vk f ( ( f ( (xi ji )) kj ))
j 1
i 1
思路:
1、触角长和翼长作为输入信息,分别记为x1,x2。 目标输出:(0,1) 、(1,0)。 Af类记为 (1,0),Apf类记为(0,1)。
xj为输入信号, i 为阈值,
表示与神经元
ij
xj
连接的权值
yi表示输出值
阈值型 线性型
S型
传ຫໍສະໝຸດ Baidu函数
f
(x)
1 0
xi 0
xi 0
1 f (xi ) axi b
0
xi x2
x1 xi x2
xi x1
1
f (xi )
( xi ) 2
1 e c
神经网络的互连模式
前向网络: 神经元分层排列,分别组成输入层、中间层(也