首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB智能算法30个案例分析(3-2)

MATLAB智能算法30个案例分析(3-2)

作者头像
万木逢春
发布2018-04-18 10:38:54
8300
发布2018-04-18 10:38:54
举报
文章被收录于专栏:帮你学MatLab帮你学MatLab

神经网路部分

function err=Bpfun(x,P,T,hiddennum,P_test,T_test)

%% 训练&测试BP网络

%% 输入

% x:一个个体的初始权值和阈值

% P:训练样本输入

% T:训练样本输出

% hiddennum:隐含层神经元数

% P_test:测试样本输入

% T_test:测试样本期望输出

%% 输出

% err:预测样本的预测误差的范数

inputnum=size(P,1); % 输入层神经元个数

outputnum=size(T,1); % 输出层神经元个数

%% 新建BP网络

net=newff(minmax(P),[hiddennum,outputnum],{'tansig','logsig'},'trainlm');

%% 设置网络参数:训练次数为1000,训练目标为0.01,学习速率为0.1

net.trainParam.epochs=1000;

net.trainParam.goal=0.01;

LP.lr=0.1;

net.trainParam.show=NaN;

% net.trainParam.showwindow=false; %高版MATLAB

%% BP神经网络初始权值和阈值

w1num=inputnum*hiddennum; % 输入层到隐层的权值个数

w2num=outputnum*hiddennum;% 隐层到输出层的权值个数

w1=x(1:w1num); %初始输入层到隐层的权值

B1=x(w1num+1:w1num+hiddennum); %初始隐层阈值

w2=x(w1num+hiddennum+1:w1num+hiddennum+w2num); %初始隐层到输出层的阈值

B2=x(w1num+hiddennum+w2num+1:w1num+hiddennum+w2num+outputnum); %输出层阈值

net.iw{1,1}=reshape(w1,hiddennum,inputnum);

net.lw{2,1}=reshape(w2,outputnum,hiddennum);

net.b{1}=reshape(B1,hiddennum,1);

net.b{2}=reshape(B2,outputnum,1);

%% 训练网络以

net=train(net,P,T);

%% 测试网络

Y=sim(net,P_test);

err=norm(Y-T_test);

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帮你学MatLab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档