上下文:
我正在实现高斯伯努利 RBM,它类似于流行的 RBM,但具有实值可见单元。
是的,两者对隐藏值 p(h=1|v)
进行采样的过程是相同的,即
问题:
我的问题在于编码(使用 Python)p(v|h)
,即,
我对 N() 的工作原理有点困惑。我是否只是将使用数据标准偏差的高斯噪声添加到 b + sigma * W.dot(h)
?
提前谢谢你。
最佳答案
符号 X ~ N(μ, σ²) 表示 X 服从均值 μ 和方差 σ² 的正态分布,因此在RBM 训练例程,v 应该从这样的分布中采样。用 NumPy 的术语来说,就是
v = sigma * np.random.randn(v_size) + b + sigma * W.dot(h)
或者使用 scipy.stats.norm
以获得更好的可读代码。
关于python - (Python) 高斯伯努利 RBM 计算 P(v|h),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690163/