⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sofm.asv

📁 THE ZIP FILE CONTAINS ALL THE PROGRAMS OF A BOOK NEURAL NETWROK FOUNDATIONS BY SATISH KUMAR
💻 ASV
字号:
% ==========================================================
% 
%           Neural Networks A Classroom Approach
%                     Satish Kumar
%             Copyright Tata McGraw Hill, 2004
%
%       MATLAB code that implements the SOFM algorithm
%             Reference: Table 12.8;Page 561
%
% ==========================================================

% MATLAB PROGRAM TI SIMULATE THE SELF ORGANIZING FEATURE MAP
clear all
numpats = 500;
data = 2*[rand(1,numpats);rand(1,numpats)]-1;

figure(1);
plot(data(1,:),data(2,:),'b.');
drawnow

% maxneuron=8;	% max number of neurons on an axis
% instarx=2*rand(maxneuron)-1;	% initialise wts
% instary=2*rand(maxneuron)-1;
% 
% nbd = 6;					% define the max nbd size
% contractnbd = 1;		% define contraction rates 
% count = 0;				% count to contract every 200 epochs
% figure(2);
% axis([-1 1 -1 1]);
% 
% for epoch = 1:numpats*maxneuron
%    count = count + 1;
%       
%    eta=0.9*(1 - epoch/1000);
%     
%    if (epoch > 999) eta = 0.005;
%    end
%     
%    for p = 1:numpats		
%       for indx = 1:maxneuron
%          for indy = 1:maxneuron
%             dist(indx,indy)=sqrt((instarx(indx,indy)-data(1,p))^2 ...
%                + (instary(indx,indy)-data(2,p))^2);
%          end
%       end
%       
%       [val1,rows]=min(dist);	      
%       [val2,cols]=min(val1);
%       indxmin=rows(cols);
%       indymin=cols;
%               
%       for i=indxmin-nbd:indxmin+nbd
%          for j=indymin-nbd:indymin+nbd
%             if((i >= 1)&(i<=maxneuron)&(j>=1)&(j<=maxneuron))
%                instarx(i,j)=instarx(i,j)+eta*(data(1,p)-instarx(i,j));
%                instary(i,j)=instary(i,j)+eta*(data(2,p)-instary(i,j));
%             end
%          end
%       end
%    end
%    
%    for i=1:maxneuron
%       plot(instarx(i,:),instary(i,:),'b.');
%    end
%        
%    for i=1:maxneuron
%       for j=1:maxneuron
%          nb=[1 i-1 j
%              2 i+1 j
%              3 i   j-1
%              4 i   j+1];
%           for k=1:4
%              if((nb(k,2)>=1)&(nb(k,2)<=maxneuron)&(nb(k,3)>=1)&(nb(k,3)<=maxneuron))
%                 line([instarx(i,j),instarx(nb(k,2),nb(k,3))],...
%                      [instary(i,j),instary(nb(k,2),nb(k,3))]);
%                end
%             end
%          end
%       end
%       
%       drawnow
%         
%       if count == 200
%          nbd = nbd - contractnbd;
%          if (nbd < 1) nbd = 1;
%          end
%          count = 0;
%       end
%       epoch
%    end
%    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -