Я работаю над исследовательским проектом, который связан с оптимизацией, и недавно у меня появилась идея использовать MCMC в этих условиях. К сожалению, я довольно плохо знаком с методами MCMC, поэтому у меня было несколько вопросов. Я начну с описания проблемы, а затем задам свои вопросы.
Наша проблема сводится к оценке ожидаемого значения функции стоимости где является мерной случайной величиной с плотностью ,
В нашем случае закрытая версия не существует. Это означает, что мы должны использовать методы Монте-Карло, чтобы приблизить ожидаемое значение. К сожалению, оказывается, что оценки , которые генерируются с использованием методов MC или QMC, имеют слишком большое отклонение, чтобы быть полезными в практических условиях.
Одна идея, что нам нужно было использовать распределение выборки по важности для генерации точек выборки, которые приведут к низкой оценке дисперсии . В нашем случае распределение выборки с идеальной важностью, , должно быть приблизительно пропорционально . Видя, как известен с точностью до константы, мне интересно, могу ли я использовать MCMC вместе с распределением предложений чтобы в конечном итоге генерировать выборки из .
Мои вопросы здесь:
Можно ли использовать MCMC в этой настройке? Если да, какой метод MCMC будет уместным? Я работаю в MATLAB, поэтому я предпочитаю все, что уже имеет реализацию MATLAB.
Существуют ли какие-либо методы, которые я могу использовать для ускорения периода выгорания MCMC. И как я могу сказать, что стационарное распределение было достигнуто? В этом случае фактически требуется немало времени для вычисления для данного .ω
источник
Ответы:
Я бы всегда помнил, что MCMC - это просто инструмент числовой интеграции (причем довольно неэффективный). Это не какая-то волшебная / мистическая вещь. Это очень полезно, потому что его достаточно легко наносить. Это не требует много размышлений по сравнению с некоторыми другими методами численного интегрирования. Например, вам не нужно делать какие-либо производные. Вам нужно только генерировать «случайные числа».
Однако, как и любой метод численного интегрирования, он не является универсальным инструментом для охвата всего. Есть условия, когда это полезно, и условия, когда это не так.
Может быть, разумнее установить другую технику. В зависимости от того, насколько большой , и как быстро ваш компьютер, и сколько времени вы готовы ждать результатов. Равномерная сетка может сделать работу (хотя это требует небольшого количества или большого количества времени ожидания). «Работа» заключается в оценке интеграла - уравнение не заботится о том, какое значение вы или я придаете результату (и, следовательно, не волнует, получили ли мы результат случайно или нет).чh h
Кроме того, если ваши оценки достаточно точны, то будет резко пиковым и будет напоминать дельта-функцию, поэтому интеграл эффективно подставляет .фω ш → ш т хf(ω) ω→ωmax
Другой метод численного интегрирования использует ряд Тейлора под интегралом.f(ω)≈f(ωmax)+(ω−ωmax)f′(ωmax)+12(ω−ωmax)2f′′(ωmax)+…
Это полезная стратегия, когда моменты легко получить.ω
У Эдвина Джейнса есть хорошая цитата:
всякий раз, когда есть случайный способ сделать что-то, есть нерандомизированный способ, который дает лучшие результаты, но требует больше обдумывания
Один из способов «более размышления» - использовать «многослойный MCMC» для создания интеграла. Таким образом, вместо того, чтобы «случайно» выбрать место на всем пространстве параметров: разделите его на «страты». Эти «страты» должны быть выбраны так, чтобы вы получили хороший диапазон верхней части интеграла. Затем случайная выборка внутри каждой страты. Но это потребует от вас написания собственного кода, который я себе представляю (т. Е. Больше размышлений).
источник
Нет никаких признаков того, что ваши переменные здесь коррелируют, поэтому я не знаю, почему вы бы использовали MCMC, а не обычный Монте-Карло. Существует много различных методов выборки, включая упомянутую стратифицированную выборку (латинский гиперкуб) и QMC. Методы разреженной квадратуры очень хороши, если размер задачи не слишком велик (не более 10), поскольку разреженные квадратурные сетки растут геометрически (проклятие размерности).
Но, похоже, вы на правильном пути в отношении важности выборки. Ключевым моментом здесь является выбор смещенного распределения, которое с большой вероятностью сконцентрировано вблизи интересующей вас области и имеет более толстые хвосты, чем номинальное распределение.
Я хотел бы добавить, что это открытая исследовательская проблема, поэтому, если вы сможете придумать что-то хорошее, это будет очень интересно для сообщества!
источник
Поскольку никто, казалось, на самом деле не ответил прямо на вопрос: да, вы можете использовать MCMC для выборки из . MCMC может быть использован для выборки из любого распределения, где распределение известно только до постоянной пропорциональности.g(ω)
Кроме того, вы можете посмотреть методы уменьшения дисперсии в области интеграции MC. Большой автономный набор ресурсов - бесплатные главы книг, доступные от Art Owen в Stanford. В частности, главы 8, 9 и 10.
Там вы найдете подробное описание адаптивной выборки, рекурсии и других методов.
источник