# HG changeset patch # User bmailhe # Date 1332339145 0 # Node ID 233e75809e4afd6dc019a6c9924d3763ff85ecc8 # Parent 5bb579c9874ed42e6085f755ed4ad34061be61ad Accelerated the code for LGD and optimal grandient descent diff -r 5bb579c9874e -r 233e75809e4a DL/two-step DL/dico_update.m --- a/DL/two-step DL/dico_update.m Tue Mar 20 14:51:31 2012 +0000 +++ b/DL/two-step DL/dico_update.m Wed Mar 21 14:12:25 2012 +0000 @@ -86,13 +86,28 @@ end case 'opt' for p = 1:nb_pattern - vec : amp(p,:); - grad = res*vec'; + index = find(amp(p,:)~=0); + vec = amp(p,index); + grad = res(:,index)*vec'; if norm(grad) > 0 pat = (vec*vec')*dico(:,p) + rho*grad; pat = pat/norm(pat); if nargin >5 && strcmp(flow, 'sequential') - res = res + (dico(:,p)-pat)*vec; + res(:,index) = res(:,index) + (dico(:,p)-pat)*vec; + end + dico(:,p) = pat; + end + end + case 'LGD' + for p = 1:nb_pattern + index = find(amp(p,:)~=0); + vec = amp(p,index); + grad = res(:,index)*vec'; + if norm(grad) > 0 + pat = (vec*vec')*dico(:,p) + 2*grad; + pat = pat/norm(pat); + if nargin >5 && strcmp(flow, 'sequential') + res(:,index) = res(:,index) + (dico(:,p)-pat)*vec; end dico(:,p) = pat; end