MCMC не умеет напрямую вытянуть число из сложного распределения. Вместо этого метод строит зависимую прогулку, которая достаточно долго живёт в нужных областях. Из локального правила перехода возникает глобальная статистика.

Когда плотность известна только с точностью до множителя

В байесовской задаче апостериорная плотность параметра θ\theta имеет вид

p(θD)=p(Dθ)p(θ)p(Du)p(u)du.p(\theta\mid D)= \frac{p(D\mid\theta)p(\theta)} {\int p(D\mid u)p(u)\,du}.

Числитель вычислить часто можно, а многомерный интеграл в знаменателе — нет. Обозначим ненормированную плотность

π~(θ)=p(Dθ)p(θ),π(θ)=π~(θ)Z.\widetilde\pi(\theta)=p(D\mid\theta)p(\theta), \qquad \pi(\theta)=\frac{\widetilde\pi(\theta)}{Z}.

Для ожидания I=Eπf(θ)I=\mathbb E_\pi f(\theta) нужны выборки из π\pi, но стандартный генератор требует нормированного распределения. MCMC обходит круг: строит цепь Маркова с заданным стационарным распределением π\pi и оценивает

I^N=1Nt=1Nf(θt).\widehat I_N=\frac1N\sum_{t=1}^N f(\theta_t).

Выборки θt\theta_t зависимы. Цена отказа от неизвестной константы ZZ — необходимость анализировать перемешивание цепи. Базовые свойства стационарности и переходов были введены в цепях Маркова, а теперь они становятся вычислительным инструментом.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Двухвершинная плотность, путь цепи Метрополиса и гистограмма её состояний
Рис. 67.1. Целевая плотность и зависимая траектория

Вверху показана ненормированная двухмодальная плотность π~(x)\widetilde\pi(x). В середине — первые 400 состояний цепи с редкими переходами между модами. Внизу гистограмма после прогрева сопоставлена с нормированной π\pi; совпадение маргинальных частот ещё не гарантирует хорошего перемешивания.

Баланс потоков

Пусть K(x,dy)K(x,dy) — переходное правило. Достаточное условие стационарности называется детальным балансом:

π(x)K(x,dy)=π(y)K(y,dx).\pi(x)K(x,dy)=\pi(y)K(y,dx).

Оно говорит, что в равновесии поток вероятности из xx в yy компенсируется обратным потоком. Если просуммировать по всем xx, входящий поток в yy станет равен π(y)\pi(y). Детальный баланс сильнее необходимого: существуют несимметричные цепи со стационарным π\pi, но обратимость удобно доказывать.

В дискретном случае это равенство потоков по каждой паре состояний. В непрерывном — равенство мер; плотности можно читать аналогично, помня про элементы объёма.

Алгоритм Метрополиса–Хастингса

Находясь в xx, предложим новую точку yq(yx)y\sim q(y\mid x). Примем её с вероятностью

a(x,y)=min(1,  π~(y)q(xy)π~(x)q(yx)).a(x,y)=\min\left( 1,\; \frac{\widetilde\pi(y)q(x\mid y)} {\widetilde\pi(x)q(y\mid x)} \right).

Если предложение отклонено, следующее состояние снова равно xx. Повторы обязательны: без них стационарное распределение изменится. Неизвестная константа ZZ сокращается в отношении.

Для симметричного случайного предложения q(yx)=q(xy)q(y\mid x)=q(x\mid y) остаётся

a(x,y)=min(1,π~(y)π~(x)).a(x,y)=\min\left(1,\frac{\widetilde\pi(y)}{\widetilde\pi(x)}\right).

Движение в область большей плотности принимается всегда, а вниз по плотности — иногда. Эти редкие спуски позволяют выйти из локального пика. Формула похожа на критерий в имитации отжига, однако цель MCMC — сохранить распределение, а не найти единственный максимум.

Масштаб предложения и цена корреляции

Рассмотрим random-walk Metropolis:

