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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Ограниченная машина Больцмана

Ограниченная машина Больцмана (англ. restricted Boltzmann machine), сокращённо RBM — вид генеративной стохастической нейронной сети, которая определяет распределение вероятности на входных образцах данных.

Первая ограниченная машина Больцмана была построена в 1986 году Полом Смоленски под названием Harmonium[1], но приобрела популярность только после изобретения Хинтоном быстрых алгоритмов обучения в середине 2000-х годов.

Такое название машина приобрела как модификация обычной машины Больцмана, в которой нейроны разделили на видимые и скрытые, а связи допустимы только между нейронами разного типа, таким способом ограничив связи. Значительно позже, в 2000-х годах, ограниченные машины Больцмана приобрели большую популярность и стали рассматриваться уже не как вариации машины Больцмана, а как особые компоненты в архитектуре сетей глубинного обучения. Объединение нескольких каскадов ограниченных машин Больцмана формирует глубокую сеть доверия, особый вид многослойных нейронных сетей, которые могут самообучаться без учителя при помощи алгоритма обратного распространения ошибки.[2]

Особенностью ограниченных машин Больцмана является возможность проходить обучение без учителя, но в определённых приложениях ограниченные машины Больцмана обучаются с учителем. Скрытый слой машины представляет собой глубокие признаки в данных, которые выявляются в процессе обучения (см. также Data mining).

Ограниченные машины Больцмана имеют широкий спектр применений — это задачи снижения размерности данных,[3] задачи классификации,[4] коллаборативная фильтрация,[5] выделение признаков (англ. feature learning)[6] и тематическое моделирование.[7]

В ограниченной машине Больцмана нейроны образуют двудольный граф, с одной стороны графа находятся видимые нейроны (вход), а с другой стороны — скрытые, причём перекрёстные связи устанавливаются между каждым видимым и каждым скрытым нейроном. Такая система связей позволяет применить при обучении сети метод градиентного спуска с контрастивной дивергенцией.[8]

Структура сети[править | править код]

Ограниченная машина Больцмана базируется на бинарных элементах с распределением Бернулли, составляющие видимый и скрытый слои сети. Связи между слоями задаются с помощью матрицы весов (размера m × n), а также смещений для видимого слоя и для скрытого слоя.

Вводится понятие энергии сети (v, h) как

или в матричной форме

Подобной функцией энергии обладает также Сеть Хопфилда. Как и для обычной машины Больцмана, через энергию определяется вероятность распределения на векторах видимого и скрытого слоя:[9]

где  — статсумма, определяемая как для всех возможных сетей (иными словами,  — константа нормализации, которая гарантирует, что сумма всех вероятностей равна единице). Определение вероятности для отдельного входного вектора (маргинальное распределение) проводится аналогичено через сумму конфигураций всевозможных скрытых слоёв:[9]

По причине структуры сети как двудольного графа, отдельные элементы скрытого слоя независимы друг от друга и активируют видимый слой, и наоборот отдельные элементы видимого слоя независимы друг от друга и активируют скрытый слой.[8] Для видимых элементов и для скрытых элементов условные вероятности v определяются через произведения вероятностей h:

и наоборот условные вероятности h определяются через произведение вероятностей v:

Конкретные вероятности активации для одного элемента определяются как

и

где  — логистическая функция для активации слоя.

Видимые слои могут иметь также мультиномиальное распределение, в то время как скрытые слои распределены по Бернулли. В случае мультиномиальности вместо логистической функции используется softmax:

где K — количество дискретных значений видимых элементов. Такое представление используется в задачах тематического моделирования[7] и в рекомендательных системах.[5]

Связь с другими моделями[править | править код]

Ограниченная машина Больцмана представляет собой частный случай обычной машины Больцмана и марковской сети.[10][11]

Алгоритм обучения[править | править код]

Целью обучения является максимизация вероятности системы с заданным набором образцов (матрицы, в которой каждая строка соответствует одному образцу видимого вектора) ), определяемой как произведение вероятностей

