Optimization 如何最小化包含frobenius和nuclear范数的目标函数?
受Ds矩阵Frobenius范数平方必须小于或等于1的约束 目前我正在使用CVXPY库来求解目标函数。我的代码示例看起来像Optimization 如何最小化包含frobenius和nuclear范数的目标函数?,optimization,mathematical-optimization,cvxpy,convex-optimization,cvxopt,Optimization,Mathematical Optimization,Cvxpy,Convex Optimization,Cvxopt,受Ds矩阵Frobenius范数平方必须小于或等于1的约束 目前我正在使用CVXPY库来求解目标函数。我的代码示例看起来像 import cvxpy as cp import numpy as np np.random.seed(1) Xs = np.random.randn(100,4096) Ys = np.random.randn(100,300) # Define and solve the CVXPY problem. Ds = cp.Variable(shape=(30
import cvxpy as cp
import numpy as np
np.random.seed(1)
Xs = np.random.randn(100,4096)
Ys = np.random.randn(100,300)
# Define and solve the CVXPY problem.
Ds = cp.Variable(shape=(300,4096))
lamda1 = 1
obj = cp.Minimize(cp.square(cp.norm(Xs - (Ys*Ds),'fro')) + lamda1*cp.norm(Ds,'nuc'))
constraints = [cp.square(cp.norm(Ds,'fro')) <= 1]
prob = cp.Problem(obj, constraints)
prob.solve(solver=cp.SCS, verbose=True)
将cvxpy作为cp导入
将numpy作为np导入
np.随机种子(1)
Xs=np.random.randn(1004096)
Ys=np.random.randn(100300)
#定义并解决CVXPY问题。
Ds=cp.Variable(shape=(3004096))
lamda1=1
obj=cp.Minimize(cp.square(cp.norm(Xs-(Ys*Ds),'fro'))+lamda1*cp.norm(Ds,'nuc'))
constraints=[cp.square(cp.norm(Ds,'fro'))问题是DCP(我已经用prob.is_DCP()验证了它)。希望这有助于您使用投影次梯度法或ADMM解决它。我可以在MATLAB中完成。