Ограниченная машина Больцмана (англ.restricted Boltzmann machine), сокращённо RBM — вид генеративной стохастическойнейронной сети, которая определяет распределение вероятности на входных образцах данных.
Первая ограниченная машина Больцмана была построена в 1986 году Полом Смоленски под названием Harmonium[1], но приобрела популярность только после изобретения Хинтоном быстрых алгоритмов обучения в середине 2000-х годов.
Такое название машина приобрела как модификация обычной машины Больцмана, в которой нейроны разделили на видимые и скрытые, а связи допустимы только между нейронами разного типа, таким способом ограничив связи. Значительно позже, в 2000-х годах, ограниченные машины Больцмана приобрели большую популярность и стали рассматриваться уже не как вариации машины Больцмана, а как особые компоненты в архитектуре сетей глубинного обучения. Объединение нескольких каскадов ограниченных машин Больцмана формирует глубокую сеть доверия, особый вид многослойных нейронных сетей, которые могут самообучаться без учителя при помощи алгоритма обратного распространения ошибки[2].
Особенностью ограниченных машин Больцмана является возможность проходить обучение без учителя, но в определённых приложениях ограниченные машины Больцмана обучаются с учителем. Скрытый слой машины представляет собой глубокие признаки в данных, которые выявляются в процессе обучения (см. также Data mining).
В ограниченной машине Больцмана нейроны образуют двудольный граф, с одной стороны графа находятся видимые нейроны (вход), а с другой стороны — скрытые, причём перекрёстные связи устанавливаются между каждым видимым и каждым скрытым нейроном. Такая система связей позволяет применить при обучении сети метод градиентного спуска с контрастивной дивергенцией[8].
Ограниченная машина Больцмана базируется на бинарных элементах с распределением Бернулли, составляющие видимый и скрытый слои сети. Связи между слоями задаются с помощью матрицы весов (размера m × n), а также смещений для видимого слоя и для скрытого слоя.
Вводится понятие энергии сети (v, h) как
или в матричной форме
Подобной функцией энергии обладает также Сеть Хопфилда. Как и для обычной машины Больцмана, через энергию определяется вероятность распределения на векторах видимого и скрытого слоя[9]:
где — статсумма, определяемая как для всех возможных сетей (иными словами, — константа нормализации, которая гарантирует, что сумма всех вероятностей равна единице). Определение вероятности для отдельного входного вектора (маргинальное распределение) проводится аналогично через сумму конфигураций всевозможных скрытых слоёв[9]:
По причине структуры сети как двудольного графа, отдельные элементы скрытого слоя независимы друг от друга и активируют видимый слой, и наоборот отдельные элементы видимого слоя независимы друг от друга и активируют скрытый слой[8]. Для видимых элементов и для скрытых элементов условные вероятности v определяются через произведения вероятностей h:
и наоборот условные вероятности h определяются через произведение вероятностей v:
Конкретные вероятности активации для одного элемента определяются как
Видимые слои могут иметь также мультиномиальное распределение, в то время как скрытые слои распределены по Бернулли. В случае мультиномиальности вместо логистической функции используется softmax:
Целью обучения является максимизация вероятности системы с заданным набором образцов (матрицы, в которой каждая строка соответствует одному образцу видимого вектора ), определяемой как произведение вероятностей
или же, что одно и то же, максимизации логарифма произведения:[10][11]
В целом один шаг контрастивной дивергенции (CD-1) выглядит следующим образом:
Для одного образца данных v вычисляются вероятности скрытых элементов и применяется активация для скрытого слоя h для данного распределения вероятностей.
Вычисляется внешнее произведение (семплирование) для v и h, которое называют позитивным градиентом.
Через образец h проводится реконструкция образца видимого слоя v', а потом выполняется снова семплирование с активацией скрытого слоя h'. (Этот шаг называется Семплирование по Гиббсу.)
Далее вычисляется внешнее произведение, но уже векторов v' и h', которое называют негативным градиентом.
Матрица весов поправляется на разность позитивного и негативного градиента, помноженного на множитель, задающий скорость обучения: .
Вносятся поправки в биасы a и b похожим способом: , .
Практические указания по реализации процесса обучения можно найти на личной странице Джеффри Хинтона[9].
↑ 12Salakhutdinov, R.; Mnih, A.; Hinton, G. (2007). Restricted Boltzmann machines for collaborative filtering. Proceedings of the 24th international conference on Machine learning - ICML '07. p. 791. doi:10.1145/1273496.1273596. ISBN9781595937933.
↑María Angélica Cueto; Jason Morton; Bernd Sturmfels.Geometry of the restricted Boltzmann machine (неопр.) // Algebraic Methods in Statistics and Probability. — American Mathematical Society, 2010. — Т. 516. — arXiv:0908.4425. (недоступная ссылка)