y=x+σε,εN(0,I).y=x+\sigma\varepsilon,\qquad \varepsilon\sim\mathcal N(0,I).

При слишком малом σ\sigma почти всё принимается, но цепь ползёт микроскопическими шагами. При слишком большом σ\sigma предложения падают в области ничтожной плотности и отклоняются; цепь снова почти стоит. Между крайностями есть рабочий масштаб, зависящий от размерности и геометрии π\pi.

Автокорреляция функции f(θt)f(\theta_t) на лаге kk:

ρk=Corr(f(θt),f(θt+k)).\rho_k=\operatorname{Corr}\bigl(f(\theta_t),f(\theta_{t+k})\bigr).

Интегрированное время автокорреляции

τint=1+2k1ρk\tau_{\mathrm{int}}=1+2\sum_{k\ge1}\rho_k

уменьшает эффективный размер выборки:

NeffNτint.N_{\mathrm{eff}}\approx\frac{N}{\tau_{\mathrm{int}}}.

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

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Трассы, доли принятия и автокорреляции цепей с малым, подходящим и большим шагом
Рис. 67.2. Три масштаба предложения

Столбцы соответствуют σ=0,05\sigma=0{,}05, 0,80{,}8 и 66. В каждой колонке показаны трасса, доля принятых предложений и ρk\rho_k. Малый шаг даёт высокую acceptance rate, большой — длинные повторы; средний быстрее разрушает корреляцию.

Лаборатория цепи

Предложение, acceptance rate и перемешивание

Загружается живая иллюстрация…

Выберите двухвершинную целевую плотность и запустите несколько цепей из левой моды, правой моды и промежутка. Меняйте ширину предложения. Записывайте долю принятия, число переходов между модами, среднее по каждой цепи и эффективный размер выборки.

Затем сделайте одну моду в десять раз уже другой. Настройка, удобная для широкой области, может пропускать узкую, а настройка для узкой будет медленно исследовать широкую. Визуализация показывает главную проблему: одной универсальной длины шага нет.

Прогрев, несколько цепей и диагностика

Начальный участок, пока цепь забывает старт, называют warm-up или burn-in. Просто удалить первые 10 процентов недостаточно: нужная длина зависит от переходов. Лучше запускать несколько цепей из разнесённых точек и сравнивать их.

Диагностика R^\widehat R сопоставляет разброс между цепями и внутри них. Значение около единицы — необходимый, но не достаточный признак. Цепи могут вместе застрять в одной моде. Нужны трассы, эффективный размер выборки, автокорреляции и проверки на искусственных данных, где ответ известен.

Thinning, то есть сохранение каждого kk-го состояния, обычно не создаёт информацию. Оно уменьшает файл, но выбрасывает вычисленные точки. Для оценки среднего выгоднее учитывать все состояния и корректно оценивать автокорреляцию.

Энергия, температура и многомодальность

Плотность часто записывают как

π(x)eE(x)/T.\pi(x)\propto e^{-E(x)/T}.

Энергия EE мала в вероятных состояниях, температура TT сглаживает рельеф. При низкой температуре пики узки, переходы между ними редки. Tempering-методы запускают цепи при разных температурах и обменивают состояния: горячая цепь пересекает барьеры, холодная сохраняет нужную цель.

Связь с физикой не декоративна. Формула Больцмана дала язык и для статистической механики, и для вероятностных алгоритмов. Позже похожая экспоненциальная нормировка появится в attention как softmax, хотя смысл переменных будет другим.

Реальный пример: байесовская логистическая модель

Возьмём открытый датасет UCI Heart Disease. Цель yi{0,1}y_i\in\{0,1\} обозначает наличие диагноза, признаки xix_i включают возраст, давление и лабораторные показатели. После стандартизации зададим

Pr(yi=1xi,β)=σ(xiβ),βjN(0,s2).\Pr(y_i=1\mid x_i,\beta)=\sigma(x_i^\top\beta), \qquad \beta_j\sim\mathcal N(0,s^2).

