Машина Больцмана¶
Машина Больцмана — это стохастическая рекуррентная нейронная сеть, способная обучаться на основе данных и генерировать новые примеры, принадлежащие тому же распределению. Она относится к классу моделей на основе энергии (energy-based models) и использует механизм имитации отжига для поиска глобального минимума целевой функции. Машина Больцмана была предложена в 1985 году Джеффри Хинтоном и Терри Сейновски и названа в честь австрийского физика Людвига Больцмана, чьи работы по статистической механике легли в основу её математического аппарата.
¶История
¶Предпосылки создания
В середине 1980-х годов исследования в области искусственных нейронных сетей переживали возрождение после периода «зимы искусственного интеллекта». Ключевой проблемой оставалось обучение сетей с несколькими скрытыми слоями, так как простые перцептроны не могли решать нелинейно разделимые задачи, а многослойные сети не имели эффективного алгоритма обучения. Машина Больцмана стала одной из первых моделей, предложивших решение этой проблемы через стохастическую динамику и статистическую физику.
¶Разработка
В 1985 году Джеффри Хинтон и Терри Сейновски опубликовали статью «A Learning Algorithm for Boltzmann Machines», в которой описали новую архитектуру сети, способную обучаться без учителя. Алгоритм обучения был основан на контрастивной дивергенции (contrastive divergence), хотя сам термин появился позже. В 1986 году Пол Смоленский предложил упрощённую версию — машину Больцмана с ограниченной связностью (Restricted Boltzmann Machine, RBM), которая стала более практичной для обучения.
¶Развитие и применение
В 1990-е годы интерес к машинам Больцмана снизился из-за высокой вычислительной сложности, однако с ростом вычислительных мощностей в 2000-х годах они вновь привлекли внимание. В 2006 году Хинтон и его коллеги использовали RBM для предобучения глубоких нейронных сетей, что стало важным этапом в развитии глубокого обучения. Впоследствии машины Больцмана нашли применение в задачах коллаборативной фильтрации, обработки изображений и генерации данных.
¶Архитектура и принцип работы
¶Структура
Машина Больцмана состоит из бинарных нейронов (узлов), которые могут находиться в одном из двух состояний: 0 (выключен) или 1 (включён). Нейроны делятся на два типа:
- Видимые нейроны — представляют входные данные (например, пиксели изображения или признаки объектов).
- Скрытые нейроны — моделируют латентные (скрытые) зависимости в данных.
Связи между нейронами являются симметричными: если нейрон A соединён с нейроном B, то вес связи одинаков в обоих направлениях. В полной машине Больцмана все нейроны могут быть соединены друг с другом, что создаёт полносвязный граф. В ограниченной машине Больцмана связи существуют только между видимыми и скрытыми нейронами, а внутри каждой группы связи отсутствуют.
¶Энергия и вероятность
Состояние сети описывается энергетической функцией, заимствованной из статистической механики: \[ E(v, h) = -\sum_{i} a_i v_i - \sum_{j} b_j h_j - \sum_{i,j} v_i w_{ij} h_j \] где:
- \(v_i\) — состояние i-го видимого нейрона,
- \(h_j\) — состояние j-го скрытого нейрона,
- \(a_i\) и \(b_j\) — смещения (bias) для видимых и скрытых нейронов соответственно,
- \(w_{ij}\) — вес связи между видимым нейроном i и скрытым нейроном j.
Вероятность того, что сеть находится в конкретном состоянии, определяется распределением Больцмана: \[ P(v, h) = \frac{1}{Z} e^{-E(v, h)} \] где \(Z\) — статистическая сумма (нормировочный множитель), суммирующая экспоненты по всем возможным состояниям.
¶Стохастическая динамика
Обучение и работа машины Больцмана основаны на стохастическом процессе. Каждый нейрон с вероятностью, зависящей от его текущего входа, переключается в состояние 1 или 0. Вероятность активации нейрона задаётся сигмоидной функцией: \[ P(\text{нейрон}=1) = \sigma(\text{вход}) = \frac{1}{1 + e^{-\text{вход}}} \] где вход — взвешенная сумма состояний всех связанных нейронов плюс смещение.
Для поиска равновесного состояния сети используется имитация отжига (simulated annealing) — метод, при котором температура системы постепенно снижается, что позволяет избежать застревания в локальных минимумах энергии.
¶Обучение
¶Алгоритм контрастивной дивергенции
Обучение машины Больцмана направлено на минимизацию разницы между распределением, порождаемым сетью, и распределением обучающих данных. Основной алгоритм — контрастивная дивергенция (CD-k), предложенная Джеффри Хинтоном в 2002 году. Он включает следующие шаги:
- Фаза позитивной ассоциации: на видимые нейроны подаётся обучающий пример, и вычисляется состояние скрытых нейронов.
- Фаза негативной ассоциации: сеть запускается в свободном режиме (без внешнего входа) на k шагов Марковской цепи (обычно k=1), чтобы получить реконструкцию данных.
- Обновление весов: веса и смещения корректируются в направлении, уменьшающем разницу между позитивной и негативной фазами.
¶Проблемы обучения
- Высокая вычислительная сложность: для полной машины Больцмана требуется экспоненциальное количество итераций для достижения равновесия.
- Локальные минимумы: стохастическая природа сети не гарантирует нахождение глобального минимума энергии.
- Масштабируемость: обучение больших сетей требует значительных вычислительных ресурсов.
¶Классификация
¶Полная машина Больцмана
Классическая версия, в которой все нейроны (видимые и скрытые) соединены друг с другом. Обладает наибольшей выразительной способностью, но практически не применяется из-за сложности обучения.
¶Ограниченная машина Больцмана (RBM)
Наиболее распространённая разновидность. В RBM связи существуют только между видимыми и скрытыми нейронами, что делает граф двудольным. Это упрощает обучение, так как условные вероятности активации нейронов в одной группе становятся независимыми при фиксированной другой группе.
¶Глубокая машина Больцмана (DBM)
Модель, состоящая из нескольких слоёв скрытых нейронов, соединённых последовательно. DBM используется для обучения глубоких представлений данных, но требует более сложных алгоритмов обучения, таких как стохастический градиентный спуск с предобучением.
¶Применение
¶Генерация данных
Машины Больцмана способны генерировать новые образцы данных, похожие на обучающие. Например, после обучения на наборе рукописных цифр MNIST сеть может создавать новые изображения цифр, не встречавшихся в обучающей выборке.
¶Коллаборативная фильтрация
RBM используются в рекомендательных системах, например, в сервисе Netflix для предсказания предпочтений пользователей на основе истории просмотров. Модель обучается на матрице «пользователь-фильм» и предсказывает вероятности оценок для неоценённых фильмов.
¶Предобучение глубоких сетей
В 2006 году Хинтон показал, что послойное предобучение RBM позволяет эффективно инициализировать веса глубоких нейронных сетей, что решает проблему затухания градиента. Этот подход стал основой для развития глубокого обучения.
¶Обработка изображений
RBM применяются для извлечения признаков из изображений, сжатия данных и шумоподавления. Например, они используются в задачах восстановления повреждённых изображений.
¶Критика и ограничения
- Вычислительная стоимость: обучение даже ограниченной машины Больцмана требует значительных ресурсов, особенно при большом количестве нейронов.
- Нестабильность обучения: алгоритм контрастивной дивергенции может не сходиться к оптимальному решению, особенно при сложных распределениях данных.
- Ограниченная выразительность: RBM с одним скрытым слоем не способны моделировать сложные зависимости, а добавление слоёв усложняет обучение.
- Альтернативные модели: с развитием вариационных автокодировщиков (VAE) и генеративно-состязательных сетей (GAN) интерес к машинам Больцмана снизился, так как эти модели часто обеспечивают лучшее качество генерации при меньших вычислительных затратах.
¶Интересные факты
- Название «машина Больцмана» было выбрано в честь Людвига Больцмана, чьи работы по статистической механике легли в основу энергетической функции сети.
- В 2012 году группа исследователей из Университета Торонто использовала RBM для создания модели, способной генерировать реалистичные изображения лиц знаменитостей.
- Машины Больцмана являются одним из немногих типов нейронных сетей, которые могут работать как генеративные модели без учителя.
¶Источники
- Hinton, G. E., & Sejnowski, T. J. (1985). «A Learning Algorithm for Boltzmann Machines».
- Hinton, G. E. (2002). «Training Products of Experts by Minimizing Contrastive Divergence».
- Smolensky, P. (1986). «Information Processing in Dynamical Systems: Foundations of Harmony Theory».
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). «Deep Learning».
- Salakhutdinov, R., & Hinton, G. E. (2009). «Deep Boltzmann Machines».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


