在 RBM 中,在更新隐藏层(也应该是二进制的)的正阶段,[实际上考虑 h1 ∈ H(隐藏层向量)的节点] 使 h1 成为二进制数,我们计算打开隐藏层的概率通过在总输入上操作激活函数来单位(在激活函数操作之后,我们将获得介于 0 和 1 之间的值,因为我正在使用激活函数 - sigmoid)。我的疑问是我们如何通过利用计算的概率使其二进制化。我不认为如果 P>=0.5,将其设为 1,否则 0 是一种合适的工作方法。
通过一些文献评论,我在第 3.1 节找到了这个文件(由 Hinton 撰写):他说“如果这个概率大于均匀分布在 0 和 1 之间的随机数,则隐藏单元打开”。这实际上意味着什么?而且在这个链接中,他们说“如果在 0 和 1 之间选择 s 均匀分布的随机数,我们发现它的值小于 sig[j],那么第 j 个单元是打开的。否则它是关闭的。” 这个我其实没看懂。对于所有 h ∈ H 生成的随机数是否相同?另一个问题是,下一次采样迭代中的随机数呢?
我看到了这个视频。只需按照链接观看该点的视频即可。您如何获得该采样数?我们是否必须在 Matlab 中运行 rand() 并获得它?每个 h(i) 是否应该不同(哦不!我认为机器不会正确学习)?每次迭代的随机数是否应该不同,或者所有迭代都可以使用相同的随机数进行比较?