背景
Alternating Direction Method of Multipliers(ADMM)是这门课老师说的对我们最重要的算法,所以需要特别掌握。
计划使用ADMM算法解决1d Fused LASSO问题。
内容
这个写的最好凸优化|笔记整理(B)——再看交替方向乘子法(ADMM),Frank-Wolfe方法
ADMM优化算法(附MATLAB代码)
分布式计算、统计学习与ADMM算法
下面是我自己做的笔记:
C++实现
实现代码链接:
https://github.com/yufeiran/ConvexOptimization/tree/main/ConvexOptimization/1dFussedLassoUseADMM
实现效果
ρ取0.3,λ取0.3时的效果如下图所示,虽然可以拟合一个比较平滑的曲线,但是对比课件中的算法感觉还是有差距,我推测是由于我的数值计算没有经过特殊处理,全都是用C++的double默认计算。
课件中的效果: