annotate DL/Majorization Minimization DL/ExactDicoRecovery/mapdl_cn.m @ 163:855025f4c779
 ivand_dev 
renaiming small_cgp to small_pcgp
 | author | Ivan Damnjanovic lnx <ivan.damnjanovic@eecs.qmul.ac.uk> | 
 | date | Wed, 07 Sep 2011 14:16:50 +0100 | 
 | parents | b14209313ba4 | 
 | children |  | 
 | rev | line source | 
  
| ivan@155 | 1 % Maximum A Posteriori Estimation for Dictionary Learning | 
| ivan@155 | 2 % Y = input data (M X L matrix) | 
| ivan@155 | 3 % Phi = initial dictionary (M X N), e.g. random dictionary or first N data samples | 
| ivan@155 | 4 % lambda = regularization coefficient (||Phi*X-Y||_F)^2 + lambda*||X||_1 | 
| ivan@155 | 5 % IT + number of iterations | 
| ivan@155 | 6 % res = dictionary constraint. 'un' = unit colomn norm, 'bn' = bounded colomn norm | 
| ivan@155 | 7 function [Phiout,X,ert] = mapdl_cn(Y,Phi,lambda,IT,res) | 
| ivan@155 | 8 maxIT = 1000; | 
| ivan@155 | 9 [PhiN,PhiM] = size(Phi); | 
| ivan@155 | 10 RR1 = PhiM; | 
| ivan@155 | 11 %%%%%%%%%%%%%% | 
| ivan@155 | 12 % [PhiM,L] = size(ud); | 
| ivan@155 | 13 [PhiN,L] = size(Y); | 
| ivan@155 | 14 X = ones(PhiM,L); | 
| ivan@155 | 15 for it = 1:IT | 
| ivan@155 | 16     to = .1+svds(Phi,1); | 
| ivan@155 | 17     [PhiN,PhiM] = size(Phi); | 
| ivan@155 | 18     %%%% | 
| ivan@155 | 19     eps = 3*10^-4; | 
| ivan@155 | 20     map = 1; % Projecting on the selected space (0=no,1=yes) | 
| ivan@155 | 21     [X,l1err] = mm1(Phi,Y,X,to,lambda,maxIT,eps,map); %% Sparse approximation with Iterative Soft-thresholding | 
| ivan@155 | 22     ert(it) = l1err; | 
| ivan@155 | 23     %%% | 
| ivan@155 | 24     eps = 10^-7; | 
| ivan@155 | 25     mu = 10^-4; | 
| ivan@155 | 26     [Phi,X] = dict_update_MAP_cn(Phi,Y,X,mu,maxIT,eps,res); | 
| ivan@155 | 27 end | 
| ivan@155 | 28 Phiout = Phi; |