Spec-Zone.ru › scikit-learn

2.9. Модели нейронных сетей (обучение без учителя)

2.9.1. Ограниченные машины Больцмана

Ограниченные машины Больцмана (RBM) — это нелинейные алгоритмы обучения признаков без учителя, основанные на вероятностной модели. Признаки, извлечённые с помощью RBM или иерархии RBM, часто дают хорошие результаты при подаче на вход линейному классификатору, например линейному SVM или перцептрону.

Модель делает предположения относительно распределения входных данных. На данный момент scikit-learn предоставляет только BernoulliRBM, которая предполагает, что входные данные являются либо двоичными значениями, либо значениями от 0 до 1, каждое из которых кодирует вероятность включения соответствующего признака.

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

Этот метод приобрёл популярность благодаря использованию весов независимых RBM для инициализации глубоких нейронных сетей. Такой метод называется предварительным обучением без учителя.

../_images/sphx_glr_plot_rbm_logistic_classification_001.png

Примеры

  • Признаки ограниченной машины Больцмана для классификации цифр

2.9.1.1. Графическая модель и параметризация

Графическая модель RBM представляет собой полный двудольный граф.

../_images/rbm_graph.png

Узлы — это случайные переменные, состояния которых зависят от состояний других узлов, с которыми они соединены. Таким образом, параметры модели задаются весами связей, а также одним свободным членом (смещением) для каждого видимого и скрытого узла; для простоты на изображении они не показаны.

Функция энергии измеряет качество совместного назначения:

\[E(\mathbf{v}, \mathbf{h}) = -\sum_i \sum_j w_{ij}v_ih_j - \sum_i b_iv_i - \sum_j c_jh_j\]

В приведённой выше формуле \(\mathbf{b}\) и \(\mathbf{c}\) — это векторы свободных членов для видимого и скрытого слоёв соответственно. Совместная вероятность модели определяется через энергию:

\[P(\mathbf{v}, \mathbf{h}) = \frac{e^{-E(\mathbf{v}, \mathbf{h})}}{Z}\]

Слово ограниченная указывает на двудольную структуру модели, которая исключает прямое взаимодействие между скрытыми узлами и между видимыми узлами. Это означает, что предполагается выполнение следующих условных независимостей:

\[\begin{split}h_i \bot h_j | \mathbf{v} \\ v_i \bot v_j | \mathbf{h}\end{split}\]

Двудольная структура позволяет использовать эффективную блочную выборку по Гиббсу для вывода.

2.9.1.2. Ограниченные машины Больцмана Бернулли

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

Условное распределение вероятностей для каждого узла задаётся логистической сигмоидной функцией активации от поступающего на него входа:

\[\begin{split}P(v_i=1|\mathbf{h}) = \sigma(\sum_j w_{ij}h_j + b_i) \\ P(h_i=1|\mathbf{v}) = \sigma(\sum_i w_{ij}v_i + c_j)\end{split}\]

где \(\sigma\) — логистическая сигмоидная функция:

\[\sigma(x) = \frac{1}{1 + e^{-x}}\]

2.9.1.3. Обучение методом стохастического максимального правдоподобия

Алгоритм обучения, реализованный в BernoulliRBM, называется стохастическим максимальным правдоподобием (SML) или персистентным контрастивным расхождением (PCD). Непосредственная оптимизация максимального правдоподобия невозможна из-за вида функции правдоподобия данных:

\[\log P(v) = \log \sum_h e^{-E(v, h)} - \log \sum_{x, y} e^{-E(x, y)}\]

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

При максимизации логарифма правдоподобия положительный градиент заставляет модель отдавать предпочтение скрытым состояниям, совместимым с наблюдаемыми обучающими данными. Благодаря двудольной структуре RBM его можно вычислить эффективно. Однако отрицательный градиент вычислить невозможно. Его цель — снизить энергию совместных состояний, которым модель отдаёт предпочтение, тем самым обеспечив её соответствие данным. Его можно аппроксимировать методом Монте-Карло по марковским цепям с помощью блочной выборки по Гиббсу, итеративно выбирая \(v\) и \(h\) поочерёдно при фиксированном другом значении, пока цепь не перемешается. Сгенерированные таким образом образцы иногда называют частицами-фантазмами. Этот процесс неэффективен, и определить, перемешалась ли марковская цепь, трудно.

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

Персистентное контрастивное расхождение решает эту проблему. Вместо того чтобы каждый раз при вычислении градиента запускать новую цепь и выполнять лишь один шаг выборки по Гиббсу, в PCD поддерживается несколько цепей (частиц-фантазмов), которые обновляются на \(k\) шагов выборки по Гиббсу после каждого обновления весов. Это позволяет частицам более тщательно исследовать пространство.

Литература

  • «Быстрый алгоритм обучения для глубоких сетей убеждений», G. Hinton, S. Osindero, Y.-W. Teh, 2006
  • «Обучение ограниченных машин Больцмана с использованием приближений градиента правдоподобия», T. Tieleman, 2008

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/neural_networks_unsupervised.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API