- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.利用一个三输入两输出的两层BP神经网络训练一个输入为[1;-1;1],期望输出为[1;1]的神经网络系统。假设激活函数取为:
clc
clear all
%BP网络的第一阶段学习期
%初始化
lr=10; %学习速率
err_goal=0.0000001;%期望误差最小值
max_epoch=100000;%最大训练次数
a=0.7;%惯性系数
Oi=0;Ok=0;%隐含层和输出层各神经元输出初值为零
%提供训练集和目标值
X=[1;-1;1];
D=[1;1];
%初始化权重
m=3;q=8;l=2; %m为输入节点j的数量,q为隐含层节点i的数量,l为输出节点k的数量
wij=rand(q,m);%随机产生一个在(0 1)之前的q.m维矩阵
wki=rand(l,q);%随机产生一个在(0 1)之前的l.q维矩阵
wij0=zeros(size(wij));%返回同wij矩阵相同维度的数组wij0,并且每个元素被初始化为0。
wki0=zeros(size(wki));%返回同wki矩阵相同维度的数组wki0,并且每个元素被初始化为0。
for epoch=1:max_epoch
%计算隐含层各神经元输出
neti=wij*X;
for j=1:1
for i=1:q
Oi(i,j)=2/(1+exp(-neti(i,j)))-1;
end
end
%计算输出层各神经元输出
netk=wki*Oi;
for i=1:1
for k=1:l
Ok(k,i)=2/(1+exp(-netk(k,i)))-1;
end
end
%计算误差函数
E=(D-Ok)*(D-Ok)/2;
if(Eerr_goal)
break
end
%调整输出层加权系数
deltak=Ok.*(1-Ok).*(D-Ok);
w=wki;
wki=wki+lr*deltak*Oi+a*(wki-wki0);
wki0=w;
%调整隐含层加权系数
deltai=Oi.*(1-Oi).*(deltak*wki);
w=wij;
wij=wij+lr*deltai*X+a*(wij-wij0);
wij0=w;
end
%显示计算次数
epoch
E
%BP网络地第二阶段工作期
X1=X;
%计算隐含层各神经元输出
neti=wij*X1;
for j=1:1
for i=1:q
Oi(i,j)=2/(1+exp(-neti(i,j)))-1;
end
end
%计算输出层各神经元输出
netk=wki*Oi;
for i=1:1
for k=1:l
Ok(k,i)=2/(1+exp(-netk(k,i)))-1;
end
end
%显示结果
Ok
epoch =
3
E =
2.2905e-011
Ok =
1.0000
1.0000
2.将BP网络高度抽象成一个神经元,
nntwarn off %临时关闭神经网络工具箱的警告功能
p=[-3.0 2.0];%输入向量
d=[0.4 0.8];%期望的输出值
[w,b]=initff(p,d,logsig);%w为权值 b为阈值,初试化不超过三层的前向神经网络
df=10;%显示间隔
max_epoch=1000;%给定训练最大步数
err_goal=0.0001;%给定期望误差最小值
lr=1;%设定修正权值的学习速率为1
tp=[df max_epoch err_goal lr];%训练控制参数
[w,b,epoch,tr]=trainbp(w,b,logsig,p,d,tp);%epoch为训练步数,基于梯度下降的训练方法
ploterr(tr,err_goal)%tr为网络训练误差平方和的行向量,绘制误差曲线
pause
p=-3.0;
a=simuff(p,w,b,logsig)%测试网络输出,仿真函数
TRAINBP: 0/1000 epochs, SSE = 0.103917.
TRAINBP: 10/1000 epochs, SSE = 0.0198673.
TRAINBP: 20/1000 epochs, SSE = 0.0164732.
TRAINBP: 30/1000 epochs, SSE = 0.0125821.
TRAINBP: 40/1000 epochs, SSE = 0.0085481.
TRAINBP: 50/1000 epochs, SSE = 0
TRAINBP: 60/1000 epochs, SSE = 0
TRAINBP: 70/1000 e
文档评论(0)