Машина Больцмана
Это стохастические процессы обучения, имеющие рекуррентную структуру, и они являются основой ранних методов оптимизации, используемых в ИНС. Машина Больцмана была изобретена Джеффри Хинтоном и Терри Сейновски в 1985 году. Большую ясность можно заметить в словах Хинтона о машине Больцмана.
«Удивительной особенностью этой сети является то, что она использует только локально доступную информацию. Изменение веса зависит только от поведения двух единиц, которые оно соединяет, даже если это изменение оптимизирует глобальную меру »- Ackley, Hinton 1985.
Некоторые важные моменты о машине Больцмана -
Они используют повторяющуюся структуру.
Они состоят из стохастических нейронов, которые имеют одно из двух возможных состояний: 1 или 0.
Некоторые из нейронов в этом состоянии адаптивны (свободное состояние), а некоторые зажаты (замороженное состояние).
Если применить моделирование отжига к дискретной сети Хопфилда, то получится машина Больцмана.
Цель машины Больцмана
Основная цель машины Больцмана - оптимизировать решение проблемы. Работа машины Больцмана заключается в оптимизации веса и количества, связанных с этой конкретной проблемой.
Архитектура
На следующей диаграмме показана архитектура машины Больцмана. Из диаграммы видно, что это двумерный массив единиц. Здесь веса на взаимосвязи между блоками равны–p где p > 0. Веса самоподключений даютсяb где b > 0.
Алгоритм обучения
Поскольку мы знаем, что машины Больцмана имеют фиксированные веса, следовательно, не будет алгоритма обучения, поскольку нам не нужно обновлять веса в сети. Однако для тестирования сети мы должны установить веса, а также найти консенсусную функцию (CF).
Машина Больцмана имеет набор агрегатов Ui и Uj и имеет двунаправленные соединения на них.
Мы рассматриваем фиксированный вес, скажем wij.
wij ≠ 0 если Ui и Uj подключены.
Также существует симметрия во взвешенном соединении, т. Е. wij знак равно wji.
wii также существует, т. е. между блоками существует самоподключение.
Для любого подразделения Ui, его состояние ui будет либо 1, либо 0.
Основная цель машины Больцмана - максимизировать функцию консенсуса (CF), которая может быть задана следующим соотношением
$$ CF \: = \: \ displaystyle \ sum \ limits_ {i} \ displaystyle \ sum \ limits_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$
Теперь, когда состояние меняется либо с 1 на 0, либо с 0 на 1, изменение консенсуса может быть задано следующим соотношением:
$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$
Вот ui текущее состояние Ui.
Вариация коэффициента (1 - 2ui) задается следующим соотношением -
$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {cases} +1, & U_ {i} \: is \: current \: off \\ - 1, & U_ {i } \: is \: current \: on \ end {cases} $$
Обычно единица Uiне меняет своего состояния, но если это произойдет, то информация будет храниться локально для модуля. С этим изменением также повысится консенсус сети.
Вероятность того, что сеть примет изменение состояния устройства, определяется следующим соотношением:
$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$
Вот, T- управляющий параметр. Он будет уменьшаться, когда CF достигнет максимального значения.
Алгоритм тестирования
Step 1 - Инициализируйте следующее, чтобы начать обучение -
- Веса, представляющие ограничение проблемы
- Контрольный параметр T
Step 2 - Продолжайте шаги 3-8, если условие остановки не выполняется.
Step 3 - Выполните шаги 4-7.
Step 4 - Предположим, что одно из состояний изменило вес и выберите целое число I, J как случайные значения между 1 и n.
Step 5 - Рассчитайте изменение консенсуса следующим образом:
$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$
Step 6 - Рассчитайте вероятность того, что эта сеть примет изменение состояния
$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$
Step 7 - Примите или отклоните это изменение следующим образом -
Case I - если R < AF, примите изменение.
Case II - если R ≥ AF, отклоните изменение.
Вот, R - случайное число от 0 до 1.
Step 8 - Уменьшите контрольный параметр (температуру) следующим образом -
T(new) = 0.95T(old)
Step 9 - Проверьте условия остановки, которые могут быть следующими:
- Температура достигает заданного значения
- Состояние не меняется за указанное количество итераций.