BP神经网络

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

YJ
最速下降法,求导得,w(n)ej(n)vIi(n)
误差向前传播,我们可以调整输入层和隐含层的
参数。
输出层
调整权值--- 的其他调整方式
1、动量BP法
w ( n ) ( 1 ) e j( n ) v I i( n ) w ( n 1 )
2、学习率可变的BP算法
(n 1) kkdinecc((nn))
BP神经网络
BP神经网络算法使用流程图
否 调整权值
开始 数据初始化 划分训练数据与测试数据 初始化BP网络 输入样本,计算误差
是否收敛 是 结束
数据初始化
1、目前有300名管理学院全体男女生的身高,体重,性别的数据 存在EXCEL表中; 2、在EXCEL表中读取数据; 3、将数据存在DATA(height,weight,gender)的数组中。
划分训练数据与测试数据
取其中男女各50人作为训练数据,其他留作测试数据。
初始化BP网络
x1
K1
Y1
x2
ij
K2
YJ
xM KI
初始化BP网络---输入层
x1
K1
x2 K2
xM KI
输入层
Y1
输入层的节点数等于样本的维度。
在本例中,学生的维度为身高,体重,故神经网
络输入节点为2。
YJ
初始化BP网络---隐含层
运行结果
%% 测试 test_out=sim(net,testd'); test_out(test_out>=0.5)=1; test_out(test_out<0.5)=0; rate=sum(test_out==testl)/length(testl); fprintf(' 正确率\n %f %%\n', rate*100);
型进行确定。如在模式分别问题中,共有n个种
类,则输出层可以有n个神经元。在本例中,输
K2
YJ
出层为两个神经元,男、女。
KI 隐含层
输出层
初始化BP网络---传递函数
x1
K1
传递函数
Y1
每一层神经元都有一个传递函数,在经典BP网络
x2
中,输入层传递函数原函数,隐含层传递函数为 Sigmoid函数,输出层传递函数为线性函数。
%% 划分数据 [traind,trainl,testd,testl]=divide(data,label);
%% 创建网络 net=feedforwardnet(3);%3代表隐含层的节点数 net.trainFcn='trainbfg';
%% 训练网络 net=train(net,traind‘,trainl); %%traind’和 trainl分别代表输入、出层节点数
e(n1)e(n) e(n1)e(n)
3、拟w ( 牛n 顿1 ) 法w (n ) H 1 (n )g (n )
实际MATLAB应用
% 脚本 使用newff函数实现性别识别 % main_newff.m %% 清理 clear,clc rng('default') rng(2)
%% 读入数据 xlsfile='student.xls'; [data,label]=getdata(xlsfile);
输出层
是否收敛
1、可以给误差设置一个阈值 2、训练到固定代数,停止
调整权值---神经网络的运行(误差反向传播)
x1 x2
xM 输入层
K1
K2
KI 隐含层
Y1
我们令输出层的误差为 ej(n)dj(n)vJj(n) ,
则网络总误差为
e(n)
1 2
J
j 1
e2 j
(n)
首先我们可以调节隐含层与输出层的参数,根据
K2
YJ
xM 输入层
KI 隐含层
输出层
初始化BP网络---神经网络的运行(工作信号正向传播)
x1 x2
xM 输入层
K1
K2
KI 隐含层
来自百度文库
Y1
以隐含层为例,隐含层神经元Ki的输入
M
ui mivMm (n)
m1
YJ
令f ( • ) 为sigmoid函数,则隐含层神经元Ki 的输出
viI(n)f(uIi(n))
x1
K1
Y1
x2
K2
YJ
xM 输入层
KI 隐含层
隐含层实现了非线性映射。 隐含层节点数对BP网络性能有很大影响,一般较 多的节点可以带来更好的性能,但可能导致训练 时间过长。 隐含层节点数的经验公式:M=log2n,n为输入层神 经元的个数
初始化BP网络---输出层
x1 x2
xM 输入层
K1
Y1
输出层的个数需要根据实际问题中得到的抽象模
相关文档
最新文档