好文档 - 专业文书写作范文服务资料分享网站

神经网络作业(函数逼近)

天下 分享 时间: 加入收藏 我要投稿 点赞

智能控制理论及应用作业

1资料查询

BP 神经网络的主要应用: 人脸识别、风电功率预测、短时交通流混沌预测、高炉熔渣粘度预测、汇率预测、价格预测、函数逼近等

Rbf神经网络的主要应用:

函数逼近、短时交通流预测、模式识别、降水预测、民航客运量预测、遥感影像分析、声纹识别、语言识别、人脸识别、车牌识别、汇率预测

Hopfield网络应用:

车牌识别、图像识别、遥感影像分类、字母识别、交通标志识别、 优化计算中的应用、联想记忆存储器的实现、

2 BP编程算法:

2.1 利用样本训练一个BP网络

注:此程序自李国勇书中学习而来

程序部分:

function [ output_args ] = bp( input_args )

%UNTITLED Summary of this function goes here % Detailed explanation goes here

%此设计为两层BP神经网络,3输入,3隐含层节点,两个输出

%初始化部分:

lr=0.05; %%需要给定学习速率 error_goal=0.001; %期望的误差

max_epoch=100000; %训练的最大步长 a=0.9; %惯性系数

Oi=0; Ok=0;

%给两组输入,以及目标输出:

X=[1 1 1;-1 -1 1;1 -1 1;]; %随便给一组输入输入,训练BP网络

T=[1 1 1 ;1 1 1];

%X=-1:0.1:1; %输入范围 %T=sin(pi*X); %X=[]

q=3; %隐含层的节点数自己定义,在此给3个 %初始化

[M,N]=size(X); %输入节点个数为M,N为样本数 [L,N]=size(T); %输出节点个数为L

wij=rand(q,M); %先给定加权系数一组随机值 wki=rand(L,q);

wij0=zeros(size(wij)); %加权系数矩阵的初始值 wki0=zeros(size(wki));

for epoch=1:max_epoch %计算开始 NETi=wij*X; %各个隐含层的净输入 for j=1:N for i=1:q

Oi(i,j)=2/(1+exp(-NETi(i,j)))-1; %再输入作用下,隐含层的输出 end end

NETk=wki*Oi; %各个输出层的净输入 for i=1:N for k=1:L

Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; %在输入作用下,输出层的输出 end end

E=((T-Ok)'*(T-Ok))/2; %性能指标函数,就是误差

if(E

%不满足的话,就要修正加权系数 else

deltak=Ok.*(1-Ok).*(T-Ok); %计算△k w=wki;

wki=wki+lr*deltak*Oi'+a*(wki-wki0); wki0=w;

deltai=Oi.*(1-Oi).*(deltak'*wki)'; %计算△i w=wij;

wij=wij+lr*deltai*X'+a*(wij-wij0); wij0=w;

end

epoch %当前是第多少步

X1=X; %保护当前的输入

NETi=wij*X1; %再一次计算隐含层的输入输出 for j=1:N for i=1:q

Oi(i,j)=2/(1+exp(-NETi(i,j)))-1; % end end

NETk=wki*Oi; %再一次计算输出层的输出 for i=1:N for k=1:L

Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; end end

%直到误差满足要求才跳到此步,输出修正的输出值 Oi %

Ok %最终满足误差要求下的输出

wij %输出输入层与隐含层的最终修改后的权值 wki %输出隐含层与输出层之间的取值 end

仿真结果:

epoch = 8 Oi =

0.9690 -0.4804 0.9995 0.9995 0.9244 0.9989 0.9734 0.9991 0.9356 Ok =

1.0000 1.0000 1.0000 0.9982 0.9658 0.9981 wij =

3.5796 2.0282 2.5985 5.3497 -0.4644 2.5773 5.5337 -0.4516 -1.6788

wki =

1.5490 6.1430 5.8803 2.0593 1.3288 3.8144

由仿真结果可以看出,网络在第八步就可以得到满足误差函数的输出,输出时OK。 由于初始权值是随机给定的,因此每次运行结果可能有所差异。

2.2用BP网路逼近sin函数:

function [ output_args ] = BP1( input_args ) %UNTITLED Summary of this function goes here % Detailed explanation goes here

%P=[0 1 2 3 4 5 6 7 8 9 10]; %T=[0 1 2 3 4 3 2 1 2 3 4];

P=-1:0.1:1; %输入范围 T=sin(pi*P); %样本值

net=newff([0 10],[5,1],{'tansig','purelin'}); %建立网络

%net=newff([0 10],[5,1],{'tansig','purelin'},'traingd','learngd','msereg'); %net=newff([0 10],[5,1],{'tansig','purelin'},'traingdx','learngd','msereg'); net.trainParam.epochs=200; %训练步长为200 net=train(net,P,T); %开始训练 figure;

Y=sim(net,P); %输入下网络的输出

plot(P,T,'+',P,Y,'o') %将样本与实际输出作图显示 end

逼近结果:

1.510.50-0.5-1-1.5-1-0.8-0.6-0.4-0.200.20.40.60.81

其中+为目标值,O为实际输出值,从逼近小姑来看,效果还是比较理想的。

3 GUI作业:

MATLAB工具箱中常用的几类函数: 前向网络创建函数:

newcf 创建级联前向网络 newff 创建前向BP网络

newffd 创建存在输入延迟的前向网络 传递函数:

logsig S型的对数函数 dlogsig logsig的导函数 tansig S型的正切函数 dtansig tansig的导函数 purelin 纯线性函数

dpurelin purelin的导函数 学习函数:

learngd 基于梯度下降法的学习函数 learngdm 梯度下降栋梁学习函数 训练函数:

trainbrBayes 规范化BP训练函数

神经网络作业(函数逼近)

智能控制理论及应用作业1资料查询BP神经网络的主要应用:人脸识别、风电功率预测、短时交通流混沌预测、高炉熔渣粘度预测、汇率预测、价格预测、函数逼近等Rbf神经网络的主要应用:函数逼近、短时交通流预测、模式识别、降水预测、民航客运量预测、遥感影像分析、声纹识别、语言识别、人脸识别、车牌识别、汇率预测Ho
推荐度:
点击下载文档文档为doc格式
3btlk3hlz997tl37ll91
领取福利

微信扫码领取福利

微信扫码分享