comparison DL/two-step DL/SMALL_two_step_DL.m @ 170:68fb71aa5339 danieleb

Added dictionary decorrelation functions and test script for Letters paper.
author Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk>
date Thu, 06 Oct 2011 14:33:41 +0100
parents 290cca7d3469
children d0645d5fca7d
comparison
equal deleted inserted replaced
169:290cca7d3469 170:68fb71aa5339
112 Problem.A = dico; 112 Problem.A = dico;
113 solver = SMALL_solve(Problem, solver); 113 solver = SMALL_solve(Problem, solver);
114 [dico, solver.solution] = dico_update(dico, sig, solver.solution, ... 114 [dico, solver.solution] = dico_update(dico, sig, solver.solution, ...
115 typeUpdate, flow, learningRate); 115 typeUpdate, flow, learningRate);
116 dico = normcols(dico); 116 dico = normcols(dico);
117 switch DL.param.decFcn 117 switch lower(DL.param.decFcn)
118 case 'mailhe' 118 case 'ink-svd'
119 dico = dico_decorr_symetric(dico, mu, solver.solution); 119 dico = dico_decorr_symetric(dico,mu,solver.solution);
120 case 'tropp' 120 case 'grassmannian'
121 [n m] = size(dico); 121 [n m] = size(dico);
122 dico = grassmannian(n,m,[],[],[],dico); 122 dico = grassmannian(n,m,[],0.9,0.99,dico);
123 case 'barchiesi' 123 case 'shrinkgram'
124 [n m] = size(dico); 124 dico = shrinkgram(dico,mu);
125 params.nIter = 100; 125 case 'iterproj'
126 dico = iterativeprojections(n,m,[],[],[],dico); 126 dico = iterativeprojections(dico,mu,Problem.b1,solver.solution);
127 [~, ~, W] = rotatematrix(Problem.b,dico*solver.solution,'conjgradlie',params);
128 dico = W*dico;
129 otherwise 127 otherwise
130 end 128 end
131 129
132 if ((show_dictionary)&&(mod(i,show_iter)==0)) 130 if ((show_dictionary)&&(mod(i,show_iter)==0))
133 dictimg = SMALL_showdict(dico,[8 8],... 131 dictimg = SMALL_showdict(dico,[8 8],...