You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算受限玻尔兹曼机(RBM)中隐藏单元的值?

如何计算受限玻尔兹曼机(RBM)中隐藏单元的值?

嘿,这个问题问到点子上了!虽然普通玻尔兹曼机确实是无向的能量模型,没法直接做“正向计算”,但受限玻尔兹曼机(RBM)的特殊结构(同层单元无连接)给了我们高效计算隐藏单元状态的可能,咱一步步拆解:

先明确RBM的核心前提

RBM是二分图结构:可见层(输入层)v和隐藏层h之间全连接,但同层的单元之间没有任何连接。这个特性带来了关键的条件独立性——给定可见层的状态时,所有隐藏单元的状态是相互独立的,反过来也一样。这是我们能单独计算每个隐藏单元的基础。

步骤1:回忆RBM的能量函数

首先,RBM的能量函数定义了可见层和隐藏层组合状态的“合理性”(能量越低,组合状态出现的概率越高):

E(v, h) = -Σ_i a_i v_i - Σ_j b_j h_j - Σ_i Σ_j v_i w_ij h_j
  • a_i:可见单元v_i的偏置
  • b_j:隐藏单元h_j的偏置
  • w_ij:可见单元i和隐藏单元j之间的权重

步骤2:计算隐藏单元的激活概率

因为条件独立性,给定可见层状态v时,单个隐藏单元h_j取1的概率可以单独计算,公式是:

P(h_j=1 | v) = σ(b_j + Σ_i v_i w_ij)

这里的σ是sigmoid激活函数:σ(x) = 1/(1 + e^(-x))。

简单说,这个概率就是隐藏单元被激活的可能性——它由隐藏单元自身的偏置,加上所有可见单元输入与对应权重的加权和共同决定。

步骤3:得到隐藏单元的实际状态

有两种常见方式获取隐藏单元的具体值:

  • 确定性方式:直接以0.5为阈值,概率大于0.5的隐藏单元设为1,否则设为0;
  • 随机性方式:基于计算出的概率做伯努利采样——对每个隐藏单元,生成一个0到1之间的随机数,如果这个数小于P(h_j=1 | v),就将该单元设为1,否则设为0。这种方式更贴合RBM的概率模型本质,尤其是在训练过程中,随机性能帮助模型更好地探索状态空间。

补充你提到的点

你说“添加隐藏单元是为了捕捉更高阶……”完全正确!隐藏单元的作用就是建模可见单元之间的高阶依赖关系——比如处理图像时,隐藏单元可以学习到边缘、纹理这类底层特征的组合,而通过上面的计算,我们就能把原始的可见层输入,映射到这些高阶特征的表示上。

内容的提问来源于stack exchange,提问作者Achraf Oussidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:54:13