Как решить проблему выпуклости разности с потерей huber в cvxpy

#python #mathematical-optimization #cvxpy #convex-optimization

Вопрос:

Мне нужно решить проблему оптимизации

задача оптимизации

где qt, skt, yt-некоторый известный массив действительных чисел, K-ядро rbf, l — потеря Хубера. Ограничение заключается в том, что норма l2 каждого alpha_j меньше константы. Вот мой код, который пытается решить эту проблему,

 alpha = cvx.Variable((T*p, 1))
q = np.random.uniform(-1,1,T)
sk = np.random.rand(T) 
constraints = [] 
s = 0 
for i in range(T*p): 
  s  = cvx.norm(alpha[i], 2)
constraints = [s <= 5] 
cost = 0
for t in range(T): 
  diff = q[t] - sk[t] 
  temp_sum = 0 
  for m in range(T): 
    for j in range(p): 
      temp_sum = alpha[j * T   m] * rbf(X[m][j], X[t][j], rbf_sigma) - y[t,0,:] 
  loss = cvx.huber(temp_sum, huber_sigma) 
  cost  = diff * loss

prob = cvx.Problem(cvx.Maximize(cost), constraints)
 

Я попробовал использовать dcp, но он показал, что «Проблема не соответствует правилам DCP». Я думаю, что это должно быть проблемой выпуклого программирования, поэтому я попробовал использовать dccp, но это дало мне проблему не dccp.

Как я должен решить эту проблему оптимизации?

Комментарии:

1. Не machine-learning вопрос, пожалуйста, не спамьте нерелевантные теги (удалены).