Home > dal > hessMultdalgl.m

hessMultdalgl

PURPOSE ^

hessMultdalgl - function that computes H*x for DAL with grouped

SYNOPSIS ^

function yy = hessMultdalgl(xx, A, eta, Hinfo)

DESCRIPTION ^

 hessMultdalgl - function that computes H*x for DAL with grouped
                 L1 regularization

 Copyright(c) 2009 Ryota Tomioka
 This software is distributed under the MIT license. See license.txt

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % hessMultdalgl - function that computes H*x for DAL with grouped
0002 %                 L1 regularization
0003 %
0004 % Copyright(c) 2009 Ryota Tomioka
0005 % This software is distributed under the MIT license. See license.txt
0006 
0007 function yy = hessMultdalgl(xx, A, eta, Hinfo)
0008 
0009 blks =Hinfo.blks;
0010 hloss=Hinfo.hloss;
0011 I    =Hinfo.I;
0012 vv   =Hinfo.vv;
0013 nm   =Hinfo.nm;
0014 lambda=Hinfo.lambda;
0015 
0016 yy = hloss*xx;
0017 
0018 
0019 for kk=1:length(I)
0020   jj=I(kk);
0021   J=sum(blks(1:jj-1))+(1:blks(jj));
0022   vn=vv(J)/nm(jj);
0023   ff=lambda/nm(jj);
0024   
0025   % AF=ff*A(:,J)+(1-ff)*A(:,J)*vn*vn';
0026 
0027   xk=A(:,J)'*xx;
0028   
0029   yy = yy + eta*A(:,J)*((1-ff)*xk+ff*vn*(vn'*xk));
0030 end
0031 
0032 B=Hinfo.B;
0033 if ~isempty(B)
0034   yy = yy + eta*B*(B'*xx);
0035 end

Generated on Sat 22-Aug-2009 22:15:36 by m2html © 2003