首页 > 其他分享 >【CMAC小脑】CMAC逼近sin(t)函数的训练和测试

【CMAC小脑】CMAC逼近sin(t)函数的训练和测试

时间:2022-10-10 15:33:20浏览次数:45  
标签:CMAC star seq train num end sin 小脑 out


% CMAC逼近sin(t)函数

clear all;
close all;
clc;
t=[0:2*pi/360:2*pi];% 自变量t
y=sin(t);%因变量y
min_in=min(t);%输入自变量最小值
max_in=max(t);%输入自变量最大值
n=numel(t);%自变量的位数
size_n=360;%量化等级,越大精度越高
s=[1:size_n];%S空间,输入量化后的离散空间
train_num=180;%用于训练的样本个数
maxgen=50;%最大迭代次数
mse=zeros(1,maxgen);%均方误差向量
gen=0;%实际迭代次数
eta=1.0;%学习率η
error_goal=0.00001;%误差精度要求
A_star=6;%每个状态对应的关联单元个数
common_unit=5;%相邻关联组有相同关联单元个数
a_num=size_n*A_star-(size_n-1)*common_unit;%关联单元总数
a=ones(1,a_num);% a 向量
w=zeros(1,a_num);% 权值向量
% 获取训练样本 的输入和输出
train_in=zeros(1,train_num);%训练样本输入
train_out=zeros(1,train_num);%训练样本输出
for i=1:train_num
train_in(i)=t(floor((i-1)*n/train_num+1));
train_out(i)=y(floor((i-1)*n/train_num+1));
end
% 开始训练样本
for i=1:maxgen
gen=i;
for j=1:train_num
s_seq=floor((train_in(j)-min_in)/(max_in-min_in)*(size_n-1))+1;%量化空间S的序号
w_seq=(s_seq-1)*(A_star-common_unit)+1;%权值序号
ye(j)=sum(w(w_seq:w_seq+A_star-1));%实际输出
for k=w_seq:w_seq+A_star-1 %修正权值
w(k)=w(k)+eta*(train_out(j)-ye(j))/A_star;
end
end
error=0;
for j=1:train_num
error=error+(train_out(j)-ye(j))^2;
end
mse(i)=error;
if error<error_goal %误差达到目标值,退出训练
break;
end
end
%{
%对权值向量进行插值处理
for i=1:a_num
if w(i)==0
%找到第一个不为零的
j=i;
while(w(j)==0 && j<a_num)
j=j+1;
end
if j<a_num
for k=i:j-1
w(k)=w(j)-(k-i)*(w(j+1)-w(j));
end
end
end
end
%}
%检验训练好的网络
for i=1:n
s_seq=floor((t(i)-min_in)/(max_in-min_in)*(size_n-1))+1;%S序号
w_seq=(s_seq-1)*(A_star-common_unit)+1;%权值序号
yp(i)=sum(w(w_seq:w_seq+A_star-1));
end

% 绘图
figure(1);
plot(t,y,'b',t,yp,'r--','linewidth',2);%原曲线和网络输出曲线
title('实际输出和网络输出对比');xlabel('t');ylabel('y-t,yp-t');
figure(2);
plot(train_in,train_out,'linewidth',2);
title('训练样本曲线');xlabel('train_in');ylabel('train_out');
figure(3);
plot([1:gen],mse(1:gen),'linewidth',2);
title('均方误差误差曲线');xlabel('Generation');ylabel('Mean Square Error');

【CMAC小脑】CMAC逼近sin(t)函数的训练和测试_权值

 

【CMAC小脑】CMAC逼近sin(t)函数的训练和测试_权值_02

 

标签:CMAC,star,seq,train,num,end,sin,小脑,out
From: https://blog.51cto.com/u_15815923/5743803

相关文章