EssayAI
Блог
Блог
Математика и алгоритмы

Метод Монте-Карло Метрополис: схема, баланс, сходимость

12 мая 2026Время чтения: 7 минут
#метод Монте-Карло#алгоритм Метрополиса#цепь Маркова#распределение Больцмана#модель Изинга
Метод Монте-Карло Метрополис: схема, баланс, сходимость

Метод Монте-Карло Метрополис - это способ оценивать средние по сложному вероятностному распределению, когда прямое интегрирование невозможно, а плотность известна только с точностью до нормировки. Его предложили Николас Метрополис, Арианна и Маршалл Розенблют и Эдвард и Августа Теллер в 1953 году для расчётов в статистической физике: нужно было считать термодинамические средние в системе многих частиц, где число конфигураций астрономически велико. Идея - не перебирать все состояния, а построить случайное блуждание (цепь Маркова), которое посещает конфигурации с частотой, пропорциональной их вероятности. Тогда обычное среднее вдоль траектории сходится к среднему по распределению.

Зачем нужен метод Монте-Карло Метрополис

Классический Монте-Карло оценивает интеграл A=A(x)π(x)dx\langle A \rangle = \int A(x)\,\pi(x)\,dx, генерируя точки xx из распределения π\pi и усредняя A(x)A(x). Проблема в том, что в физике и байесовской статистике π(x)\pi(x) обычно имеет вид π(x)=1ZeβE(x)\pi(x) = \frac{1}{Z} e^{-\beta E(x)} - распределение Больцмана, где Z=xeβE(x)Z = \sum_x e^{-\beta E(x)} - статистическая сумма (partition function). Считать ZZ - значит просуммировать по всем состояниям, а их, например для модели Изинга на решётке 30×3030\times 30, уже 29002^{900}. Прямая выборка из такого π\pi невозможна.

