В предыдущей статье этой серии я рассказал, как мы можем использовать контрастную дивергенцию при обучении сети хопфилда, как добавление шума к переходам между состояниями делает сеть хопфилда более устойчивой к непреднамеренным минимумам и как добавление скрытых единиц увеличивает потенциал сети моделировать сложные узоры.

Мы закончили кратким выводом о том, что стохастическую сеть Хопфилда со скрытыми элементами также можно назвать машиной Больцмана, что является темой этого эпизода.

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

Подведение итогов:

Для начала я кратко повторю общий обзор стандартной машины Больцмана.

Архитектура машины Больцмана представляет собой полносвязную сеть с симметричными весами и необязательными смещениями.

Машина Больцмана — это основанная на энергии модель, которая эволюционирует в более низкие энергетические состояния с помощью стохастического правила обновления Хеббиана.

Правило обновления Хебба — это локальное правило обучения, которое сравнивает значение нейрона с выходными данными функции активации, которая учитывает взвешенную сумму каждого связанного веса и текущего значения нейрона. Если знаки совпадают между двумя совпадениями, значение узла равно перевернуто, в противном случае состояние сохраняется. Правило становится стохастическим, когда, вероятностно, значение переворачивается независимо от выходных данных правила обновления.

Мы обучаем сеть, используя контрастное обучение, используя динамику энергии системы.

Наконец, каждый нейрон в машине Больцмана является либо видимым нейроном, нейронами, которые вносят вклад в паттерн, либо скрытым нейроном, нейронами, которые не вносят вклад в паттерн.

Обучение машине Больцмана:

Хорошо, теперь, когда мы догнали, давайте поговорим о некоторых проблемах обучения машин Больцмана.

Без скрытых нейронов для обучения нашей сети все, что нам нужно было сделать для положительного члена алгоритма, — это вычислить среднее значение каждого нейрона в каждой позиции.

Это работало, потому что каждый нейрон соответствовал значению в шаблоне — было только одно желаемое состояние сети по отношению к каждому шаблону. Когда добавляются скрытые нейроны, это уже не так, теперь есть несколько допустимых состояния сети, каждое из которых содержит в качестве подмножества желаемый шаблон.

Это создает серьезную проблему для сложности обучения машин Больцмана. Вычисление минимальных энергий для каждой комбинации допустимых конфигураций паттернов будет неразрешимой задачей.

В результате нам нужно будет сделать все возможное, чтобы аппроксимировать каждый возможный паттерн, расширив обучающие данные множеством случайно сгенерированных скрытых состояний юнитов для каждого видимого юнит-состояния. Для этого мы будем многократно генерировать обучающие пакеты как для положительных, так и для отрицательных условий и применять градиентную оптимизацию.

Прохождение псевдокода:

Будет фаза «фиксации», когда значения видимых нейронов фиксируются на месте. И «незажатая» фаза, когда видимые значения нейронов изменчивы.

Во время зажатой фазы:

Учитывая шаблон обучения, мы случайным образом инициализируем скрытые нейроны и позволяем сети стохастически развиваться до минимума, что дает нам одну пару видимых и скрытых единиц.

Используя тот же шаблон, мы будем повторять этот процесс случайной инициализации скрытых нейронов и развития до минимума несколько раз в зависимости от того, насколько точно мы решим аппроксимировать каждый шаблон.

На этапе разблокировки мы будем инициализировать сеть в каждом шаблоне со случайными скрытыми единицами, как и раньше, но на этот раз мы позволим развиваться всей сети.

Как только количество образцов будет соответствовать размеру нашей партии, мы применим обновление к весам, используя сгенерированные образцы.

Теперь мы будем повторять весь этот процесс до тех пор, пока производительность нашей сети не сойдется или не достигнет какой-либо метрики производительности.

Ограниченные машины Больцмана (RBM):

Хотя этот алгоритм в конечном итоге эффективен для аппроксимации целевого распределения, он очень затратен в вычислительном отношении — и мы можем внести простое изменение в архитектуру сети, которое значительно снизит эти затраты.

Изменение, о котором я говорю, — это «ограничение» сети или преобразование ее в двудольный граф. На этом графике скрытые нейроны составляют один слой, видимые нейроны составляют другой слой, и ни один узел в одном слое не имеет общего соединения.

Как это улучшит тренировочный процесс?

В то время как в полностью подключенной машине Больцмана было несколько приемлемых сетевых конфигураций для каждого шаблона, мы вернулись к тому, что для каждого шаблона существует только одна оптимальная сетевая конфигурация, как это было до того, как наша сеть включала скрытые элементы. Для каждого фиксированного состояния видимого уровня существует одно состояние скрытого уровня, которое минимизирует энергопотребление сети.

Это означает, что наш процесс обучения больше не должен иметь внутренний цикл, который повторяется много раз, чтобы получить варианты скрытых состояний для каждого шаблона.

Это также означает, что вместо отдельных фаз генерации положительных и отрицательных тренировочных наборов мы можем объединить их в один. Давайте посмотрим на обзор алгоритма обучения RBM:

На единственной фазе обучения мы случайным образом инициализируем видимые единицы шаблоном, а скрытые единицы. Затем мы применяем выборку Гиббса к сети, в которой мы итерируем туда и обратно между минимизацией энергии для каждого слоя.

Обратите внимание, что мы начинаем с настройки значений скрытых нейронов, это на самом деле дает нам пару видимых и скрытых значений для нашего первого термина!

После продолжения и повторения многих других шагов окончательная пара видимых и скрытых значений принимается за наш второй член. Повторяя множество шагов, мы позволили сети в целом дрейфовать к энергетической «долине», как мы упоминали в предыдущем видео. Поэтому, когда мы максимизируем энергию для этой пары, мы поднимаем эту долину.

Использование сетей Хопфилда и машин Больцмана

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

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

Как упоминалось в предыдущих видеороликах, каждая модель может выступать в качестве системы памяти с адресацией содержимого, где неполные или поврежденные шаблоны могут быть предоставлены в качестве входных данных для извлечения полных шаблонов.

Для классификации и регрессии выходные данные могут быть включены как часть обучающих данных, формируя совместное распределение входных признаков и, возможно, меток классов.

RBM известны своим использованием в премии Netflix 2009 года, где они были применены к задаче совместной фильтрации. По сути, RBM были обучены оценивать вероятность того, что пользователям понравятся непросмотренные фильмы, учитывая оценки, которые они дали предыдущим фильмам.

Машины Больцмана также можно использовать в некоторых сценариях для генерации новых данных, представляющих распределение, на котором они были обучены.

Более глубокие представления

Изобретение машины Больцмана и переход к RBM были важны не только потому, что они улучшили современное состояние статистического моделирования, но и потому, что это была первая широко признанная модель, в которой особое внимание уделялось использованию скрытых представлений.

Доказано, что скрытые функции позволяют машине Больцмана моделировать распределения по видимым векторам состояния, которые нельзя смоделировать с помощью прямых парных взаимодействий видимых единиц.

Такие модели, как глубокая машина Больцмана, глубокая сеть убеждений и машина Гельмгольца, продолжили эту тенденцию к более глубоким моделям в неконтролируемом репрезентативном обучении — и я буду исследовать их в следующей статье этой серии.

Если вы нашли эту статью полезной, пожалуйста, поставьте лайк и рассмотрите возможность подписки.

Видео формы этих статей можно найти на моем канале youtube: youtube.com/watch?v=ZBGYUtng2uk&t=1s