python numpy machine-learning neural-network rbm

(Python) Gaussian Bernoulli RBM en informática P(v | h)



numpy machine-learning (1)

La notación X ~ N (μ, σ²) significa que X se distribuye normalmente con media μ y varianza σ², por lo que en la rutina de entrenamiento RBM, v debe tomarse como muestra de dicha distribución. En términos de NumPy, eso es

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

O use scipy.stats.norm para obtener un mejor código legible.

Contexto:

Estoy implementando Gaussian Bernoulli RBM, es como el popular RBM pero con unidades visibles de valor real.

Es cierto que el procedimiento de muestreo de valores ocultos p(h=1|v) es el mismo para ambos, es decir,

Problema:

Mi problema está en la codificación (usando Python) p(v|h) , que es,

Estoy un poco confundido sobre cómo funciona N () . ¿Simplemente agrego ruido gaussiano usando la desviación estándar de los datos a b + sigma * W.dot(h) ?

Gracias de antemano.