最近正在看一些ADMM的工程化应用。毕竟有人说理论不重要,最重要的是工程化经验。这样的人确实不太好交流。在阅读最优化:建模、算法与理论/最优化计算方法 的时候,我发现Lasso问题的一个求解方法就是ADMM,在我看来,采用ADMM的前提是这个问题本来很复杂,然后变量可以分离或者可以部分分离,且分离之后的问题有非常高效的求解
1.先看关于针对所有问题的ADMM算法及其求解过程的链接 https://yenhochen.github.io/blog/2023/Alternating-Directions-Method-of-Multipliers/2.再看关于generalized fused lasso问题,ADMM算法到底如何具体求解 …
利用ADMM算法求解lasso回归的系数,代码如下: lm.lasso=function(X,Y,lambda1) { #本函数求解利用ADMM算法求解下列优化问题 # #min{|Y-X*beta|2+lambda1*|beta|1 #rou是ADMM算法中的常数,人为给定 #给定初始值beta0,theta0,mu0 beta0 = rep(0,length(X[1,])) theta0 = beta0 mu0 = rep(0,leng...
4.2 Lasso \min \frac{1}{2} \|Ax-b\|^2 + \lambda \|x\|_1 \\ ADMM form: \begin{array}{rll} &\min & f(x)+g(z) \\ &\text{s.t. } & x-z=0 \\ \text{where,} & & f(x)=\frac{1}{2}\|Ax-b\|^2,\quad g(z)=\lambda \|z\|_1 \end{array} \\ ADMM alg...