Ограниченная машина Больцмана

Ограниченная машина Больцмана (Шаблон:Lang-en), сокращённо RBM — вид генеративной стохастической нейронной сети, которая определяет распределение вероятности на входных образцах данных.
Первая ограниченная машина Больцмана была построена в 1986 году Полом Смоленски под названием Harmonium[1], но приобрела популярность только после изобретения Хинтоном быстрых алгоритмов обучения в середине 2000-х годов.
Такое название машина приобрела как модификация обычной машины Больцмана, в которой нейроны разделили на видимые и скрытые, а связи допустимы только между нейронами разного типа, таким способом ограничив связи. Значительно позже, в 2000-х годах, ограниченные машины Больцмана приобрели большую популярность и стали рассматриваться уже не как вариации машины Больцмана, а как особые компоненты в архитектуре сетей глубинного обучения. Объединение нескольких каскадов ограниченных машин Больцмана формирует глубокую сеть доверия, особый вид многослойных нейронных сетей, которые могут самообучаться без учителя при помощи алгоритма обратного распространения ошибки[2].
Особенностью ограниченных машин Больцмана является возможность проходить обучение без учителя, но в определённых приложениях ограниченные машины Больцмана обучаются с учителем. Скрытый слой машины представляет собой глубокие признаки в данных, которые выявляются в процессе обучения (см. также Data mining).
Ограниченные машины Больцмана имеют широкий спектр применений — это задачи снижения размерности данных[3], задачи классификации[4], коллаборативная фильтрация[5], выделение признаков (Шаблон:Lang-en)[6] и тематическое моделирование[7].
В ограниченной машине Больцмана нейроны образуют двудольный граф, с одной стороны графа находятся видимые нейроны (вход), а с другой стороны — скрытые, причём перекрёстные связи устанавливаются между каждым видимым и каждым скрытым нейроном. Такая система связей позволяет применить при обучении сети метод градиентного спуска с контрастивной дивергенцией[8].
Структура сети
Ограниченная машина Больцмана базируется на бинарных элементах с распределением Бернулли, составляющие видимый и скрытый слои сети. Связи между слоями задаются с помощью матрицы весов (размера m × n), а также смещений для видимого слоя и для скрытого слоя.
Вводится понятие энергии сети Шаблон:Math как
или в матричной форме
Подобной функцией энергии обладает также Сеть Хопфилда. Как и для обычной машины Больцмана, через энергию определяется вероятность распределения на векторах видимого и скрытого слоя[9]:
где — статсумма, определяемая как для всех возможных сетей (иными словами, — константа нормализации, которая гарантирует, что сумма всех вероятностей равна единице). Определение вероятности для отдельного входного вектора (маргинальное распределение) проводится аналогично через сумму конфигураций всевозможных скрытых слоёв[9]:
По причине структуры сети как двудольного графа, отдельные элементы скрытого слоя независимы друг от друга и активируют видимый слой, и наоборот отдельные элементы видимого слоя независимы друг от друга и активируют скрытый слой[8]. Для видимых элементов и для скрытых элементов условные вероятности Шаблон:Mvar определяются через произведения вероятностей Шаблон:Mvar:
и наоборот условные вероятности Шаблон:Mvar определяются через произведение вероятностей Шаблон:Mvar:
Конкретные вероятности активации для одного элемента определяются как
- и
где — логистическая функция для активации слоя.
Видимые слои могут иметь также мультиномиальное распределение, в то время как скрытые слои распределены по Бернулли. В случае мультиномиальности вместо логистической функции используется softmax:
где K — количество дискретных значений видимых элементов. Такое представление используется в задачах тематического моделирования[7] и в рекомендательных системах[5].
Связь с другими моделями
Ограниченная машина Больцмана представляет собой частный случай обычной машины Больцмана и марковской сети[10][11]. Их графовая модель соответствует графовой модели факторного анализа[12].
Алгоритм обучения
Целью обучения является максимизация вероятности системы с заданным набором образцов (матрицы, в которой каждая строка соответствует одному образцу видимого вектора ), определяемой как произведение вероятностей
или же, что одно и то же, максимизации логарифма произведения:[10][11]
Для тренировки нейронной сети используется алгоритм контрастивной дивергенции (CD) с целью нахождения оптимальных весов матрицы , его предложил Джеффри Хинтон, первоначально для обучения моделей PoE («произведение экспертных оценок»)[13][14]. Алгоритм использует семплирование по Гиббсу для организации процедуры градиентного спуска, аналогично методу обратного распространения ошибок для нейронных сетей.
В целом один шаг контрастивной дивергенции (CD-1) выглядит следующим образом:
- Для одного образца данных Шаблон:Mvar вычисляются вероятности скрытых элементов и применяется активация для скрытого слоя Шаблон:Mvar для данного распределения вероятностей.
- Вычисляется внешнее произведение (семплирование) для Шаблон:Mvar и Шаблон:Mvar, которое называют позитивным градиентом.
- Через образец Шаблон:Mvar проводится реконструкция образца видимого слоя Шаблон:Mvar, а потом выполняется снова семплирование с активацией скрытого слоя Шаблон:Mvar. (Этот шаг называется Семплирование по Гиббсу.)
- Далее вычисляется внешнее произведение, но уже векторов Шаблон:Mvar и Шаблон:Mvar, которое называют негативным градиентом.
- Матрица весов поправляется на разность позитивного и негативного градиента, помноженного на множитель, задающий скорость обучения: .
- Вносятся поправки в биасы Шаблон:Mvar и Шаблон:Mvar похожим способом: , .
Практические указания по реализации процесса обучения можно найти на личной странице Джеффри Хинтона[9].
См. также
Ссылки
Литература
- Introduction to Restricted Boltzmann Machines Шаблон:Wayback. Edwin Chen’s blog, July 18, 2011.
- A Beginner’s Guide to Restricted Boltzmann Machines. Deeplearning4j Documentation
- Understanding RBMs. Deeplearning4j Documentation, August 4, 2015.
- Python implementation Шаблон:Wayback of Bernoulli RBM and tutorial Шаблон:Wayback
- SimpleRBM Шаблон:Wayback is a very small RBM code (24kB) useful for you to learn about how RBMs learn.
Шаблон:Нейросети Шаблон:Машинное обучение
- ↑ Шаблон:Cite webШаблон:Cite web
- ↑ Шаблон:Статья
- ↑ Шаблон:Статья
- ↑ Шаблон:Cite conference
- ↑ 5,0 5,1 Шаблон:Cite conference
- ↑ Шаблон:Cite conference
- ↑ 7,0 7,1 Ruslan Salakhutdinov and Geoffrey Hinton (2010). Replicated softmax: an undirected topic model Шаблон:Wayback. Neural Information Processing Systems 23
- ↑ 8,0 8,1 Miguel Á. Carreira-Perpiñán and Geoffrey Hinton (2005). On contrastive divergence learning. Artificial Intelligence and Statistics.
- ↑ 9,0 9,1 9,2 Geoffrey Hinton (2010). A Practical Guide to Training Restricted Boltzmann Machines Шаблон:Wayback. UTML TR 2010—003, University of Toronto.
- ↑ 10,0 10,1 Шаблон:Статья
- ↑ 11,0 11,1 Asja Fischer and Christian Igel. Training Restricted Boltzmann Machines: An Introduction. Шаблон:Wayback. Pattern Recognition 47, p. 25—39, 2014.
- ↑ Шаблон:СтатьяШаблон:Недоступная ссылка
- ↑ Geoffrey Hinton (1999). Products of Experts Шаблон:Wayback. ICANN 1999.
- ↑ Шаблон:Статья