MCMC не умеет напрямую вытянуть число из сложного распределения. Вместо этого метод строит зависимую прогулку, которая достаточно долго живёт в нужных областях. Из локального правила перехода возникает глобальная статистика.
Когда плотность известна только с точностью до множителя
В байесовской задаче апостериорная плотность параметра имеет вид
Числитель вычислить часто можно, а многомерный интеграл в знаменателе — нет. Обозначим ненормированную плотность
Для ожидания нужны выборки из , но стандартный генератор требует нормированного распределения. MCMC обходит круг: строит цепь Маркова с заданным стационарным распределением и оценивает
Выборки зависимы. Цена отказа от неизвестной константы — необходимость анализировать перемешивание цепи. Базовые свойства стационарности и переходов были введены в цепях Маркова, а теперь они становятся вычислительным инструментом.
Вверху показана ненормированная двухмодальная плотность . В середине — первые 400 состояний цепи с редкими переходами между модами. Внизу гистограмма после прогрева сопоставлена с нормированной ; совпадение маргинальных частот ещё не гарантирует хорошего перемешивания.
Баланс потоков
Пусть — переходное правило. Достаточное условие стационарности называется детальным балансом:
Оно говорит, что в равновесии поток вероятности из в компенсируется обратным потоком. Если просуммировать по всем , входящий поток в станет равен . Детальный баланс сильнее необходимого: существуют несимметричные цепи со стационарным , но обратимость удобно доказывать.
В дискретном случае это равенство потоков по каждой паре состояний. В непрерывном — равенство мер; плотности можно читать аналогично, помня про элементы объёма.
Алгоритм Метрополиса–Хастингса
Находясь в , предложим новую точку . Примем её с вероятностью
Если предложение отклонено, следующее состояние снова равно . Повторы обязательны: без них стационарное распределение изменится. Неизвестная константа сокращается в отношении.
Для симметричного случайного предложения остаётся
Движение в область большей плотности принимается всегда, а вниз по плотности — иногда. Эти редкие спуски позволяют выйти из локального пика. Формула похожа на критерий в имитации отжига, однако цель MCMC — сохранить распределение, а не найти единственный максимум.
Масштаб предложения и цена корреляции
Рассмотрим random-walk Metropolis:
При слишком малом почти всё принимается, но цепь ползёт микроскопическими шагами. При слишком большом предложения падают в области ничтожной плотности и отклоняются; цепь снова почти стоит. Между крайностями есть рабочий масштаб, зависящий от размерности и геометрии .
Автокорреляция функции на лаге :
Интегрированное время автокорреляции
уменьшает эффективный размер выборки:
Сто тысяч сильно зависимых состояний могут содержать информацию лишь как несколько сотен независимых наблюдений. Поэтому сравнивать методы по длине файла бессмысленно.
Столбцы соответствуют , и . В каждой колонке показаны трасса, доля принятых предложений и . Малый шаг даёт высокую acceptance rate, большой — длинные повторы; средний быстрее разрушает корреляцию.
Лаборатория цепи
Выберите двухвершинную целевую плотность и запустите несколько цепей из левой моды, правой моды и промежутка. Меняйте ширину предложения. Записывайте долю принятия, число переходов между модами, среднее по каждой цепи и эффективный размер выборки.
Затем сделайте одну моду в десять раз уже другой. Настройка, удобная для широкой области, может пропускать узкую, а настройка для узкой будет медленно исследовать широкую. Визуализация показывает главную проблему: одной универсальной длины шага нет.
Прогрев, несколько цепей и диагностика
Начальный участок, пока цепь забывает старт, называют warm-up или burn-in. Просто удалить первые 10 процентов недостаточно: нужная длина зависит от переходов. Лучше запускать несколько цепей из разнесённых точек и сравнивать их.
Диагностика сопоставляет разброс между цепями и внутри них. Значение около единицы — необходимый, но не достаточный признак. Цепи могут вместе застрять в одной моде. Нужны трассы, эффективный размер выборки, автокорреляции и проверки на искусственных данных, где ответ известен.
Thinning, то есть сохранение каждого -го состояния, обычно не создаёт информацию. Оно уменьшает файл, но выбрасывает вычисленные точки. Для оценки среднего выгоднее учитывать все состояния и корректно оценивать автокорреляцию.
Энергия, температура и многомодальность
Плотность часто записывают как
Энергия мала в вероятных состояниях, температура сглаживает рельеф. При низкой температуре пики узки, переходы между ними редки. Tempering-методы запускают цепи при разных температурах и обменивают состояния: горячая цепь пересекает барьеры, холодная сохраняет нужную цель.
Связь с физикой не декоративна. Формула Больцмана дала язык и для статистической механики, и для вероятностных алгоритмов. Позже похожая экспоненциальная нормировка появится в attention как softmax, хотя смысл переменных будет другим.
Реальный пример: байесовская логистическая модель
Возьмём открытый датасет UCI Heart Disease. Цель обозначает наличие диагноза, признаки включают возраст, давление и лабораторные показатели. После стандартизации зададим
Логарифм ненормированного posterior:
Random-walk Metropolis можно реализовать в нескольких строках, но коррелированные признаки создают вытянутую геометрию posterior. Одинаковый шаг по всем координатам работает плохо. Масштабирование признаков и предложение с ковариацией, приближённой к posterior, резко улучшают перемешивание.
Не превращайте коэффициент в медицинский вывод: набор собран в нескольких клиниках, содержит пропуски и не является случайной выборкой населения. Здесь он служит для изучения вычисления неопределённости, а не диагностики.
Контуры показывают вытянутую совместную плотность двух коэффициентов. Красная цепь с изотропным предложением движется поперёк узкой долины и часто отклоняется; синяя использует ориентированную ковариацию. Рядом указаны для обоих коэффициентов при одинаковом числе вычислений.
Мини-исследование: проверить MCMC на задаче с известным ответом
Перед сложным posterior полезно устроить калибровочный стенд. Возьмите двумерную normal target с известными средним и covariance
Запустите random-walk Metropolis с изотропным предложением и с предложением, covariance которого пропорциональна . Для каждого варианта используйте четыре разнесённых старта и одинаковое число вычислений . Сопоставьте acceptance rate, ошибку среднего, covariance и по направлениям и .
Узкое направление и длинное имеют разные масштабы. Изотропный шаг, подходящий первому, медленно движется вдоль второго; шаг для длинного направления часто вылетает поперёк. Ориентированное предложение учитывает геометрию. Если диагностика не обнаруживает эту разницу на известной цели, ей рано доверять в реальной модели.
Повторите опыт после линейного whitening-преобразования . В -координатах target сферична, и простой шаг должен работать лучше. Это вычислительная версия стандартизации признаков из линейных моделей: смена координат не меняет вероятностный вопрос, но меняет трудность прогулки.
Для каждой оценки среднего постройте Monte Carlo standard error
Проверьте coverage: в каком проценте независимых запусков интервал содержит известное истинное значение. Диагностика становится проверяемой процедурой, а не набором красивых trace plots.
Три слоя успешной цепи
Успешная MCMC-работа состоит из трёх слоёв. Математика гарантирует нужное стационарное распределение; вычислительная диагностика проверяет, исследовала ли цепь его существенные области; предметная проверка спрашивает, осмысленна ли сама вероятностная модель. Доля принятия относится только ко второму слою и не может заменить остальные.
Следующий урок о взломе шифра применит ту же механику к необычному пространству состояний — перестановкам букв. Там у цепи нет координат в привычном смысле, зато есть локальные обмены и языковая «энергия».