Метод Метрополиса обходит это: вероятность принятия зависит только от отношения π(x)/π(x)\pi(x')/\pi(x), в котором нормировка ZZ сокращается. Нам достаточно уметь считать энергию E(x)E(x) - а не статистическую сумму.

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

Распределение Больцмана и принцип выборки по важности

Случайная выборка из равномерного распределения по конфигурациям почти бесполезна: подавляющее большинство состояний имеет ничтожный больцмановский вес eβEe^{-\beta E}, и оценка A\langle A \rangle получается из единичных «удачных» точек с огромной дисперсией. Метод Монте-Карло Метрополис реализует выборку по важности (importance sampling): он генерирует конфигурации сразу с частотой, пропорциональной π(x)\pi(x). Тогда среднее по выборке

A1Nn=1NA(xn)\langle A \rangle \approx \frac{1}{N}\sum_{n=1}^{N} A(x_n)

не требует весов - каждый посещённый xnx_n уже учтён с правильной частотой. Здесь β=1/(kBT)\beta = 1/(k_B T) - обратная температура: при больших β\beta (низкая TT) распределение концентрируется около минимумов энергии, при малых β\beta становится почти равномерным.

Общая схема алгоритма Метрополиса

Пусть текущее состояние цепи - xx. Один шаг (Monte Carlo step) состоит из трёх действий:

  1. Предложить кандидата xx' симметричным пробным ходом - например, перевернуть случайный спин в модели Изинга или сдвинуть координату x=x+εx' = x + \varepsilon, εN(0,σ2)\varepsilon \sim N(0, \sigma^2).
  2. Вычислить изменение энергии ΔE=E(x)E(x)\Delta E = E(x') - E(x) и вероятность принятия
α=min ⁣(1,  π(x)π(x))=min ⁣(1,  eβΔE).\alpha = \min\!\left(1,\; \frac{\pi(x')}{\pi(x)}\right) = \min\!\left(1,\; e^{-\beta \Delta E}\right).
  1. Сгенерировать uUniform(0,1)u \sim \mathrm{Uniform}(0,1). Если uαu \le \alpha - принять кандидата (xn+1=xx_{n+1} = x'), иначе остаться (xn+1=xx_{n+1} = x).

Логика прозрачна: ход «вниз» по энергии (ΔE0\Delta E \le 0) принимается всегда, ход «вверх» (ΔE>0\Delta E > 0) - с вероятностью eβΔEe^{-\beta\Delta E}. Именно эти редкие подъёмы дают системе возможность выбираться из локальных ям и исследовать всё пространство. Это исходный метод Монте-Карло Метрополис; обобщение на несимметричные пробные ходы - алгоритм Метрополиса-Гастингса с дополнительным множителем q(xx)/q(xx)q(x\mid x')/q(x'\mid x).

Почему это работает: детальный баланс

Чтобы цепь Маркова имела стационарным распределением именно π\pi, достаточно выполнения условия детального баланса (detailed balance):

π(x)P(xx)=π(x)P(xx),\pi(x)\,P(x \to x') = \pi(x')\,P(x' \to x),

где P(xx)=q(xx)α(x,x)P(x \to x') = q(x'\mid x)\,\alpha(x, x') - вероятность перехода, а qq симметрична: q(xx)=q(xx)q(x'\mid x) = q(x\mid x'). Пусть π(x)π(x)\pi(x') \le \pi(x), тогда α(x,x)=π(x)/π(x)\alpha(x, x') = \pi(x')/\pi(x) и α(x,x)=1\alpha(x', x) = 1. Подставляем:

π(x)q(xx)π(x)π(x)=π(x)q(xx)=π(x)q(xx)α(x,x).\pi(x)\,q(x'\mid x)\,\frac{\pi(x')}{\pi(x)} = \pi(x')\,q(x'\mid x) = \pi(x')\,q(x\mid x')\,\alpha(x', x).

Равенство выполнено, значит π\pi - инвариантная мера. Если вдобавок цепь неприводима (из любого состояния достижимо любое) и апериодична, она эргодична: распределение xnx_n при nn \to \infty стремится к π\pi независимо от старта. Детальный баланс - достаточное, но не необходимое условие; на нём держится корректность всего метода.

Модель Изинга: канонический пример

Историческое и до сих пор учебное применение - модель Изинга. Спины si{1,+1}s_i \in \{-1, +1\} на решётке, энергия

E(s)=Ji,jsisjhisi,E(s) = -J\sum_{\langle i,j\rangle} s_i s_j - h\sum_i s_i,

где сумма по соседним парам, JJ - обменное взаимодействие, hh - внешнее поле. Метод Монте-Карло Метрополис здесь работает так: выбираем случайный спин, считаем ΔE\Delta E от его переворота (зависит только от ближайших соседей - это локально и дёшево), принимаем переворот с вероятностью min(1,eβΔE)\min(1, e^{-\beta\Delta E}). Усредняя намагниченность M=isiM = \sum_i s_i и энергию вдоль траектории, получаем термодинамические средние. Вблизи критической температуры βc\beta_c цепь резко замедляется (критическое замедление) - соседние конфигурации сильно скоррелированы, и тут переходят к кластерным алгоритмам (Вольфа, Свендсена-Ванга).

Burn-in, автокорреляция и оценка погрешности

Цепь стартует из произвольной конфигурации и первые шаги ещё «помнит» начало - этот участок (burn-in, или термализация) выбрасывают: система должна сначала прийти в типичные для π\pi состояния. Дальше важны две вещи:

  • Автокорреляция. Соседние xnx_n зависимы, поэтому оценивают интегральное время автокорреляции τ\tau. Эффективное число независимых выборок ESS=N/(2τ+1)\mathrm{ESS} = N/(2\tau + 1) много меньше NN. Стандартная ошибка среднего - не σ/N\sigma/\sqrt{N}, а σ/ESS\sigma/\sqrt{\mathrm{ESS}}.
  • Acceptance rate. Доля принятых ходов. Слишком высокая (близко к 1) - шаг σ\sigma мал, цепь еле движется; слишком низкая - шаг велик, почти всё отвергается. Для гауссовых пробных ходов оптимум около 0.2340.234 в многомерном случае и 0.44\approx 0.44 в одномерном.

Чтобы поймать застревание в одной моде мультимодального распределения, запускают несколько независимых цепей и сравнивают их статистику (R^\hat{R} Гельмана-Рубина <1.01< 1.01).

Связь с имитацией отжига

Если медленно увеличивать β\beta (понижать «температуру») по ходу выборки, метод Метрополиса превращается в имитацию отжига (simulated annealing) - алгоритм оптимизации. При высокой TT система свободно гуляет и не застревает в локальных минимумах энергии; при постепенном охлаждении она «оседает» в глобальном минимуме. Это прямое следствие того, что распределение Больцмана при β\beta \to \infty концентрируется на состояниях с минимальной EE. Один и тот же шаг принятия min(1,eβΔE)\min(1, e^{-\beta\Delta E}) служит и для расчёта средних, и для поиска оптимума.

Частые ошибки

  • Пытаются вычислить статистическую сумму ZZ. Весь смысл метода в том, что ZZ сокращается в отношении π(x)/π(x)\pi(x')/\pi(x) - её считать не нужно и обычно невозможно.
  • Не отбрасывают burn-in. Начальные нетермализованные конфигурации смещают оценку средних, особенно если старт далёк от равновесия.
  • Считают шаги цепи независимыми. Используют σ/N\sigma/\sqrt{N} для погрешности, игнорируя автокорреляцию, - реальная неопределённость занижается в 2τ+1\sqrt{2\tau+1} раз.
  • Гонятся за высоким acceptance rate. Приём >0.9>0.9 означает, что цепь почти стоит на месте; целиться надо в умеренный диапазон, а не в максимум.
  • Запускают одну цепь у критической точки. Вблизи βc\beta_c из-за критического замедления одиночная цепь не успевает разойтись - нужны кластерные методы или несколько стартов.

FAQ

Чем метод Монте-Карло Метрополис отличается от обычного Монте-Карло? Обычный Монте-Карло генерирует независимые точки из распределения напрямую и усредняет. Метод Метрополиса строит зависимую цепь Маркова - это нужно, когда напрямую сэмплировать π\pi нельзя, а известно лишь π\pi с точностью до нормировки.

Почему ход с ростом энергии вообще принимается? Иначе цепь скатилась бы в ближайший локальный минимум и осталась там. Подъёмы с вероятностью eβΔEe^{-\beta\Delta E} обеспечивают неприводимость и дают правильный больцмановский вес высокоэнергетическим состояниям при конечной температуре.

В чём разница между методом Метрополиса и Метрополиса-Гастингса? Метрополис требует симметричной пробной плотности q(xx)=q(xx)q(x'\mid x) = q(x\mid x'), и тогда α=min(1,π(x)/π(x))\alpha = \min(1, \pi(x')/\pi(x)). Гастингс снял это ограничение, добавив поправку q(xx)/q(xx)q(x\mid x')/q(x'\mid x), что позволяет использовать любые пробные распределения.

Коротко

Метод Монте-Карло Метрополис оценивает средние по распределению Больцмана π(x)eβE(x)\pi(x)\propto e^{-\beta E(x)}, строя цепь Маркова: предлагается симметричный пробный ход, кандидат принимается с вероятностью min(1,eβΔE)\min(1, e^{-\beta\Delta E}). Нормировка ZZ при этом сокращается, поэтому достаточно считать только энергию. Корректность гарантирует детальный баланс, а π\pi оказывается стационарным распределением цепи. Канонический пример - расчёт термодинамических средних в модели Изинга; качество выборки контролируют burn-in, автокорреляция и acceptance rate, а понижение температуры превращает метод в имитацию отжига.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также