Можно ли ускорить обучение модели байесовских структурных временных рядов (BSTS), разделив рабочую нагрузку на несколько ядер процессора? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь ускорить обучение модели BSTS, как описано в заголовке вопроса.Это возможно?Если да, то как бы это реализовать?Итерации mcmc независимы, верно?

1 Ответ

0 голосов
/ 29 июня 2019

Цепь Маркова в MC MC по определению является последовательной цепочкой , где текущая выборка определяет распределение вероятностей последующих выборочных предложений. Таким образом, хотя результирующие выборки асимптотически независимы, в реализации они не являются. В классических методах (например, Метрополис-Гастингс) это одна из причин, по которой проверка автокорреляций является важной диагностикой, и можно использовать прореживание для получения декоррелированных образцов. Современные методы менее склонны к этому, поэтому, как правило, практикующим врачам не нужно разжижать, например, образцы HMC, но проверка автокорреляций все еще является хорошей практикой.

Несмотря на это ограничение, есть некоторые компоненты стратегий семплирования MCMC, которые могут быть распараллелены, такие как параллельное выполнение нескольких цепочек - большинство сэмплеров, таких как PyMC3 и Stan, имеют эту встроенную функцию. Также для методов, которые требуют вычисления информации о градиенте (например, HMC / NUTS), линейная алгебра может быть распараллелена. Стэн добавил такое распараллеливание к своим математическим библиотекам начиная с v2.18 ( документация ), но в настоящее время считается экспериментальным, пока Стэн v3.

...