2D融合Lasso与Matlab CVX

时间:2016-09-09 10:11:59

标签: matlab machine-learning convex-optimization cvx

我在这里写了一个2D融合套索代码。

[m n] = size(circle);
cvx_begin
    variable theta(m, n);
    minimize( norm(circle-theta, 'fro'));
    subject to
        sum(sum(abs(theta(:,1:n-1)-theta(:,2:n)))) == 0;
        sum(sum(abs(theta(1:m-1,:)-theta(2:m,:)))) == 0;
cvx_end

奇怪的是,该计划报告,

  
    

在cvxprob中(第28行)在cvx_begin中(第41行)使用cvxprob / newcnstr时出错(第192行)有纪律的凸编程错误:
    无效约束:{convex} == {constant}

  
     

错误==(第12行)b = newcnstr(evalin('来电者',' cvx_problem',   ' []' ),x,y,' ==' );

删除约束中的abs()后,程序可以运行,但这不是我期望的限制。

1 个答案:

答案 0 :(得分:0)

我认为您可以尝试将矩阵堆叠到向量中,然后使用L1范数。在CVX中,它只是norm(variable,1)。它将与您在此处所做的相同:绝对基本明智之和。