基于CMAC小脑网络的目标分类MATLAB仿真实验

1.软件版本

MATLAB2021a


2.本算法理论知识

程序流程如下所示:

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_CMAC

CMAC的基本原理为:对于每个输入,

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_CMAC_02

中只有个单元为1,而其余的均为0,因此是一个稀疏矩阵。哈希编码是压缩稀疏矩阵的常用技术,具体方法是通过一个产生随机数的程序来实现的。以的地址作为随机数产生的程序的变量,产生的随机数作为的地址。由于产生的随机数限制在一个较小的整数范围内,因此远比小得多。显然,从到的压缩是一种多对少的随机映射。在中,对每一个样本有个随机地址与之对应,个地址存放的权值通过学习得到,其累加和即作为CMAC的输出。其表达式为:

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_目标分类_03

其中,

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_随机数_04

为第j个存储单元的权值,若激活,则其值为1,否则为0,只有个存储单元对输出有影响。相近的输入激活的存储单元有交叠,产生相近的输出,不相近的输入将产生不相近的输出。对应的误差表达式为:

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_目标分类_05

CMAC算法中结果输出阶段从CMAC存储单元产生一实际输出,学习过程根据期望输出与实际输出的误差大小来更新CMAC存储单元中的权值。在常规CMAC算法中误差被平均分配到所有被激活的存储单元。设

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_目标分类_06

为某一状态,是经过第次迭代后存储在第个存储单元中的权值。常规CMAC更新算法为:

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_随机数_07

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_目标分类_08

为状态s的期望输出,

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_目标分类_09

为状态s的实际输出,

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_权值_10

为学习常数。



3.核心代码

登录后复制

function [Weight,Error] = func_CMAC_train(x,y,Iters,Learn_rate,Goals);%最小值Vmin      = min(x);%最大值Vmax      = max(x);%位数Xwidth    = numel(x);%量化Qlen      = 360;%S空间S_space   = [1:Qlen];%用于训练的样本个数Len_train = 180;%误差Error     = [];%状态关联单元个数Nuints1   = 6;%相同关联单元个数Nuints2   = 5;%总关联单元数Nuints_all= Qlen*Nuints1-(Qlen-1)*Nuints2;%权值Weight    = zeros(1,Nuints_all);%获取训练样本P_train=zeros(1,Len_train);T_train=zeros(1,Len_train);for i=1:Len_train    P_train(i) = x(floor((i-1)*Xwidth/Len_train+1));    T_train(i) = y(floor((i-1)*Xwidth/Len_train+1));end%训练for i=1:Iters    for j=1:Len_train        %量化S空间        S_idx        = floor((P_train(j)-Vmin)/(Vmax-Vmin)*(Qlen-1)) + 1;        W_idx        = (S_idx-1)*(Nuints1-Nuints2)+1;        %输出         T_predict(j) = sum(Weight(W_idx:W_idx+Nuints1-1));             %CMAC权值更新        for k=W_idx:W_idx+Nuints1-1             Weight(k) = Weight(k) + Learn_rate * (T_train(j)-T_predict(j)) / Nuints1;        end            end        error = 0;    for j=1:Len_train        error = error + (T_train(j)-T_predict(j))^2;    end        Error(i)=error;    %退出训练    if error<Goals        break;    end    end1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.



4.操作步骤与仿真结论

【CMAC小脑网络】基于CMAC的目标分类matlab仿真_目标分类_11


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空