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

标签 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)

提前谢谢你。

最佳答案

符号 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/

相关文章:

python - 如何避免具有多列的 numpy 数组的总和精度较低

python - 与 GPU 上的 torch.FloatTensor 进行比较的优雅方式

machine-learning - 预处理已转换为数字的分类数据

machine-learning - 多标签分类 Keras 指标

python - 从 spark 数据框中获取 n 行并传递给 toPandas()

python - 如何在 python 中截断浮点不精确

python - 如何避免稀疏矩阵的循环?

python - 如何使用旧数据框中的信息预测新Python数据框中的列值

python - 或者列表理解中的条件

python - 为什么 Python 升级到 3.8 后 Pip 无法运行?