图形最小绝对收缩和选择算子,由 Jerome Friedman、Trevor Hastie 和 Robert Tibshirani 引入(“使用图形套索进行稀疏逆协方差估计”,2014 年)。他们建议使用块坐标下降算法来解决问题(参见 Rahul Mazumder 和 Trevor Hastie 的“图形套索:新见解和替代方案”)。我使用 CVX 编写了这个简单的 MATLAB 代码,给定
X
(大小为 m,n
的回归矩阵):
S = cov(X,0);
cvx_begin
variable theta(n,n) semidefinite
minimize (trace(S*theta)-log_det(theta)+lambda*norm(theta,1))
cvx_end
块坐标下降算法解法和CVX解法有什么区别? CVX 可以设置为给出完全相同的解决方案吗? 该问题涉及图形 LASSO 算法,但可以扩展到其他类似问题,其中作者建议特定算法(例如 ADMM),但可以通过优化包找到解决方案。
已提供
两种实现都应该返回完全相同的解决方案,因为问题是凸半定程序。您应该观察到的差异是
对于小问题和玩具问题,这应该不是什么大问题(如果您是学者,通常会出现这种情况。)如果您是一个试图在现实世界中做一些有用的事情的人,那么运行时和内存使用往往非常重要,因为它们控制您可以用您的方法解决哪些尺寸问题。
了解每种方法的相对局限性的唯一方法是同时实施并尝试这两种方法!至少,我会实现并运行这两种方法作为健全性检查,以确保两种实现都可能是正确的(两种实现都不正确并在输入范围内报告相同结果的可能性非常低。)