Логарифм ненормированного posterior:

logπ~(β)=i[yilogσ(xiβ)+(1yi)log(1σ(xiβ))]β22s2.\log\widetilde\pi(\beta) =\sum_i\left[ y_i\log\sigma(x_i^\top\beta) +(1-y_i)\log(1-\sigma(x_i^\top\beta)) \right] -\frac{\|\beta\|^2}{2s^2}.

Random-walk Metropolis можно реализовать в нескольких строках, но коррелированные признаки создают вытянутую геометрию posterior. Одинаковый шаг по всем координатам работает плохо. Масштабирование признаков и предложение с ковариацией, приближённой к posterior, резко улучшают перемешивание.

Не превращайте коэффициент в медицинский вывод: набор собран в нескольких клиниках, содержит пропуски и не является случайной выборкой населения. Здесь он служит для изучения вычисления неопределённости, а не диагностики.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Контуры апостериорной плотности двух коэффициентов и траектории изотропного и адаптированного MCMC
Рис. 67.3. Коррелированный posterior логистической модели

Контуры показывают вытянутую совместную плотность двух коэффициентов. Красная цепь с изотропным предложением движется поперёк узкой долины и часто отклоняется; синяя использует ориентированную ковариацию. Рядом указаны NeffN_{\mathrm{eff}} для обоих коэффициентов при одинаковом числе вычислений.

Мини-исследование: проверить MCMC на задаче с известным ответом

Перед сложным posterior полезно устроить калибровочный стенд. Возьмите двумерную normal target с известными средним (0,0)(0,0) и covariance

Σ=(10,950,951).\Sigma= \begin{pmatrix} 1&0{,}95\\ 0{,}95&1 \end{pmatrix}.

Запустите random-walk Metropolis с изотропным предложением и с предложением, covariance которого пропорциональна Σ\Sigma. Для каждого варианта используйте четыре разнесённых старта и одинаковое число вычислений π~\widetilde\pi. Сопоставьте acceptance rate, ошибку среднего, covariance и NeffN_{\mathrm{eff}} по направлениям (1,1)(1,1) и (1,1)(1,-1).

Узкое направление (1,1)(1,-1) и длинное (1,1)(1,1) имеют разные масштабы. Изотропный шаг, подходящий первому, медленно движется вдоль второго; шаг для длинного направления часто вылетает поперёк. Ориентированное предложение учитывает геометрию. Если диагностика не обнаруживает эту разницу на известной цели, ей рано доверять в реальной модели.

Повторите опыт после линейного whitening-преобразования u=Σ1/2xu=\Sigma^{-1/2}x. В uu-координатах target сферична, и простой шаг должен работать лучше. Это вычислительная версия стандартизации признаков из линейных моделей: смена координат не меняет вероятностный вопрос, но меняет трудность прогулки.

Для каждой оценки среднего постройте Monte Carlo standard error

MCSE(fˉ)Var^(f)/Neff.\operatorname{MCSE}(\bar f) \approx\sqrt{\widehat{\operatorname{Var}}(f)/N_{\mathrm{eff}}}.

Проверьте coverage: в каком проценте независимых запусков интервал fˉ±1,96MCSE\bar f\pm1{,}96\,\mathrm{MCSE} содержит известное истинное значение. Диагностика становится проверяемой процедурой, а не набором красивых trace plots.

Три слоя успешной цепи

Успешная MCMC-работа состоит из трёх слоёв. Математика гарантирует нужное стационарное распределение; вычислительная диагностика проверяет, исследовала ли цепь его существенные области; предметная проверка спрашивает, осмысленна ли сама вероятностная модель. Доля принятия относится только ко второму слою и не может заменить остальные.

Следующий урок о взломе шифра применит ту же механику к необычному пространству состояний — перестановкам букв. Там у цепи нет координат в привычном смысле, зато есть локальные обмены и языковая «энергия».

Задачи