Когда использовать градиентный спуск против Монте-Карло в качестве метода численной оптимизации

11

Когда набор уравнений не может быть решен аналитически, тогда мы можем использовать алгоритм градиентного спуска. Но, похоже, существует также метод моделирования Монте-Карло, который можно использовать для решения задач, которые не имеют аналитических решений.

Как определить, когда использовать градиентный спуск, а когда - Монте-Карло? Или я просто путаю термин «симуляция» с «оптимизацией»?

Большое спасибо!

Виктор
источник

Ответы:

4

Эти техники делают разные вещи.

Градиентный спуск - это метод оптимизации, поэтому он распространен в любом статистическом методе, который требует максимизации (MLE, MAP).

Симуляция Монте-Карло предназначена для вычисления интегралов путем выборки из распределения и оценки некоторой функции на выборках. Поэтому он обычно используется с методами, которые требуют вычисления ожиданий (Байесовский вывод, Байесовский тест гипотез).

jlimahaverford
источник
Таким образом, градиентный спуск связан с дифференциацией (максимумы, минимумы), а Монте-Карло связан с интеграцией?
Виктор,
Градиент является (одним из многих) обобщением производной. Таким образом, градиентный спуск связан с дифференциацией. Но я бы сказал: «Градиентный спуск использует производные для оптимизации» и «Монте-Карло использует выборку для интеграции», если бы мне пришлось использовать как можно меньше слов.
Jlimahaverford
4

Это огромное семейство алгоритмов, поэтому сложно дать вам точный ответ, но ...

Градиентное восхождение (или спуск) полезно, когда вы хотите найти максимум (или минимум). Например, вы можете найти режим распределения вероятностей или комбинацию параметров, которые минимизируют некоторую функцию потерь. «Путь», необходимый для нахождения этих экстремумов, может немного рассказать вам об общей форме функции, но она не предназначена; на самом деле, чем лучше это работает, тем меньше вы будете знать обо всем, кроме крайностей.

Методы Монте-Карло названы в честь казино Монте-Карло, потому что они, как и казино, зависят от рандомизации. Его можно использовать по-разному, но большинство из них сосредоточены на приближенных распределениях. Например, алгоритмы Марковской цепочки Монте-Карло находят способы эффективной выборки из сложных распределений вероятностей. Другие моделирования Монте-Карло могут генерировать распределения по возможным результатам.

Мэтт Краузе
источник
«Методы Монте-Карло» обычно относятся к тому, что вы делаете с образцами, а не к методам получения образцов. В MCMC «Марковская цепь» относится к процессу получения образцов.
jlimahaverford
В самом деле? Я всегда думал, что Монте-Карло подразумевает, что происходит какая-то рандомизация, и это не значит намного больше. В MCMC это правда, что Марковские цепочки участвуют, но вы также делаете выборку случайным образом из цепочек (отсюда. Монте-Карло) /
Мэтт Краузе,
Возможно, это вопрос мнения. Если бы я использовал MCMC для аппроксимации среднего апостериорного распределения, я бы использовал случайные блуждания по цепочке Маркова для приблизительной выборки из моего ненормализованного распределения, я бы использовал интеграцию Монте-Карло для аппроксимации среднего. Я рассматриваю методы выборки как инструменты, которые обеспечивают методы Монте-Карло. Например, я бы не назвал выборку отклонения методом Монте-Карло, но я могу представить, чтобы кто-то использовал их вместе.
jlimahaverford
Несмотря на все сказанное, Википедия рассматривает выборку отклонения методом Монте-Карло. Так что вполне возможно, что мои идеи здесь совершенно неверны.
Jlimahaverford
2

Как объяснили другие, градиентный спуск / подъем выполняет оптимизацию, то есть находит максимум или минимум функции. Монте-Карло является методом стохастического моделирования, то есть аппроксимирует кумулятивную функцию распределения посредством многократной случайной выборки. Это также называется «интеграцией Монте-Карло», потому что cdf непрерывного распределения на самом деле является интегралом.

Что общего между градиентным спуском и Монте-Карло, так это то, что они оба особенно полезны в задачах, где не существует закрытого решения. Вы можете использовать простое дифференцирование, чтобы найти максимальную или минимальную точку любой выпуклой функции всякий раз, когда аналитическое решение выполнимо. Когда такого решения не существует, вам нужно использовать итерационный метод, такой как градиентный спуск. То же самое для моделирования Монте-Карло; Вы можете в основном использовать простую интеграцию для аналитического вычисления любого cdf, но нет гарантии, что такое решение в закрытой форме всегда будет возможно. Проблема становится снова решаемой с помощью симуляции Монте-Карло.

Можете ли вы использовать градиентный спуск для моделирования и Монте-Карло для оптимизации? Простой ответ - нет. Монте-Карло нужен случайный элемент (распределение) для выборки, а градиентное спуск не имеет средств для решения стохастических информационных проблем. Однако вы можете комбинировать моделирование с оптимизацией, чтобы создавать более мощные алгоритмы стохастической оптимизации, которые способны решать очень сложные задачи, которые не может решить простой градиентный спуск. Примером этого может служить имитация отжига Монте-Карло.

Digio
источник
2

Этот ответ частично неверен. Вы действительно можете комбинировать методы Монте-Карло с градиентным спуском. Вы можете использовать методы Монте-Карло для оценки градиента функции потерь, который затем используется градиентным спуском для обновления параметров. Популярным методом Монте-Карло для оценки градиента является оценщик градиента баллов , который может, например, использоваться в обучении с подкреплением. См. Оценку градиента Монте-Карло в машинном обучении (2019) Shakir Mohamed et al. для получения дополнительной информации.

nbro
источник