или же, что одно и то же, максимизации логарифма произведения:[10][11]

Для тренировки нейронной сети используется алгоритм контрастивной дивергенции (CD) с целью нахождения оптимальных весов матрицы , его предложил Джеффри Хинтон, первоначально для обучения моделей PoE («произведение экспертных оценок»).[12][13] Алгоритм использует семплирование по Гиббсу для организации процедуры градиентного спуска, аналогично методу обратного распространения ошибок для нейронных сетей.

В целом один шаг контрастивной дивергенции (CD-1) выглядит следующим образом:

  1. Для одного образца данных v вычисляются вероятности скрытых элементов и применяется активация для скрытого слоя h для данного распределения вероятностей.
  2. Вычисляется внешнее произведение (семплирование) для v и h, которое называют позитивным градиентом.
  3. Через образец h проводится реконструкция образца видимого слоя v', а потом выполняется снова семплирование с активацией скрытого слоя h'. (Этот шаг называется Семплирование по Гиббсу.)
  4. Далее вычисляется внешнее произведение, но уже векторов v' и h', которое называют негативным градиентом.
  5. Матрица весов поправляется на разность позитивного и негативного градиента, помноженного на множитель, задающий скорость обучения: .
  6. Вносятся поправки в биасы a и b похожим способом: , .

Практические указания по реализации процесса обучения можно найти на личной странице Джеффри Хинтона.[9]

См. также[править | править код]

Ссылки[править | править код]

  1. Smolensky, Paul. Chapter 6: Information Processing in Dynamical Systems: Foundations of Harmony Theory // Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations. — MIT Press, 1986. — P. 194–281. — ISBN 0-262-68053-X.
  2. Hinton, G. (2009). “Deep belief networks”. Scholarpedia. 4 (5): 5947. DOI:10.4249/scholarpedia.5947.
  3. Hinton, G. E.; Salakhutdinov, R. R. (2006). “Reducing the Dimensionality of Data with Neural Networks” (PDF). Science. 313 (5786): 504—507. DOI:10.1126/science.1127647. PMID 16873662.
  4. (2008) "Classification using discriminative restricted Boltzmann machines" in Proceedings of the 25th international conference on Machine learning - ICML '08.: 536. DOI:10.1145/1390156.1390224. 
  5. 1 2 (2007) "Restricted Boltzmann machines for collaborative filtering" in Proceedings of the 24th international conference on Machine learning - ICML '07.: 791. DOI:10.1145/1273496.1273596. 
  6. (2011) "An analysis of single-layer networks in unsupervised feature learning" in International Conference on Artificial Intelligence and Statistics (AISTATS).. 
  7. 1 2 Ruslan Salakhutdinov and Geoffrey Hinton (2010). Replicated softmax: an undirected topic model. Neural Information Processing Systems 23.
  8. 1 2 Miguel Á. Carreira-Perpiñán and Geoffrey Hinton (2005). On contrastive divergence learning. Artificial Intelligence and Statistics.
  9. 1 2 3 Geoffrey Hinton (2010). A Practical Guide to Training Restricted Boltzmann Machines. UTML TR 2010–003, University of Toronto.
  10. 1 2 Sutskever, Ilya; Tieleman, Tijmen (2010). “On the convergence properties of contrastysive divergence” (PDF). Proc. 13th Int'l Conf. on AI and Statistics (AISTATS). Проверено 2017-11-10.
  11. 1 2 Asja Fischer and Christian Igel. Training Restricted Boltzmann Machines: An Introduction. Архивная копия от 10 июня 2015 на Wayback Machine. Pattern Recognition 47, p. 25—39, 2014.
  12. Geoffrey Hinton (1999). Products of Experts. ICANN 1999.
  13. Hinton, G. E. (2002). “Training Products of Experts by Minimizing Contrastive Divergence” (PDF). Neural Computation. 14 (8): 1771—1800. DOI:10.1162/089976602760128018. PMID 12180402.

Литература[править | править код]