• 12.Matlab神经网络工具箱


    概述:

    1  人工神经网络介绍

    2  人工神经元

    3  MATLAB神经网络工具箱

    4  感知器神经网络

    5  感知器神经网络

    5.1  设计实例分析

     1 clear all;
     2 close all;
     3 P=[0 0 1 1;0 1 0 1];
     4 T=[0 1 1 1];
     5 %建立神经网络
     6 net=newp(minmax(P),1,'hardlim','learnp');
     7 %对神经网络进行训练,net是建立网络,P是输入向量,T是目标向量
     8 net=train(net,P,T);
     9 %对网络进行仿真
    10 Y=sim(net,P);
    11 %绘制建模点
    12 plotpv(P,T);
    13 %绘制分界线
    14 plotpc(net.iw{1,1},net.b{1});
     1 clear all;
     2 close all;
     3 P=[-0.5 -0.5 0.4 -0.1 -0.8;-0.5 0.5 -0.3 0.2 0.9];
     4 T=[1 1 0 0 1];
     5 plotpv(P,T);
     6 %建立感知器网络
     7 net=newp(minmax(P),1,'hardlim','learnpn');
     8 hold on;
     9 linehandle=plot(net.IW{1},net.b{1});
    10 E=1;
    11 net.adaptParam.passes=10;
    12 %误差没有达到要求会持续不断的训练
    13 while mae(E)
    14     %进行感知器网络的训练
    15     [net,Y,E]=adapt(net,P,T);
    16     linehandle=plotpc(net.IW{1},net.b{1},linehandle);
    17     drawnow;
    18 end
    19 %对训练好的网络进行保存,保存成net1
    20 save net1 net;
    21 set(gcf,'position',[50,50,400,400]);
     1 clear all;
     2 close all;
     3 %加载网络
     4 load net1.mat;
     5 X=[-0.4 0.2 0.8;-0.7 0.3 0.9];
     6 %对网络进行仿真,输入向量为X
     7 Y=sim(net,X);
     8 figure;
     9 %绘制样本点和分界线
    10 plotpv(X,Y);
    11 plotpc(net.IW{1},net.b{1});
    12 set(gcf,'position',[50,50,400,400]);

    5.2  线性神经网络

     1 clear all;
     2 close all;
     3 P=[1.0 2.1 3 4];
     4 T=[2.0 4.01 5.9 8.0];
     5 %获取最大的学习速率
     6 lr=maxlinlr(P);
     7 net=newlin(minmax(P),1,0,lr);
     8 %最大学习次数是300
     9 net.trainParam.epochs=300;
    10 %训练的目标误差为0.05
    11 net.trainParam.goal=0.05;
    12 net=train(net,P,T);
    13 Y=sim(net,P)

    6  设计实例分析

     1 clear all;
     2 close all;
     3 t=0:pi/10:4*pi;
     4 X=t.*sin(t);
     5 T=2*X+3;
     6 figure;
     7 plot(t,X,'+-',t,T,'+--');
     8 legend('系统输入','系统输出');
     9 set(gca,'xlim',[0 4*pi]);
    10 set(gcf,'position',[50,50,400,400]);
    11 net=newlind(X,T);
    12 %对网络进行仿真
    13 y=sim(net,X);
    14 figure;
    15 plot(t,y,'+:',t,y-T,'r:');
    16 legend('网络预测输出','误差');
    17 set(gca,'xlim',[0 4*pi]);
    18 set(gcf,'position',[50,50,400,400]);

    7  BP网络

    7.1  BP网络的创建

    7.2  BP网络实例分析

     1 clear all;
     2 clear all;
     3 P=[0 1 2 3 4 5 6 7 8 9 10];
     4 T=[0 1 2 3 4 3 2 1 2 3 4];
     5 %隐含层为10个神经元
     6 net=newff(P,T,10);
     7 net.trainParam.epochs=100;
     8 %进行训练
     9 net=train(net,P,T);
    10 %对网络进行仿真
    11 Y=sim(net,P);
    12 figure;
    13 plot(P,T,P,Y,'o');
    • BP神经网络进行曲线拟合
     1 clear all;
     2 clear all;
     3 P=-1:0.05:1;
     4 T=sin(2*pi*P)+0.1*randn(size(P));
     5 net=newff(P,T,20,{},'trainbr');
     6 net.trainParam.show=10;
     7 net.trainParam.epochs=50;
     8 net=train(net,P,T);
     9 Y=sim(net,P);
    10 figure;
    11 plot(P,T,'-',P,Y,'+');
    12 legend('原始信号','网络输出信号');
    13 set(gcf,'position',[50,50,600,300]);

    8  径向基审计网络

    1 clear all;
    2 close all;
    3 P=[1 2 3 4 5];
    4 T=[2.1 3.4 5.4 6.9 5.6];
    5 net=newrb(P,T);
    6 x=2:0.5:5
    7 y=sim(net,x)

    9  广义回归神经网络

     1 clear all;
     2 close all;
     3 %输入向量
     4 P=1:20;
     5 %输出向量
     6 T=3*sin(P);
     7 net=newgrnn(P,T,0.2);
     8 y=sim(net,P);
     9 figure;
    10 plot(P,T,':+',P,T-y,'-o');

    10  概率神经网络

    1 clear all;
    2 close all;
    3 P=[1:8];
    4 Tc=[2 3 1 2 3 2 1 1];
    5 T=ind2vec(Tc)
    6 net=newpnn(P,T);
    7 Y=sim(net,P);
    8 Yc=vec2ind(Y)
  • 相关阅读:
    hashlib模块
    sys模块
    random模块
    time模块
    生成器、迭代器
    装饰器
    函数相关内容
    集合相关操作
    springcloud(四):Eureka的配置详解
    springcloud(二):Eureka服务注册与发现
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8917124.html
Copyright © 2020-2023  润新知