В чем разница между оптимизацией линейного программирования и оптимизацией градиентного спуска?

#math #statistics

#математика #Статистика

Вопрос:

В задаче линейного программирования мы формулируем две линейные функции и функцию оптимизации. где мы находим точки, где две линейные функции пересекаются, и подставляем эти значения в функцию оптимизации, чтобы получить max или min.

Чем это отличается от приличной градиентной оптимизации. Кто-нибудь может уточнить это математически. Достигают ли оба метода глобального максимума или минимума? что лучше?

Ответ №1:

  • линейное программирование находит веса, которые оптимизируют эту линейную комбинацию. это гарантированно работает, но работает только для функций, которые являются линейными комбинациями
  • градиентный спуск может работать с любой функцией, если вы знаете ее производную. Однако гарантированно работает только в том случае, если функция выпуклая. В противном случае он застрянет на локальном оптимуме

Итак, выбора действительно нет. Если у вас линейная комбинация, линейное программирование лучше. В любом другом случае градиентный спуск — ваш единственный вариант.

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

1. Существует ли какой-либо другой метод оптимизации, кроме того, который я упомянул.

2. @user10573543: зависит от проблемы. однако в большинстве задач используются варианты градиентного спуска. не существует общих методов оптимизации, которые гарантированно работают. это одна из самых больших проблем во всей инженерии