📄 msnn2.m
字号:
function [WX,ZX,O,E]=msnn2(t,xcell,noHidCells,lrate,epoch)% This is a msnn backpropagation algorithm with 1 hiddenlayer% t = target% x = input% noHidCells = number of hidden cells% lrate = learning rate% epoch = number of iterations% W = weights for hidden layer% Z = weights for output layer% O = output response% E = training error% The training set consists of K pairs% Input is K by n_input_cells% Target is K by n_output_cells%[nk1,nj]=size(t);%[nk2,ni]=size(xcell{1});nk1=4;nj=4;nk2=4;ni=900;%\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\% load previous weightsload wq;load zq;%ker=[1 1 1];SE=strel('disk',3);% set goalepsilon=10^(-2);% initialization and declarationcounter=0;e=ones(nk1,nj);err=zeros(1,epoch);% construct training loopwhile (sum(sum(e.^2)) > epsilon) & (counter < epoch) order=randperm(nk1); counter=counter+1; % start an epoch for k=1:nk1 % FEATURE EXTRACTION: HIT-MISS TRANSFORM for nn=1:4 xe{nn}=double(imerode(xcell{nn},SE)); xd{nn}=double(imdilate(xcell{nn},SE)); xcell{nn}=abs(xe{nn}-xd{nn}); end; for nu=1:4 xcelldummy{nu} = xcell{nu}; xcelldummy{nu} = imresize(xcelldummy{nu},[30 30]); end; %save ht xhitmiss; x1=xcelldummy{1}; x2=xcelldummy{2}; x3=xcelldummy{3}; x4=xcelldummy{4}; v1 = x1(:); v2 = x2(:); v3 = x3(:); v4 = x4(:); x = [v1';v2';v3';v4']; % CLASSIFICATION: TRAINING NETWORK np=order(k); f=[x(np,:),1];% feedforward h=logsigfx(f*WX); %logistic(squashing) function h=[h,1]; % bias=1 o=logsigfx(h*ZX); %logistic(squashing) function e(np,:)=t(np,:)-o; % (t-o)=e% correction for output layer: Z delta=e(np,:).*o.*(1-o);% correction for hidden layer: W deltaH=h.*(1-h).*(delta*ZX');% weight update ZX=ZX+(lrate*(h'*delta)); WX=WX+(lrate*(f'*deltaH(1:noHidCells))); end; % end of an epoch clc; err(counter)=sum(sum(e.^2)); disp(['epoch=',int2str(counter),... ' error=',num2str(err(counter)),... ' lrate=',num2str(lrate)]);end;save zq ZX;save wq WX;% give final answer O=logsigfx([x,ones(nk1,1)]*WX); O=logsigfx([O,ones(nk1,1)]*ZX);E=err;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -