我正在尝试使用cvxpy lib解决一个非常简单的最小二乘问题。但是我发现,当我使用sum_squares和norm(x,2)作为损失函数时,cvxpy给了我非常不同的结果。 当我尝试l1范数和绝对值之和时,也会发生同样的情况。
这些差异是数学上的优化问题定义还是库的实现?
这是我的代码示例:
s = cvx.Variable(n)
constrains = [cvx.sum(s)==1 , s>=0, s<=1]
prob = cvx.Problem(cvx.Minimize(cvx.sum_squares(A * s - y)), constrains)
prob = cvx.Problem(cvx.Minimize(cvx.norm(A*s - y ,2)), constrains)
y和s都是表示直方图的向量。 y是随机数据的直方图,s是我要恢复的原始直方图。 A是一个概率的n * m“过渡”矩阵,其中s如何随机分配到y。
以下是变量s的直方图:
答案 0 :(得分:0)