玻尔兹曼机17 Mar 2025 | 5 分钟阅读 玻尔兹曼机指的是一致关联的神经元样结构的组合,这些结构对是否开启或关闭做出假设性决定。玻尔兹曼机由著名科学家 Geoffrey Hinton 和 Terry Sejnowski 于 1985 年发明。玻尔兹曼机具有基本的学习算法,使它们能够找到代表训练数据中复杂规律的令人兴奋的特征。学习算法在具有多层特征检测器的网络中通常很慢,但在具有单层特征检测器的“受限玻尔兹曼机”中速度很快。通过构建玻尔兹曼机,利用一个的特征激活作为下一个的训练数据,可以有效地适应许多隐藏层。 玻尔兹曼机用于解决两个不同的计算问题。首先,对于搜索问题,协会的权重是固定的,并用于表示成本函数。玻尔兹曼机的随机动力学允许它对具有成本函数最小值的二元状态向量进行采样。其次,对于学习问题,玻尔兹曼机指示了一组二元数据向量,并且必须弄清楚如何以高概率生成这些向量。为了解决这个问题,它必须发现协会的权重,以便相对于其他可能的二元向量,数据向量具有成本函数的最小值。为了解决学习问题,玻尔兹曼机对其权重进行多次小更新,并且每次更新都希望它们解决范围广泛的搜索问题。 玻尔兹曼机的随机动力学当单元 i 有机会更新其二元状态时,它首先计算其绝对输入,pi ,这是其自身偏差 qi 以及来自其他活动单元的关联权重的总和 Pi = qi + ?jmj wij 其中, wij = 它是 i 和 j 之间的关联权重,当单元 j 开启时,mj 为 1。单元 i 以 logistic 函数给出的概率开启 ![]() 如果单元以任何不依赖于其总输入的顺序依次更新,则网络最终将达到玻尔兹曼分布(也称为平衡或平稳分布),其中给定状态向量 k 的概率完全由该状态向量的“能量”与所有可能的二元状态向量的能量相比确定 ![]() 与 Hopfield 网络一样,状态向量 k 的能量定义为 ![]() 其中,sik 是状态向量 k 分配给单元 i 的二元状态。如果协会的权重被选择为使状态向量的能量代表那些状态向量的成本,则玻尔兹曼机的随机动力学可以被视为一种在寻找低成本解决方案的同时摆脱不良局部最优值的方法。单元 i 的总输入 pi 表示取决于单元是关闭还是开启的能量差异,并且单元 i 有时开启即使 pi 为负数也意味着能量有时会在搜索过程中增加,因此允许搜索跳过能量障碍。可以通过使用模拟退火来升级搜索。它将所有权重和能量按因子 T 缩小,这相当于物理网络的温度。通过将 T 从相当大的初始值最小化到小的最终值,可以受益于高温下的快速平衡,并且仍然具有最终平衡分布,该分布使得最小解决方案比高成本解决方案更有可能。在零温度下,更新规则变为确定性的,并且玻尔兹曼机转换为 Hopefield 网络。 不同类型的玻尔兹曼机 学习规则可以保持更复杂的能量函数。例如,二次能量函数可以替换为具有公共项 si sj sk wijk 的能量函数。用于更新规则的总输入 i 必须替换为 ![]() 学习规则中的重大变化是 si sj 被 si sj sk 替换。玻尔兹曼机对数据向量的分布进行建模。但是,存在一个基本扩展,即用于对条件分布进行建模的“条件玻尔兹曼机”。可见单元和隐藏单元之间的显着区别在于,当采样 (si sj) 数据时,可见单元被钳制,而隐藏单元可能未被钳制。如果在采样 ) (si sj) 模型时钳制可见单元的子集,则此子集充当“输入”单元,其余可见单元充当“输出”单元。 学习速度在具有多个隐藏层的玻尔兹曼机中,学习通常非常慢,因为庞大的网络可能需要很长时间才能接近其平衡分布,尤其是在权重很大且平衡分布高度多模态时。当可以从平衡分布中获取样本时,学习信号非常嘈杂,因为它是两个采样期望之间的差异。可以通过限制网络,简化学习算法以及一次学习一个隐藏层来克服这些问题。 受限玻尔兹曼机由 Smolensky 于 1986 年发明的受限玻尔兹曼机。它包括一层可见单元和一层没有可见-可见或隐藏-隐藏关联的隐藏单元。有了这些限制,给定一个可见向量,隐藏单元是临时自治的,因此可以在一个并行步骤中获得无偏样本形式 (si sj) 数据。为了采样形式 (si sj)模型 仍然需要不同的迭代,这些迭代在并行恢复所有隐藏单元和并行恢复所有可见单元之间进行替换。但是,如果 (si sj)模型 被 (si sj)重建替换,学习仍然运行良好,(si sj)重建 获得如下 从可见单元上的数据向量开始,并行恢复所有隐藏单元。 并行更新所有可见单元以获得重建。 再次更新所有隐藏单元。 下一个主题神经网络分类器 |
我们请求您订阅我们的新闻通讯以获取最新更新。