📄 rls_rlsn.m
字号:
%RLS算法%IsNatural=1 自然梯度%IsNatural=0 普通梯度function [ W,ECT ] = RLS( X,A,beta,IsNatural )% 白化处理N=size(X,2);zX=X-repmat(mean(X,2),1,N);V=cov(zX')^(-1/2);X=V*X;I=eye(size(A));W=I;%W(0)P=I;%P(0)ECT=zeros(1,N);if IsNatural for ind=1:N v=X(:,ind); y=W*v; z=tanh(y); %z=y-tanh(y); Q=P./(beta + z'*P*y); P=(P - Q*y*z'*P)./beta; W=W + P*z*v' - Q*y*z'*W; C=abs(W*V*A); [height width]=size(C); mci=max(C,[],2); mcj=max(C,[],1); mci=repmat(mci,1,width); mcj=repmat(mcj,height,1); ECT(ind)=sum(sum(C./mci))+sum(sum(C./mcj))-height-width; endelse for ind=1:N v=X(:,ind); y=W*v; %z=tanh(y); z=y-tanh(y); h=P*z; m=h./(beta + z'*h); tri=triu(P - m*h')+(triu(P - m*h'))' - diag(diag(P - m*h')); P=tri./beta; W=W + m*(v' - z'*W); C=abs(W*V*A); [height width]=size(C); mci=max(C,[],2); mcj=max(C,[],1); mci=repmat(mci,1,width); mcj=repmat(mcj,height,1); ECT(ind)=sum(sum(C./mci))+sum(sum(C./mcj))-height-width; endendW=W*V;if (IsNatural==1) disp(strcat('RLS_N ECT:',num2str(ECT(ind))));else disp(strcat('RLS ECT:',num2str(ECT(ind)))); end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -