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

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

Ограниченная машина Больцмана (англ. 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]

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

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

или же, что одно и тo же, максимизации логарифма произведения:[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. (2009) «Deep belief networks». Scholarpedia 4 (5): 5947. DOI:10.4249/scholarpedia.5947.
  3. (2006) «Reducing the Dimensionality of Data with Neural Networks». 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 (2010) «On the convergence properties of contrastysive divergence». Proc. 13th Int'l Conf. on AI and Statistics (AISTATS).
  11. 1 2 Asja Fischer and Christian Igel. Training Restricted Boltzmann Machines: An Introduction. Pattern Recognition 47, pp. 25-39, 2014
  12. Geoffrey Hinton (1999). Products of Experts. ICANN 1999.
  13. (2002) «Training Products of Experts by Minimizing Contrastive Divergence». Neural Computation 14 (8): 1771–1800. DOI:10.1162/089976602760128018. PMID 12180402.

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