📄 bpnet1.asv
字号:
function F=BPnet1(X)
lr=0.05; %学习率
err_goal=0.001;
max_epoch=10000;
X=[1 2;-1 1;1 3];T=[1 1;1 1]; %三输入两输出的训练集和目标值
[M,N]=size(X);q=10;[L,N]=size(T); %N为训练集对 数量,M为输入节点j的数量,q隐含层节点i的数量,L输出节点k的数量
Wij=rand(q,M); %随机给定输入层与隐含层间的权值
Wki=rand(L,q); %随机给定隐含层与输出层间的权值
b1=zeros(q,1);b2=zeros(L,1); %随机给定隐含层,输出层的偏值
for epoch=1:max_epoch
Oi=tansig(Wij*X,b1); %计算网络隐含层各神经元的输出
Ok=purelin(Wki*Oi,b2); %计算网络输出层各神经元的输出
E=T-Ok; %计算网络误差
deltak=deltalin(Ok,E); %计算输出层的导数
deltai=deltatan(Oi,deltak,Wki); %计算隐含层的导数
[dWki,db2]=learnbp(Oi,deltak,lr);
Wki=Wki+dWki;b2=b2+db2; %调整输出层加权系数
[dWij,db1]=learnbp(X,deltai,lr);
Wij=Wij+dWij;b1=b1+db1; %调整隐含层加权系数
SSE=sumsqr(T-purelin(Wki*tansig(Wij*X,b1),b2)); %计算网络权值修正后的误差平方和
if(SSE<err_goal)break;end
end
epoch
X1=X;
Oi=tansig(Wij*X1,b1);
Ok=purelin(Wki*Oi,b2);
Ok
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -