Для кого эта статья:
- Специалисты в области машинного обучения и искусственного интеллекта
- Студенты и исследователи в области статистики и компьютерных наук
- Практикующие аналитики и разработчики, стремящиеся улучшить свои навыки в построении робастных моделей
Графические вероятностные модели — это не просто математическая абстракция для диссертаций. Это фундамент, на котором стоят системы распознавания речи, медицинская диагностика и рекомендательные алгоритмы. Когда вы спрашиваете голосового помощника о погоде, за кулисами работают скрытые марковские модели. Когда врач получает вероятностный диагноз на основе симптомов — это байесовские сети. Понимание графических моделей разделяет тех, кто слепо применяет готовые библиотеки, и тех, кто действительно контролирует поведение своих алгоритмов. Эта статья даст вам инструменты для перехода из первой категории во вторую 🎯
Основы графических вероятностных моделей в ML
Графические вероятностные модели (Probabilistic Graphical Models, PGM) представляют собой математический аппарат для работы с многомерными распределениями вероятностей через структурированное представление зависимостей между переменными. В отличие от классических статистических методов, которые требуют явного задания всех взаимосвязей, PGM используют графовую структуру для компактного кодирования условных независимостей.
Ключевая идея заключается в том, что сложное совместное распределение P(X₁, X₂, …, Xₙ) можно разложить на произведение локальных факторов, каждый из которых зависит лишь от небольшого подмножества переменных. Это не просто математическая элегантность — такое разложение радикально снижает вычислительную сложность и делает возможным обучение на реальных данных.
Существует два основных типа графических моделей:
- Направленные графические модели (байесовские сети) — используют ориентированный ациклический граф (DAG), где рёбра представляют причинно-следственные связи
- Ненаправленные графические модели (марковские случайные поля) — оперируют неориентированными графами, где связи симметричны и представляют корреляции без явной причинности
Согласно исследованиям Massachusetts Institute of Technology, применение графических моделей в медицинской диагностике повышает точность прогнозирования на 23% по сравнению с традиционными регрессионными методами.
| Характеристика | Байесовские сети | Марковские поля |
| Тип графа | Ориентированный ациклический | Неориентированный |
| Интерпретация рёбер | Причинно-следственные связи | Корреляции |
| Факторизация | P(X) = ∏ P(Xᵢ|Parents(Xᵢ)) | P(X) = (1/Z) ∏ ψ(Xc) |
| Типичные приложения | Медицинская диагностика, системы поддержки решений | Компьютерное зрение, NLP |
| Сложность вывода | Полиномиальная для деревьев | NP-полная в общем случае |
Практическое преимущество графических моделей проявляется при работе с неполными данными. Традиционные методы машинного обучения требуют импутации или удаления строк с пропусками, что приводит к потере информации. Графические модели естественным образом обрабатывают отсутствующие значения через маргинализацию — просто суммируя по всем возможным значениям ненаблюдаемой переменной.
Анна Королёва, ведущий специалист по данным
Когда я впервые столкнулась с задачей прогнозирования оттока клиентов в телекоме, классические модели давали точность около 72%. Данные были грязные: у 40% пользователей отсутствовали демографические характеристики, история транзакций была неполная. Я построила байесовскую сеть, где узлы представляли клиентские признаки, а структура графа отражала бизнес-логику — например, возраст влияет на тип тарифа, который, в свою очередь, связан с вероятностью оттока. Результат превзошёл ожидания: точность выросла до 84%, а главное — модель объясняла свои предсказания через цепочки вероятностных выводов. Когда я показала маркетологам, почему конкретный клиент получил высокий скор риска, они сразу поняли логику и смогли разработать персонализированные предложения удержания. Графические модели превратили чёрный ящик в прозрачный инструмент принятия решений.
Байесовские сети: структура и алгоритмы вывода
Байесовская сеть — это направленный ациклический граф, где каждый узел представляет случайную величину, а рёбра кодируют условные зависимости. Формально, сеть задаёт совместное распределение как произведение локальных условных распределений: P(X₁, …, Xₙ) = ∏ᵢ P(Xᵢ|Parents(Xᵢ)).
Структура сети может быть либо задана экспертом (что характерно для медицинских и промышленных приложений), либо изучена из данных. Алгоритмы структурного обучения делятся на два класса:
- Score-based методы — перебирают возможные структуры, оптимизируя метрику качества (BIC, AIC, MDL)
- Constraint-based методы — используют тесты условной независимости для построения графа (алгоритм PC)
Центральная задача при работе с байесовскими сетями — вероятностный вывод, то есть вычисление P(Query|Evidence). Существует несколько классов алгоритмов:
Точные методы вывода:
- Variable Elimination — динамическое программирование с маргинализацией переменных в оптимальном порядке
- Junction Tree Algorithm — преобразует сеть в дерево клик для эффективного распространения вероятностей
- Belief Propagation — итеративная передача сообщений между узлами (точна для деревьев)
Приближённые методы:
- Markov Chain Monte Carlo (MCMC) — сэмплирование из целевого распределения через цепи Маркова
- Variational Inference — аппроксимация сложного распределения простым через минимизацию расхождения Кульбака-Лейблера
- Loopy Belief Propagation — применение BP к графам с циклами (не гарантирует сходимость, но эффективен на практике)
Сложность вывода в байесовских сетях зависит от параметра, называемого treewidth графа — минимальная ширина дерева после триангуляции. Для графов с малым treewidth вывод полиномиален, для плотно связанных сетей — экспоненциален. Именно поэтому в реальных приложениях часто используют приближённые методы.
| Алгоритм | Тип | Сложность | Точность |
| Variable Elimination | Точный | O(n × d^(w+1)) | 100% |
| Junction Tree | Точный | O(n × d^w) | 100% |
| Gibbs Sampling | MCMC | O(t × n × d) | ~95-99% |
| Loopy BP | Приближённый | O(i × m × d²) | ~90-98% |
| Mean Field VI | Вариационный | O(i × n × d) | ~85-95% |
Согласно данным Carnegie Mellon University, байесовские сети используются в более чем 60% систем автоматической медицинской диагностики, достигая точности, сопоставимой с экспертными заключениями.
Практический совет: при построении байесовской сети для реальной задачи начинайте с экспертного задания структуры. Автоматическое структурное обучение требует больших объёмов данных (обычно тысячи примеров на каждую переменную) и может выявить ложные корреляции. Гибридный подход — задать основные причинно-следственные связи экспертно, а затем уточнить параметры и дополнительные рёбра из данных — даёт оптимальный баланс между интерпретируемостью и точностью.
Марковские случайные поля и их применение
Марковские случайные поля (Markov Random Fields, MRF) — это класс ненаправленных графических моделей, где отсутствие ребра между двумя узлами означает условную независимость соответствующих переменных при фиксации всех остальных. В отличие от байесовских сетей, MRF не предполагают причинной интерпретации связей — они просто кодируют совместимость между значениями соседних переменных.
Совместное распределение в MRF факторизуется через потенциальные функции (потенциалы), определённые на кликах графа: P(X) = (1/Z) ∏c ψc(Xc), где Z — нормализующая константа (статистическая сумма), вычисление которой является центральной вычислительной проблемой.
Особый класс MRF — условные случайные поля (Conditional Random Fields, CRF) — моделируют условное распределение P(Y|X), что делает их мощным инструментом для задач структурного предсказания:
- Named Entity Recognition — разметка последовательностей токенов
- Part-of-Speech Tagging — определение частей речи
- Image Segmentation — сегментация изображений на семантические области
- Gene Finding — поиск генов в ДНК-последовательностях
Дмитрий Соколов, исследователь компьютерного зрения
Наша команда разрабатывала систему автоматического распознавания текста на исторических документах XVIII века. Проблема была в том, что качество сканов ужасное, шрифт нестандартный, а слова часто сливаются. Классические CNN-based OCR модели давали точность символов около 65% — непригодно для практического использования. Мы решили применить CRF как постобработку: построили марковское поле второго порядка, где узлы — это символы, а потенциалы кодировали как визуальные признаки (выходы свёрточной сети), так и языковую модель (биграммы и триграммы символов из корпуса старорусских текстов). Обучение CRF по размеченной выборке из 500 документов заняло 6 часов на GPU, но результат стоил того — точность выросла до 91%. Ключевым оказалось то, что CRF использовали контекст: даже если отдельный символ распознан плохо, модель корректирует его на основе соседних букв и языковых закономерностей. Архивисты были в восторге.
Обучение MRF сводится к максимизации логарифма правдоподобия. Для условных полей функция потерь выпукла, что позволяет использовать градиентные методы. Градиент логарифма правдоподобия имеет изящную интерпретацию: разность между эмпирическими маргиналами (по обучающей выборке) и модельными маргиналами (по текущему распределению).
Основные алгоритмы обучения:
- Maximum Likelihood Estimation — требует вычисления статистической суммы Z, что нетривиально
- Pseudo-Likelihood — аппроксимирует совместное правдоподобие произведением условных, избегая Z
- Contrastive Divergence — использует MCMC для аппроксимации градиента
- Structured SVM — сводит обучение к задаче выпуклой оптимизации через max-margin подход
Практическое применение MRF в компьютерном зрении демонстрирует их силу. Задача семантической сегментации изображения естественно формулируется как MRF: каждый пиксель — узел графа, связанный с соседями (обычно 4-связная или 8-связная решётка). Унарные потенциалы кодируют вероятность принадлежности пикселя к классу на основе его цвета и текстуры, бинарные потенциалы поощряют гладкость — соседние пиксели предпочтительно должны иметь одинаковую метку.
Алгоритм Graph Cut позволяет находить точное MAP-решение для определённого класса энергий (субмодулярные функции) за полиномиальное время, превращая задачу вывода в задачу о минимальном разрезе графа. Это открыло путь к применению MRF в интерактивной сегментации изображений, где пользователь помечает несколько пикселей как foreground/background, а алгоритм автоматически распространяет разметку.
Скрытые марковские модели для анализа данных
Скрытые марковские модели (Hidden Markov Models, HMM) — это частный случай графических моделей для последовательных данных, где предполагается наличие ненаблюдаемой (скрытой) последовательности состояний, которая порождает наблюдаемую последовательность через эмиссионные вероятности. HMM делают два ключевых предположения:
- Марковское свойство — текущее скрытое состояние зависит только от предыдущего: P(sₜ|s₁, …, sₜ₋₁) = P(sₜ|sₜ₋₁)
- Независимость наблюдений — наблюдение зависит только от текущего скрытого состояния: P(oₜ|s₁, …, sₜ, o₁, …, oₜ₋₁) = P(oₜ|sₜ)
Модель задаётся тремя компонентами: начальные вероятности состояний π, матрица переходов A (вероятности перехода между состояниями) и матрица эмиссий B (вероятности наблюдений для каждого состояния). Формально: λ = (π, A, B).
Три фундаментальные задачи для HMM:
- Evaluation — вычислить вероятность наблюдаемой последовательности P(O|λ) — решается алгоритмом Forward
- Decoding — найти наиболее вероятную последовательность скрытых состояний — алгоритм Витерби
- Learning — оценить параметры модели по наблюдениям — алгоритм Баума-Велша (Forward-Backward)
Алгоритм Витерби — это элегантное применение динамического программирования. Для каждого момента времени t и каждого состояния i вычисляется максимальная вероятность пути, заканчивающегося в этом состоянии: δₜ(i) = max P(s₁, …, sₜ₋₁, sₜ=i, o₁, …, oₜ|λ). Итоговая последовательность восстанавливается обратным проходом.
| Алгоритм | Задача | Сложность | Результат |
| Forward | Вычисление P(O|λ) | O(T × N²) | Скаляр — правдоподобие |
| Viterbi | Поиск лучшего пути | O(T × N²) | Последовательность состояний |
| Baum-Welch | Обучение параметров | O(I × T × N²) | Оценки π, A, B |
| Forward-Backward | Вычисление маргиналов | O(T × N²) | P(sₜ|O, λ) для всех t |
HMM нашли широчайшее применение в анализе временных рядов и последовательностей. Классический пример — распознавание речи. Звуковой сигнал разбивается на короткие фреймы (обычно 10-25 мс), для каждого извлекаются признаки (MFCC — Mel-Frequency Cepstral Coefficients). Скрытые состояния соответствуют фонемам или суб-фонетическим единицам, наблюдения — акустические векторы признаков. Обученная HMM позволяет декодировать последовательность фонем, которая затем преобразуется в текст через языковую модель.
Согласно публикациям Stanford Speech Group, до появления глубоких нейронных сетей HMM обеспечивали state-of-the-art результаты в распознавании речи с точностью до 95% для задач с ограниченным словарём.
Другие области применения HMM:
- Биоинформатика — предсказание вторичной структуры белков, поиск генов, выравнивание последовательностей ДНК
- Финансы — моделирование режимов рынка (бычий/медвежий), прогнозирование волатильности
- Распознавание образов — распознавание рукописного текста, анализ жестов
- Обработка естественного языка — разметка частей речи (POS-tagging), извлечение именованных сущностей
Важное ограничение классических HMM — марковское предположение первого порядка часто нереалистично. Расширения модели включают:
- HMM высших порядков — зависимость от нескольких предыдущих состояний
- Иерархические HMM — многоуровневая структура для моделирования вложенных процессов
- Входные HMM — переходы зависят от дополнительных входных признаков
- Continuous-density HMM — эмиссии моделируются смесями гауссиан для непрерывных наблюдений
Практический совет: при работе с HMM особое внимание уделите выбору числа скрытых состояний. Слишком мало состояний — модель не сможет захватить сложность данных, слишком много — переобучение и вычислительные проблемы. Используйте кросс-валидацию и информационные критерии (BIC, AIC) для выбора архитектуры. Начните с небольшого числа состояний и постепенно увеличивайте, отслеживая изменение правдоподобия на валидационной выборке 📈
Реализация графических моделей для классификации
Применение графических моделей для задач классификации требует понимания различий между генеративным и дискриминативным подходами. Генеративные модели (как наивный байесовский классификатор или HMM) моделируют совместное распределение P(X, Y), из которого затем вычисляется апостериорная вероятность класса P(Y|X) по формуле Байеса. Дискриминативные модели (как CRF или logistic regression) напрямую моделируют условное распределение P(Y|X).
Рассмотрим практическую реализацию классификатора на основе байесовской сети для задачи прогнозирования заболеваний. Предположим, у нас есть набор симптомов (лихорадка, кашель, утомляемость) и нужно предсказать вероятность конкретной болезни.
Структура байесовской сети для медицинской диагностики:
- Узел «Болезнь» (дискретная переменная с возможными значениями: грипп, простуда, COVID-19, здоров)
- Узлы-симптомы: «Температура», «Кашель», «Утомляемость», «Потеря обоняния»
- Направленные рёбра от «Болезнь» к каждому симптому (болезнь вызывает симптомы)
- Возможные дополнительные узлы: «Возраст», «Вакцинация», которые влияют на вероятность заболевания
Обучение такой сети требует оценки условных вероятностей P(Симптом|Болезнь) из размеченных медицинских данных. При наличии полных данных используется простой подсчёт частот. При пропущенных значениях — EM-алгоритм.
Для задач структурированного предсказания (где выходы взаимосвязаны) CRF показывают превосходные результаты. Рассмотрим задачу Named Entity Recognition — нужно разметить последовательность слов метками (PERSON, ORGANIZATION, LOCATION, OTHER).
Архитектура линейно-цепной CRF для NER:
- Входная последовательность слов: w₁, w₂, …, wₙ
- Выходная последовательность меток: y₁, y₂, …, yₙ
- Признаковые функции: fₖ(yₜ, yₜ₋₁, X, t) — например, «текущее слово начинается с заглавной буквы и предыдущая метка была PERSON»
- Веса признаков: λₖ — обучаемые параметры
Условное распределение: P(Y|X) = (1/Z(X)) exp(∑ₜ ∑ₖ λₖ fₖ(yₜ, yₜ₋₁, X, t))
Обучение CRF сводится к максимизации логарифма условного правдоподобия на обучающей выборке. Градиент вычисляется через разность эмпирических и модельных ожиданий признаковых функций. Для вывода (нахождения наиболее вероятной последовательности меток) используется алгоритм Витерби.
Ключевые преимущества CRF перед независимой классификацией каждой позиции:
- Учёт контекста — метка текущего слова зависит от меток соседних слов
- Глобальная нормализация — вероятности корректно нормализованы по всей последовательности
- Возможность использовать произвольные перекрывающиеся признаки без предположения условной независимости
Практическая реализация требует выбора библиотеки. Для Python доступны:
- pgmpy — для байесовских сетей и марковских случайных полей
- hmmlearn — для скрытых марковских моделей
- sklearn-crfsuite — для условных случайных полей
- PyTorch — для создания кастомных графических моделей с глубокими признаками
Практический совет для оптимизации производительности: при работе с большими графическими моделями используйте approximate inference. Для байесовских сетей — loopy belief propagation или variational inference, для CRF — beam search вместо полного Витерби. Это может снизить точность на 1-3%, но ускорит вывод в десятки раз, что критично для production-систем с требованиями по латентности. Также рассмотрите структурное прореживание — удаление рёбер с малым весом уменьшает treewidth графа и ускоряет вывод без существенной потери качества 🚀
Графические вероятностные модели — это не реликт прошлого, а фундамент, на котором строится современное машинное обучение. Понимание принципов факторизации, условной независимости и вероятностного вывода даёт вам инструменты для создания интерпретируемых, робастных моделей, способных работать с неопределённостью и неполными данными. Когда нейронные сети дают вам чёрный ящик, графические модели предлагают прозрачную структуру причинных связей. Начните с малого — постройте байесовскую сеть для вашей предметной области, реализуйте HMM для временных рядов, примените CRF для структурированного предсказания. Эти навыки отделяют инженеров, умеющих нажимать кнопки в библиотеках, от экспертов, способных проектировать модели под конкретную задачу и объяснять каждое решение алгоритма.
