Проблема: Розподіли, Які Можна Оцінити, Але Не Нормалізувати
У баєсівській статистиці, фізиці та машинному навчанні ви часто знаєте розподіл цільової функції лише як ненормалізовану функцію. Правило Бессі дає нам уявлення про апостеріорний розподіл як P(x) = f(x)/Z, де f(x) = ймовірність(x) * попередній(x) легко обчислюється для будь-якої окремої точки x, але нормалізуючий константа Z = ∫ f(x) dx вимагає інтегрування по всіх можливих значеннях x. У одній розмірності цей інтеграл може бути керованим; у сто або тисяч розмірах, типових для реальної моделі, це стає безглуздим сумою над астрономічно великим простором. Погірше, навіть якщо ви знали Z, ви все ще не могли легко отримати випадкові зразки з дивної форми розподілу високих розмірів за допомогою звичайних методів, таких як зворотне семплювання перетворення, яке потребує повної кумулятивної функції в закритому вигляді. MCMC одночасно обходить обидві проблеми: потрібно лише співвідношення f(x')/f(x) між двома точками для визначення того, як рухатися, тому нездійснену константу Z скасовують до того, як вона коли-небудь викликає проблеми, і це ніколи не вимагає інтегрування або нормалізації будь-чого глобально.
Випадковий шлях, який запам'ятовує, де він повинен бути
Марківська ланцюгова модель — це послідовність випадкових станів x0, x1, x2,... , де кожен наступний стан залежить лише від поточного, а не від всієї історії — безпам'ятний випадковий шлях, визначений правилом переходу T(x → x'). Ключовою технікою MCMC є проектування цього правила переходу так, щоб ланцюг мав унікальний стаціонарний розподіл, рівний цільовому P(x): коли ланцюг достатньо довго працює, частка часу, яку він проводить біля будь-якої точки x, збігається з P(x), незалежно від того, звідки він почав. Розподіл π є стаціонарним для ланцюга, якщо, після розподілу станів ланцюга відповідно до π, один крок не змінює розподіл: π(x') = ∑x π(x) T(x → x'). Уся техніка проектування алгоритму MCMC полягає у виборі правила переходу T, яке легко моделювати крок за кроком, але доведено, що воно має цільовий P як стаціонарний розподіл.
Алгоритм Ме́ттеса-Хастингса
Алгоритм Ме́ттеса-Хастингса строит такой переходный закон из двух простых ингредиентов, которые повторяются снова и снова. Во-первых, из текущего состояния x предлагается распределение Q(x'|x) — часто просто x плюс небольшая случайная дробина, как шаг в случайном направлении. Во-вторых, кандидат принимается или отклоняется согласно вероятности принятия: A = min(1, [P(x')Q(x|x')] / [P(x)Q(x'|x)]). Если распределение Q симметрично, то есть Q(x'|x) = Q(x|x'), (как с простой гауссовой дриблем), то эти термины отменяются и это сводится к исходному правилу Ме́ттеса: A = min(1, P(x')/P(x)). Поскольку P появляется только как отношение, его можно заменить ненормализованным f в его месте: A = min(1, f(x')/f(x)), и Z исчезает полностью. На практике это означает: предлагать ход; если он ведет к более высокой вероятности, всегда принимать его; если он ведет к меньшей вероятности, принимать его все равно с вероятностью равной отношению вероятностей, в противном случае оставаться на месте и снова считать текущее состояние. Это готовность иногда принимать худший ход является тем, что позволяет цепи вырваться из локальных гребней и исследовать весь ландшафт, а не жадно подниматься к ближайшему пику.
Чому детальний баланс гарантує правильність
Причина, по якій алгоритм Metropolis-Hastings гарантовано збігається до потрібного розподілу, а не якогось випадкового, що визначається механізмом пропозиції, називається детальною рівновагою (або зворотністю): P(x) T(x → x') = P(x') T(x' → x). Це означає, що потік ймовірності з x до x' точно балансує потік назад з x' до x для будь-якої пари станів. Правило прийняття A = min(1, [P(x')Q(x|x')]/[P(x)Q(x'|x)]) побудоване саме так, щоб сукупний перехід «пропонуй-і-приймай» задовольняв детальній рівновазі з конструкцією — це не наближення чи евристика, а рецепт, що доводиться міркуванням. Це відрізняє MCMC від наївного випадкового ходу: алгоритм не просто розумно блукає, він блукає математично підтвердженим способом, який повинен збігатися до цільового розподілу зі збільшенням кількості кроків.
Прогорка, змішування та реальні застосування
Збіг у теорії не означає миттєвий збіг на практиці. Початкові зразки спотворені там, де саме відбулося формування ланцюга, тому практики відкидають початковий проміжок, який називається «прогоркою», перш ніж довіряти зразкам. Декількі послідовних зразків також корельовані, оскільки кожен стан побудовано з попереднього за допомогою невеликого кроку, властивість, яка називається автокореляцією; ланцюг із високою автокореляцією вважається, що він повільно змішується, марнує зусилля, відвідуючи близькі стани замість широкого дослідження, і часто потребує тонкого налаштування (утримання лише кожного k-го зразка) або кращого підібраного кроку прийнятності для виправлення. Якщо крок занадто малий, майже кожен рух приймається, але ланцюг повільно рухається; якщо крок занадто великий, майже кожен рух відхиляється і ланцюг застрягає на місці — налаштування швидкості прийняття, часто орієнтованого на 20-50%, є основним практичним навичкою. Незважаючи на ці застереження, методи MCMC лежать в основі величезної кількості реальних робіт: висновок Байєса використовує їх для семплювання розподілів заднього плану над параметрами моделі, які не мають аналітичного розв’язку; статистична фізика використовує оригінальний алгоритм Metropolis для моделювання систем, таких як модель Ізинга при тепловій рівновазі; а навчання обмежених випадкових нейронних мереж (RBM) у машинному навчанні покладається на методи MCMC-засновані, такі як контрастивна дивергенція, для наближення нездійсненних очікувань, необхідних для навчання.
Часті запитання
Чому ми не можемо просто нормалізувати розподіл і відразу брати зразки?
Нормалізація потребує обчислення Z, інтеграла (або суми) по всьому простору станів, що у високих вимірах не має аналітичного розв’язку і є обчислювально неможливим для прямого наближення силою. MCMC повністю цього уникає, оскільки його правило прийняття завжди потребує лише відношення f(x')/f(x) між двома точками, отже невідомий константний Z скасовується і ніколи не потрібно обчислювати.
Що відбувається, якщо розподіл пропозицій погано відповідає цільовому?
Цей ланцюг все ж таки збігається до правильного стаціонарного розподілу, оскільки правило детальної рівноваги дійсне для будь-якого допустимого розподілу пропозицій, але погано підходящий розподіл робить збіжність болюсно повільною. Кроки, які занадто великі, постійно відхиляються, а кроки, які занадто малі, майже не рухають ланцюг, тому в обох випадках потрібно набагато більше ітерацій, щоб належним чином дослідити розподіл і отримати надійні зразки.
Як ви дізнаєтесь, коли марковський ланцюг зійшовся?
Немає ідеального тесту, але типові діагностичні методи включають запуск кількох незалежних ланцюгів із різних початкових точок та перевірку їхньої узгодженості (наприклад, використовуючи статистику Геллмана-Рубіна), візуальну інспекцію трас для оцінки стабільності та моніторинг автокореляції, щоб переконатися, що зразки все ще не систематично відхиляються. У практиці більшість робочих процесів поєднують кілька діагностичних методів замість того, щоб довіряти будь-якому з них.
Чи є Metropolis-Hastings єдиним алгоритмом MCMC?
Ні. Це фундаментальна, найуніверсальніша версія, але існують багато спеціалізованих варіантів, включаючи семплювання Ґіббса (яке оновлює одну змінну за її повною умовній розподіл), гамільтонівське Монте-Карло (яке використовує градієнтну інформацію для ефективного пропонування віддалених, високоприйнятних рухів) та семплювання слайсами. Усі вони, власне, побудовані на одній і тій самій основі – ідеї детальної рівноваги.
Чи означає вищий коефіцієнт прийняття краще зразок?
Не обов’язково. Дуже високий коефіцієнт прийняття часто означає, що кроки пропозиції занадто малі, тому ланцюг приймає майже все, але майже нікуди не рухається, що призводить до повільного дослідження, незважаючи на те, що це виглядає ефективно на папері. Саме тому практикам прагнути до помірного цільового коефіцієнта прийняття замість максимізації його, збалансувавши відстань, на яку подорожує кожен крок, проти того, як часто він успішно завершується.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Markov Chain Monte Carlo: Sampling from Distributions You Can't Compute і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Markov Chain Monte Carlo: Sampling from Distributions You Can't Compute