【问题标题】:(Python) Gaussian Bernoulli RBM on computing P(v|h)(Python) 计算 P(v|h) 的高斯伯努利 RBM
【发布时间】:2014-01-08 12:30:39
【问题描述】:

上下文:

我正在实现高斯伯努利 RBM,它类似于流行的 RBM,但具有实值可见单位。

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

问题:

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

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

提前谢谢你。

【问题讨论】:

  • scipy的方法而言,这个等式就是v = stats.norm.rvs( loc=b + sigma * W.dot(h), scale=sigma ),不知道这里有什么歧义?

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


【解决方案1】:

X ~ N(μ, σ²) 表示 X 服从均值 μ 和方差 σ² 的正态分布,所以在RBM 训练例程,v 应该从这样的分布中抽样。在 NumPy 中,这是

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

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

【讨论】:

    猜你喜欢
    • 2023-02-01
    • 1970-01-01
    • 2011-05-26
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 2016-02-14
    • 2019-06-10
    相关资源
    最近更新 更多