2015-08-07 7 views
0

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

argmin_W п (Ш) S.T. W_i> 0, для всех i

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

ответ

1

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

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

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

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