Я пытаюсь найти min функции из N параметров с помощью градиентного спуска. Однако я хочу сделать это, ограничив суммой абсолютных значений параметров 1 (или <= 1, не имеет значения). По этой причине я использую метод множителей lagrange, поэтому, если моя функция f (x), я минимизирую f (x) + lambda * (g (x) -1), где g (x) является гладким приближением для сумма абсолютных значений параметров.
Теперь, как я понимаю, градиент этой функции будет равен только 0, когда g (x) = 1, так что метод поиска локального минимума должен найти минимум моей функции, в которой мое условие также выполняется. Проблема заключается в том, что это добавление моей функции неограниченно, так что Gradient Descent просто находит большие и большие лямбды с большими и большими параметрами (по абсолютной величине) и никогда не сходится.
В настоящий момент я использую реализацию CG для python (scipy), поэтому я бы предпочел предложения, которые не требуют от меня переписывать/настраивать сам CG-код, но использовать существующий метод.