Как оптимизировать неотрицательные ограничения с помощью градиентного спуска

У меня есть оптимизация в следующем виде,

argmin_W f (Вт) s.t. W_i> 0, для всех i

где W - вектор, а f (W) - функция от W. Я знаю, как оптимизировать без неотрицательных ограничений. Но я не уверен, как оптимизировать это с помощью градиентного спуска.


person user570593    schedule 07.08.2015    source источник


Ответы (2)


Оптимизация на открытом множестве довольно сложна, поэтому предположим, что W_i >= 0, следовательно, вы можете использовать множество методов:

  • оптимизировать f (| W |) во всей области
  • используйте GD для f (W), но после каждой итерации проецируйте свое решение обратно в домен, поэтому положите W = | W |
  • использовать методы оптимизации с ограничениями, такие как L-BFGS-B
person lejlot    schedule 07.08.2015

Я не думаю, что есть общий и простой способ сделать это. Вам нужно будет выполнить какой-то поиск в каждой точке, чтобы убедиться, что ограничения соблюдены (такие методы, как поиск по строке, зоны доверия).

Или, возможно, у f есть какая-то структура, которую вы можете использовать.

person Mochan    schedule 07.08.2015