上下文
我正在实施高斯伯努利RBM,它就像流行的RBM,但具有实值可见单位。
确实,隐藏值p(h=1|v)
的采样程序对于两者都是相同的,即
问题:
我的问题在于编码(使用Python)p(v|h)
,即
我对 N()的工作原理有点困惑。我是否只是使用数据的标准偏差将高斯噪声添加到b + sigma * W.dot(h)
?
提前谢谢。
答案 0 :(得分:8)
符号 X 〜 N (μ,σ²)表示 X 通常以均值μ和方差σ2分布,所以在RBM培训例程 v 应该从这样的分发采样。在NumPy术语中,那是
v = sigma * np.random.randn(v_size) + b + sigma * W.dot(h)
或者使用scipy.stats.norm
来获得更好的可读代码。