Когда набор уравнений не может быть решен аналитически, тогда мы можем использовать алгоритм градиентного спуска. Но, похоже, существует также метод моделирования Монте-Карло, который можно использовать для решения задач, которые не имеют аналитических решений.
Как определить, когда использовать градиентный спуск, а когда - Монте-Карло? Или я просто путаю термин «симуляция» с «оптимизацией»?
Большое спасибо!
источник
Это огромное семейство алгоритмов, поэтому сложно дать вам точный ответ, но ...
Градиентное восхождение (или спуск) полезно, когда вы хотите найти максимум (или минимум). Например, вы можете найти режим распределения вероятностей или комбинацию параметров, которые минимизируют некоторую функцию потерь. «Путь», необходимый для нахождения этих экстремумов, может немного рассказать вам об общей форме функции, но она не предназначена; на самом деле, чем лучше это работает, тем меньше вы будете знать обо всем, кроме крайностей.
Методы Монте-Карло названы в честь казино Монте-Карло, потому что они, как и казино, зависят от рандомизации. Его можно использовать по-разному, но большинство из них сосредоточены на приближенных распределениях. Например, алгоритмы Марковской цепочки Монте-Карло находят способы эффективной выборки из сложных распределений вероятностей. Другие моделирования Монте-Карло могут генерировать распределения по возможным результатам.
источник
Как объяснили другие, градиентный спуск / подъем выполняет оптимизацию, то есть находит максимум или минимум функции. Монте-Карло является методом стохастического моделирования, то есть аппроксимирует кумулятивную функцию распределения посредством многократной случайной выборки. Это также называется «интеграцией Монте-Карло», потому что cdf непрерывного распределения на самом деле является интегралом.
Что общего между градиентным спуском и Монте-Карло, так это то, что они оба особенно полезны в задачах, где не существует закрытого решения. Вы можете использовать простое дифференцирование, чтобы найти максимальную или минимальную точку любой выпуклой функции всякий раз, когда аналитическое решение выполнимо. Когда такого решения не существует, вам нужно использовать итерационный метод, такой как градиентный спуск. То же самое для моделирования Монте-Карло; Вы можете в основном использовать простую интеграцию для аналитического вычисления любого cdf, но нет гарантии, что такое решение в закрытой форме всегда будет возможно. Проблема становится снова решаемой с помощью симуляции Монте-Карло.
Можете ли вы использовать градиентный спуск для моделирования и Монте-Карло для оптимизации? Простой ответ - нет. Монте-Карло нужен случайный элемент (распределение) для выборки, а градиентное спуск не имеет средств для решения стохастических информационных проблем. Однако вы можете комбинировать моделирование с оптимизацией, чтобы создавать более мощные алгоритмы стохастической оптимизации, которые способны решать очень сложные задачи, которые не может решить простой градиентный спуск. Примером этого может служить имитация отжига Монте-Карло.
источник
Этот ответ частично неверен. Вы действительно можете комбинировать методы Монте-Карло с градиентным спуском. Вы можете использовать методы Монте-Карло для оценки градиента функции потерь, который затем используется градиентным спуском для обновления параметров. Популярным методом Монте-Карло для оценки градиента является оценщик градиента баллов , который может, например, использоваться в обучении с подкреплением. См. Оценку градиента Монте-Карло в машинном обучении (2019) Shakir Mohamed et al. для получения дополнительной информации.
источник