Я использую cvxpy (1.0.11) для решения задачи выпуклой оптимизации.
Моя выпуклая проблема помечена как невыпуклая, я думаю, потому что она не знает, что параметр alpha
ограничен между [0, 1].
Я знаю, что из этой строки не получается ...
loss = mse + (1-alpha) * lam * (penalty_1 + penalty_2) + alpha * lam * penalty_3
пока эта строка преуспевает ...
loss = mse + lam * (penalty_1 + penalty_2) + lam * penalty_3
Сейчас гиперпараметры параметризованы таким образом. Если есть способ связать их, я не нашел его нигде в API
alpha = cvx.Parameter(nonneg=True)
alpha.value = 0.5
lam = cvx.Parameter(nonneg=True)
lam.value = 10**(2)
Как мне сказать cvxpy
, что альфа - это число между [0, 1]?