Gaussian-RBM дает сбой на тривиальном примере
Я хочу иметь четкое представление об ограниченных машинах Больцмана с непрерывными входными переменными. Я пытаюсь придумать самый простой пример, чтобы поведение можно было легко отследить. Итак, вот оно.
Входные данные являются двумерными. Каждая точка данных берется из одного из двух симметричных нормальных распределений (сигма = 0,03), центры которых хорошо разнесены (сигма 15 раз). RBM имеет двухмерный скрытый слой.
Я ожидал получить RBM, который будет генерировать два облака точек с теми же средствами, что и в моих данных поезда. Я даже думал, что после добавления некоторых ограничений разреженности у меня будет скрытый слой, равный (0,1) для данных, взятых из одного распределения, и (1,0) для другого.
Я сам написал код Matlab и попробовал некоторые онлайн-решения (такие как DeepMat: https://github.com/kyunghyuncho/deepmat), но независимо от того, насколько мал мой размер шага, RBM сходится к тривиальному решению, в котором предсказуемое видимое слой равен среднему значению по всем данным. Я пытался увеличить размерность скрытого слоя, но он ничего существенно не меняет. Я также попытался нормализовать данные с нулевым средним и дисперсией - без изменений. У меня также была сигма = 1 вместо 0,03, при сохранении спреда 15*, опять же без изменений.
Поскольку эта проблема присутствует не только в моем коде, но и в других, я подумал, что, возможно, я делаю что-то принципиально неправильное и пытаюсь использовать RBM так, как не следует использовать. Буду признателен за комментарии / предложения, или если кто-то может воспроизвести мою проблему.
1 ответ
Посмотрите здесь для объяснения того, какие функции плотности вероятности над видимыми переменными могут быть выражены с помощью RBM Гаусса-Бернулли. На следующем рисунке показана иллюстрация, где b - видимое смещение, а w1 и w2 - весовые векторы, связанные со скрытыми единицами.
Нажмите на изображение, так как мне нужно больше репутации, чтобы публиковать его напрямую...
Вы видите, что RBM моделирует модель гауссовой смеси с 2^H компонентами, где среднее значение каждого компонента представляет собой суперпозицию видимого смещения и весовых векторов, связанных с подмножеством скрытых единиц. Вес каждого компонента относится к смещению скрытых единиц, которые находятся в этом подмножестве.
Тем не менее, ваша проблема моделирования смеси двух гауссианов может быть лучше всего представлена с помощью RBM с одной скрытой единицей, где видимое смещение равно среднему значению одного компонента и сумме видимых смещений и вектора веса скрытой единицы равен среднему значению второго компонента смеси. Когда в вашем RBM есть два скрытых блока, все становится сложнее, так как этот RBM моделирует гауссову смесь из 4 компонентов.
И даже если ваш RBM имеет только одну скрытую единицу, изучение гауссовой смеси, в которой два компонента находятся далеко друг от друга, может потерпеть неудачу при использовании стратегий обучения, таких как контрастное расхождение и плохо инициализированные веса и смещения.