matlab 通用神经网络代码,[转载]matlab 通用神经网络代码(转)

感应器神经网络、线性网络、BP神经网络、径向基函数网络

%通用感应器神经网络。

P=[-0.5 -0.5 0.3 -0.1 -40;-0.5 0.5 -0.5 1 50];%输入向量

T=[1 1 0 0 1];%期望输出

plotpv(P,T);%描绘输入点图像

net=newp([-40 1;-1 50],1);%生成网络,其中参数分别为输入向量的范围和神经元感应器数量

hold on

linehandle=plotpc(net.iw{1},net.b{1});

net.adaptparam.passes=3;

for a=1:25%训练次数

[net,Y,E]=adapt(net,P,T);

linehandle=plotpc(net.iw{1},net.b{1},linehandle);

drawnow;

end

%通用newlin程序

%通用线性网络进行预测

time=0:0.025:5;

T=sin(time*4*pi);

Q=length(T);

P=zeros(5,Q);%P中存储信号T的前5(可变,根据需要而定)次值,作为网络输入。

P(1,2:Q)=T(1,1:(Q-1));

P(2,3:Q)=T(1,1:(Q-2));

P(3,4:Q)=T(1,1:(Q-3));

P(4,5:Q)=T(1,1:(Q-4));

P(5,6:Q)=T(1,1:(Q-5));

plot(time,T)%绘制信号T曲线

xlabel('时间');

ylabel('目标信号');

title('待预测信号');

net=newlind(P,T);%根据输入和期望输出直接生成线性网络

a=sim(net,P);%网络测试

figure(2)

plot(time,a,time,T,' ') xlabel('时间');

ylabel('输出-目标 ');

title('输出信号和目标信号');

e=T-a;

figure(3)

plot(time,e)

hold on

plot([min(time) max(time)],[0

0],'r:')%可用plot(x,zeros(size(x)),'r:')代替

hold off

xlabel('时间');

ylabel('误差');

title('误差信号');

%通用BP神经网络

P=[-1 -1 2 2;0 5 0 5];

t=[-1 -1 1 1];

net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingd');

%输入参数依次为:'样本P范围',[各层神经元数目],{各层传递函数},'训练函数'

%训练函数traingd--梯度下降法,有7个训练参数.

%训练函数traingdm--有动量的梯度下降法,附加1个训练参数mc(动量因子,缺省为0.9)

%训练函数traingda--有自适应lr的梯度下降法,附加3个训练参数:lr_inc(学习率增长比,缺省为1.05;

% lr_dec(学习率下降比,缺省为0.7);max_perf_inc(表现函数增加最大比,缺省为1.04)

%训练函数traingdx--有动

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值