Сэмплирование Гиббса
Материал из MachineLearning.
| | Статья написана с использованием LLM OpenAI GPT-5 и проверена участником Platon Usaсhev 11:19, 16 июня 2026 (MSD) |
Сэмплирование Гиббса (англ. Gibbs sampling) — метод MCMC, предназначенный для приближённого получения выборки из сложного многомерного распределения. Метод строит марковскую цепь, последовательно обновляя отдельные координаты или блоки переменных по их полным условным распределениям. При выполнении стандартных условий стационарным распределением этой цепи является целевое распределение.
Сэмплирование Гиббса особенно удобно в байесовском выводе, когда совместное апостериорное распределение параметров и латентных переменных трудно нормировать, но условные распределения отдельных блоков имеют простой вид. Метод применяется в иерархических байесовских моделях, тематическом моделировании, скрытых марковских моделях, гауссовских смесях, моделях Марковских случайных полей и задачах с пропущенными данными.
Содержание |
Постановка задачи
Пусть требуется получить выборку из распределения
где нормировочная константа неизвестна или вычислительно недоступна. Прямое независимое сэмплирование из невозможно. Однако предположим, что доступны полные условные распределения
где обозначает все координаты, кроме
. Тогда можно строить последовательность состояний
каждое из которых получается из предыдущего последовательным обновлением координат.
В байесовской задаче целевым распределением обычно является апостериорное распределение
где — наблюдения,
— параметры модели,
— латентные переменные. Часто условные распределения
и
проще, чем полное совместное распределение.
Алгоритм
В систематическом сэмплировании Гиббса координаты обновляются в фиксированном порядке. Пусть на итерации имеется состояние
Следующее состояние строится так:
и далее до
После большого числа итераций состояния цепи рассматриваются как зависимая выборка из . При оценивании математического ожидания функции
используют среднее
где первые итераций отбрасываются как период разогрева (англ. burn-in).
Существуют и другие схемы обновления:
- случайный просмотр координат (англ. random scan), когда на каждом шаге выбирается одна координата случайно;
- блочное сэмплирование, где одновременно обновляется группа сильно связанных переменных;
- чередование разных блоков параметров и латентных переменных;
- асинхронные и параллельные варианты для специальных моделей.
Почему метод работает
Каждое обновление координаты оставляет целевое распределение инвариантным. Если текущее состояние уже распределено по , то замена
выборкой из правильного условного распределения
не меняет совместного распределения всех координат. Последовательная композиция таких обновлений также сохраняет
.
Чтобы сэмплирование Гиббса действительно сходилось к , одной инвариантности недостаточно. Нужны условия эргодичности: цепь должна иметь возможность достигать все существенные области пространства состояний и не должна распадаться на независимые классы. В дискретном случае обычно требуют неприводимость и апериодичность; в непрерывном случае используются аналогичные условия для общих марковских цепей.
Если условия выполнены, то для достаточно большого распределение
близко к
. Однако соседние состояния цепи зависимы, поэтому эффективный размер выборки может быть значительно меньше числа итераций.
Связь с Метрополисом — Гастингсом
Сэмплирование Гиббса можно рассматривать как частный случай алгоритма Метрополиса — Гастингса. Если предложение для координаты берётся из точного условного распределения
то вероятность принятия равна единице. Поэтому в шаге Гиббса нет отдельной процедуры принятия или отклонения: новое значение всегда принимается.
Если условное распределение известно только с точностью до константы или из него трудно сэмплировать напрямую, используют схему Metropolis-within-Gibbs: внутри одного блока выполняют шаг Метрополиса — Гастингса, а остальные блоки обновляют обычным образом. Такой гибрид часто встречается в сложных байесовских моделях.
Блочное и коллапсированное сэмплирование
Если переменные сильно коррелированы, покоординатные обновления могут плохо перемешивать цепь. Тогда используют блочное сэмплирование:
где — набор индексов. Блочный шаг труднее реализовать, но он может резко уменьшить автокорреляцию, если блок соответствует естественно связанным параметрам модели.
Коллапсированное сэмплирование Гиббса исключает часть переменных аналитическим интегрированием. Например, вместо сэмплирования из можно сэмплировать только
из маргинального распределения
После этого параметры при необходимости восстанавливаются условно по
. Коллапсирование часто улучшает перемешивание цепи, но требует вычислимых интегралов и может усложнить отдельные условные распределения.
Пример: нормальная модель
Пусть наблюдения имеют нормальное распределение с неизвестным средним
и неизвестной дисперсией
. При сопряжённых априорных распределениях условное распределение
является нормальным, а
— обратным гамма-распределением. Тогда шаги Гиббса имеют вид:
Даже если совместное распределение неудобно для прямого сэмплирования, чередование этих двух простых условных шагов даёт выборку из апостериорного распределения. В более сложных моделях та же идея распространяется на десятки и тысячи параметров.
Применения
В байесовских гауссовских смесях сэмплирование Гиббса обновляет метки кластеров, параметры компонент и гиперпараметры. В латентном размещении Дирихле коллапсированное сэмплирование Гиббса часто используется для обновления тем слов при аналитическом исключении распределений тем и слов. В моделях Марковских случайных полей метод применяется для восстановления изображений и сегментации, что исторически было одним из первых важных применений алгоритма.
Также метод используют:
- для заполнения пропущенных значений;
- в иерархических байесовских моделях;
- в скрытых марковских моделях и динамических байесовских сетях;
- при оценивании неопределённости в регрессии и классификации;
- в моделях социальных сетей и рекомендательных системах;
- как базовый блок более сложных MCMC-алгоритмов.
Диагностика и практические вопросы
Результат сэмплирования Гиббса нельзя оценивать только по числу итераций. Важны перемешивание цепи, автокорреляция и чувствительность к начальному состоянию. На практике обычно запускают несколько цепей из разных начальных точек и анализируют:
- трассы значений параметров и логарифма плотности;
- автокорреляционные функции;
- эффективный размер выборки;
- потенциальный фактор уменьшения масштаба, например
;
- стабильность оценок при увеличении числа итераций.
Прореживание цепи (англ. thinning), когда сохраняется только каждое -е состояние, уменьшает объём хранимых данных, но не всегда повышает статистическую эффективность. Часто лучше хранить больше состояний или улучшать само перемешивание цепи через блочные обновления, изменение параметризации или коллапсирование.
Достоинства и ограничения
К достоинствам сэмплирования Гиббса относятся:
- отсутствие необходимости знать нормировочную константу целевого распределения;
- простота реализации при известных условных распределениях;
- естественная применимость к байесовским иерархическим моделям;
- возможность получать не только точечные оценки, но и апостериорную неопределённость;
- совместимость с блочными, коллапсированными и гибридными MCMC-схемами.
Основные ограничения:
- высокая автокорреляция при сильной зависимости координат;
- медленное перемешивание в многомодальных распределениях;
- необходимость уметь сэмплировать из полных условных распределений;
- трудность строгой диагностики сходимости;
- зависимость практического качества от параметризации модели;
- возможность ошибочного результата при несобственных априорных распределениях или некорректных условных распределениях.
Сэмплирование Гиббса эффективно, когда условные распределения просты, а зависимость между обновляемыми блоками умеренна. Если же переменные сильно связаны или апостериорное распределение имеет узкие изогнутые области высокой плотности, более подходящими могут быть блочные методы, гамильтоновы MCMC-алгоритмы или тщательно подобранные варианты Метрополиса — Гастингса.
См. также
- Метод Монте-Карло по схеме марковской цепи
- Байесовский вывод
- Вариационный байесовский вывод
- Алгоритм Метрополиса — Гастингса
- Марковский процесс
- Латентное размещение Дирихле
- EM-алгоритм
Литература
- Geman S., Geman D. Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 1984. — Vol. PAMI-6, No. 6. — P. 721–741.
- Gelfand A. E., Smith A. F. M. Sampling-based approaches to calculating marginal densities // Journal of the American Statistical Association. — 1990. — Vol. 85, No. 410. — P. 398–409.
- Casella G., George E. I. Explaining the Gibbs sampler // The American Statistician. — 1992. — Vol. 46, No. 3. — P. 167–174.
- Gilks W. R., Richardson S., Spiegelhalter D. J. Markov Chain Monte Carlo in Practice. — Chapman and Hall/CRC, 1996.
- Liu J. S. Monte Carlo Strategies in Scientific Computing. — Springer, 2001.
- Robert C. P., Casella G. Monte Carlo Statistical Methods. — 2nd ed. — Springer, 2004.
- Gelman A., Carlin J. B., Stern H. S., Dunson D. B., Vehtari A., Rubin D. B. Bayesian Data Analysis. — 3rd ed. — Chapman and Hall/CRC, 2013.

