Курс CS221 Стэнфордского университета продолжает погружение в мир байесовских сетей. Если на предыдущих лекциях основное внимание уделялось архитектуре сетей и методам логического вывода (inference), то новая встреча посвящена фундаментальному вопросу: откуда берутся вероятности в этих моделях? В эпоху больших данных ручное заполнение таблиц вероятностей невозможно, поэтому на первый план выходит машинное обучение параметров из эмпирических данных.
🧠 Основы: От структуры к вероятностям 0:05
Байесовская сеть — это не просто граф, а способ определения совместного распределения вероятностей над набором случайных переменных . Каждая такая сеть состоит из двух компонентов: направленного ациклического графа (DAG) и набора локальных условных распределений (local conditional distributions) для каждого узла .
Ключевые принципы работы с БД:
- Локальность: Для каждого узла $X_i$ определяется таблица $P(X_i | \text{Parents}(X_i))$, где учитываются только прямые «родители» переменной .
- Совместная вероятность: Чтобы получить вероятность конкретного сценария (например, вероятности взлома при сработавшей сигнализации), все локальные вероятности перемножаются .
- Инференс: Запросы к «базе данных» сети могут быть как точными (маргинализация), так и приближенными (сэмплирование по Гиббсу или выборка с отклонением) .
📊 Обучение при полных данных: Стратегия «считай и нормируй» 13:21
В самом простом сценарии — обучении с полным наблюдением (fully observed setting) — алгоритм видит значения всех переменных для каждого примера из обучающей выборки . Основная задача здесь — заполнить таблицы локальных условных распределений.
Алгоритм обучения интуитивно понятен и сводится к двум шагам:
- Подсчет (Count): Проход по обучающей выборке и фиксация того, сколько раз встречается конкретное значение узла при определенных значениях его родителей .
- Нормировка (Normalize): Превращение счетчиков в вероятности так, чтобы их сумма для каждой комбинации условий равнялась единице .
На примере моделирования рейтингов фильмов: если мы видим «драму» с рейтингом «5» три раза, а всего драм в выборке пять, то вероятность $P(R=5 | G=\text{Drama})$ составит 0.6 . Этот метод является решением задачи оценки максимального правдоподобия (Maximum Likelihood Estimation, MLE) в закрытой форме . Это означает, что для нахождения оптимальных параметров не нужно использовать градиентный спуск или итерации — достаточно один раз пройтись по данным .
🤝 Разделение параметров (Parameter Sharing) 30:11
В реальных системах, например, при наличии тысячи пользователей, создание отдельной таблицы вероятностей для каждого из них приведет к переобучению и нехватке данных . Решение заключается в том, чтобы заставить разные узлы графа использовать одну и ту же таблицу параметров .
По мнению лектора, выбор между разделением параметров и индивидуальными моделями — это классический компромисс в моделировании:
- Разделение: Требует меньше данных для обучения и повышает стабильность модели .
- Индивидуализация: Обеспечивает гибкость и точность, если объекты (например, пользователи) действительно ведут себя по-разному .
🛠 Проблема нулевых частот и сглаживание Лапласа 59:30
Серьезный недостаток классического метода MLE проявляется на малых выборках. Если в данных ни разу не встретился фильм с рейтингом «2», модель присвоит этому событию нулевую вероятность . Со слов спикера, такой подход слишком «узколоб» (close-minded), так как отсутствие события в выборке не означает его невозможность в реальности .
Для решения этой проблемы применяется сглаживание Лапласа (Laplacian smoothing):
- К каждому счетчику в таблице добавляется небольшое число $\lambda$ (псевдо-счетчик), обычно 1 или 0.1 .
- Это гарантирует, что ни одна вероятность не станет строго нулевой.
- При увеличении объема реальных данных влияние этих «фиктивных» наблюдений постепенно сходит на нет .
🪄 Алгоритм EM: Работа с «невидимыми» данными 1:05:03
Наиболее сложным и «магическим» спикер называет случай частичного наблюдения (partially observable setting), когда значения некоторых переменных (скрытых или латентных) в обучающей выборке отсутствуют . Здесь невозможно просто посчитать частоты, возникает проблема «курицы и яйца»: чтобы оценить параметры, нужно знать скрытые значения, а чтобы восстановить скрытые значения, нужны параметры .
Для решения используется Алгоритм ожидания-максимизации (Expectation-Maximization, EM):
- E-шаг (Expectation): На основе текущих (сначала случайных) параметров вычисляется распределение вероятностей для скрытых переменных. Вместо одного жесткого значения мы получаем «взвешенные» догадки о том, что там могло быть .
- M-шаг (Maximization): Эти взвешенные данные трактуются как реальная выборка. Мы снова выполняем «считай и нормируй», но теперь используем веса из E-шага .
Процесс итеративно повторяется до сходимости. EM гарантированно увеличивает правдоподобие данных на каждом шаге, но может застрять в локальном оптимуме, поэтому важен выбор начальных условий . Лектор подчеркивает, что EM отлично подходит для задач кластеризации, где скрытая переменная — это номер кластера, не имеющий заранее заданного семантического смысла .