Mercurial > hg > smallbox
diff DL/Majorization Minimization DL/ExactDicoRecovery/ExactRec_Demo.m @ 155:b14209313ba4 ivand_dev
Integration of Majorization Minimisation Dictionary Learning
author | Ivan Damnjanovic lnx <ivan.damnjanovic@eecs.qmul.ac.uk> |
---|---|
date | Mon, 22 Aug 2011 11:46:35 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DL/Majorization Minimization DL/ExactDicoRecovery/ExactRec_Demo.m Mon Aug 22 11:46:35 2011 +0100 @@ -0,0 +1,49 @@ +clear +IT = 1000; % Number of iterations +R = 3:7; % Sparsity of the signals +SN = 5; % Number of trials +M = 20; % Signal space dimension +N = 40; % Ambient space dimension +L = 32*N; % Number of training signals + +ParamGen(M,N,L,R,SN) % Generating generic problems + +%%%% Dictionary recovery algorithms +for sn = 1:SN + for r = R + mmdlcn_exactRec_demo(IT,r,sn,'un') + mapcn_exactRec_demo(IT,r,sn,'bn') + ksvd_exactRec_demo(IT,r,sn) + modcn_exactRec_demo(IT,r,sn) + end +end +%%%%%%% +Tre = .99; +for k = R + for i=1:SN + load(['RDLl1',num2str(M),'t',num2str(IT),'ikiun',num2str(k),'v1d',num2str(i),'.mat']) + nrRDLu(i,k-R(1)+1) = sum(max(abs((Phid'*Phi)))>=Tre); + %%%%%% + load(['MAPl1',num2str(M),'t',num2str(IT),'ikiun',num2str(k),'v1d',num2str(i),'.mat']) + nrMAP(i,k-R(1)+1) = sum(max(abs((Phid'*Phi)))>=Tre); + %%%%%% + load(['KSVDl1',num2str(M),'t',num2str(IT),'ikiun',num2str(k),'v1d',num2str(i),'.mat']) + nrKSVD(i,k-R(1)+1) = sum(max(abs((Phid'*Phi)))>=Tre); + %%%%%% + load(['MODl1',num2str(M),'t',num2str(IT),'ikiun',num2str(k),'v1d',num2str(i),'.mat']) + nrMOD(i,k-R(1)+1) = sum(max(abs((Phid'*Phi)))>=Tre); + end +end +clf +errorbar(R+.01,10*mean(nrRDLu,1)/4,std(nrRDLu,0,1),'k-.') +hold on +errorbar(R-.01,10*mean(nrKSVD,1)/4,std(nrKSVD,0,1),'r*-') +errorbar(R+.01,10*mean(nrMOD,1)/4,std(nrMOD,0,1),'b-v') +errorbar(R-.01,10*mean(nrMAP,1)/4,std(nrMAP,0,1),'b-^') +axis([2.5 7.5 15 105]); +title('Constrained column-norm dictionaries') +xlabel('Sparsity (# of non-zero elements in each coefficient vector)') +ylabel(['Average percents of exact recovery',sprintf('\n'),'after ',num2str(IT),' iterations']) +grid on +legend('MM Unit norm','K-SVD','MOD','MAPbased-DL'); +axis([2.8 7.2 -5 105]) \ No newline at end of file