最近要用到APG,所以就看了一些资料,但是结合论文,发现论文中的公式要么和自己推导的不一样,要么就是给的代码与论文公式不符合,比如对应变量初始化时时随机初始化的还是根据公式求导来初始化的,里面的LIP常数利用F范数的乘法不等式究竟时如何证明出来的?为啥不等式中的系数有时是3,有时是5???,这些问题不解决,就无法确保编写的APG代码是正常的,自然而然算法的优化也会存在问题。可惜,在网上搜了各种资料都没有合适的,所以,在此记录一下【归纳一些简单的内容,上诉具体原因还没搞明白,后续有时间再补充】,也方便自己以后回顾。
手推APG
【具体推导内容还是看论文吧……,有些论文中的公式可能不太对,也可能是我自己推导的有问题???所以这里就不推导了,感兴趣的可以自行下载文章研究研究】
APG——MATLAB代码【举例】
【这里代码仅仅是部分比较重要的,具体代码可以自行下载】
[num_ins num_dim] = size(X); num_label = size(Y,2);
H = eye(num_ins) - 1 / num_ins * ones(num_ins, 1) * ones(num_ins, 1)';
XTX = X'*H*X;
M = rand(num_dim, num_label);
Z = Y;
W_s = rand(num_dim, num_label);
% W_s = (XTX + rho*eye(num_dim)) \ (X'*H*Z-XTX*M);
W_s_1 = W_s;
iter = 1;
oldloss = 0;
bk = 1; bk_1 = 1;
Lip = sqrt(2*norm(XTX)^2 );
while iter <= maxIter
W_s_k = W_s + (bk_1 - 1)/bk * (W_s - W_s_1);
Gw_s_k = W_s_k - 1/Lip * (XTX*W_s_k + XTX*M - X'*H*Z);
bk_1 = bk;
bk = (1 + sqrt(4*bk^2 + 1))/2;
W_s_1 = W_s;
W_s = softthres(Gw_s_k,beta/Lip);
%% soft thresholding operator
function W = softthres(W_t,lambda)
W = max(W_t-lambda,0) - max(-W_t-lambda,0);
end
附件:
一、一些涉及到APG优化方法的论文:
APG
1.Learning Label-Specific Features and ClassDependent Labels for Multi-Label Classification
代码:LLSF,开源
2.Improving multi-label classification with missing labels by learning label-specific features
代码:LSML,开源
3.Multi-label classification with weak labels by learning label correlation and label regularization
代码:无
优化:ADMM+APG+软阈值
4.Joint label completion and label-specific features for multi-label learning algorithm
代码:无,而且优化中有些错误
5.Learning multi-label label-specific features via global and local label correlations
代码:LSGL,代码清晰明了
6.Multi-View Multi-Label Learning With View-Label-Specific Features
代码:VLSF
7.Joint label-specific features and label correlation for multi-label learning with missing label
代码:无
8.Weakly-supervised multi-label learning with noisy features and incomplete labels
代码:无
9.Group-preserving label-specific feature selection for multi-label learning
代码:GLFS
10.Discriminatory Label-specific Weights for Multi-label Learning with Missing Labels