(Python) Gaussian Бернулли RBM по вычислениям P(v|h)

Контекст:

Я использую Gaussian Bernoulli RBM, он похож на популярный RBM, но с реально видимыми видимыми единицами.

Правда, процедура выборки скрытых значений p(h=1|v) одинаковы для обоих, т.е.

Проблема:

Моя проблема в кодировании (с использованием Python) p(v|h), который,

Я немного смущен тем, как работает N(). Должен ли я просто добавить гауссовский шум, используя стандартное отклонение данных b + sigma * W.dot(h)?

Заранее спасибо.

1 ответ

Решение

Обозначение X ~ N(μ, σ²) означает, что X обычно распределяется со средним значением µ и дисперсией σ², поэтому в программе обучения RBM выборка v должна производиться из такого распределения. С точки зрения NumPy, это

v = sigma * np.random.randn(v_size) + b + sigma * W.dot(h)

Или использовать scipy.stats.norm для лучшего чтения кода.

Другие вопросы по тегам