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

Cur*_*ous 5 python numpy machine-learning neural-network rbm

语境:

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

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

在此输入图像描述

问题:

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

在此输入图像描述

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

先感谢您.

Fre*_*Foo 8

符号X ~ N(μ,σ²)表示X正态分布为均值μ和方差σ²,因此在RBM训练程序中,v应该从这样的分布中采样.用NumPy来说,就是这样

v = sigma * np.random.randn(v_size) + b + sigma * W.dot(h)
Run Code Online (Sandbox Code Playgroud)

或者scipy.stats.norm用于更好的可读代码.