(Python)高斯伯努利RBM计算P(v | h)

时间:2013-12-19 19:31:45

标签: python numpy machine-learning neural-network rbm

上下文

我正在实施高斯伯努利RBM,它就像流行的RBM,但具有实值可见单位。

确实,隐藏值p(h=1|v)的采样程序对于两者都是相同的,即

enter image description here

问题:

我的问题在于编码(使用Python)p(v|h),即

enter image description here

我对 N()的工作原理有点困惑。我是否只是使用数据的标准偏差将高斯噪声添加到b + sigma * W.dot(h)

提前谢谢。

1 个答案:

答案 0 :(得分:8)

符号 X N (μ,σ²)表示 X 通常以均值μ和方差σ2分布,所以在RBM培训例程 v 应该从这样的分发采样。在NumPy术语中,那是

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

或者使用scipy.stats.norm来获得更好的可读代码。