玻尔兹曼机


这些是具有循环结构的随机学习过程,是 ANN 中使用的早期优化技术的基础。玻尔兹曼机是由 Geoffrey Hinton 和 Terry Sejnowski 于 1985 年发明的。Hinton 关于玻尔兹曼机的言论可以看得更清楚。

“这个网络的一个令人惊讶的特点是它只使用本地可用的信息。重量的变化仅取决于它所连接的两个单元的Behave,即使这种变化优化了全局测量” - Ackley, Hinton 1985。

关于玻尔兹曼机的一些要点 -

  • 他们使用循环结构。

  • 它们由随机神经元组成,具有两种可能状态之一:1 或 0。

  • 其中一些神经元是自适应的(自由状态),一些神经元是被钳制的(冻结状态)。

  • 如果我们在离散 Hopfield 网络上应用模拟退火,那么它将成为玻尔兹曼机。

玻尔兹曼机的目标

玻尔兹曼机的主要目的是优化问题的解决方案。玻尔兹曼机的工作是优化与特定问题相关的权重和数量。

建筑学

下图展示了玻尔兹曼机的架构。从图中可以清楚地看出,它是一个二维单元数组。这里,单元之间互连的权重为–p,其中p > 0自连接的权重由b给出,其中b > 0

玻尔兹曼

训练算法

我们知道玻尔兹曼机具有固定的权重,因此不会有训练算法,因为我们不需要更新网络中的权重。然而,为了测试网络,我们必须设置权重并找到共识函数(CF)。

玻尔兹曼机有一组单元U iU j,并且它们之间有双向连接。

  • 我们正在考虑固定权重w ij

  • 如果U iU j连接,则w ij ≠ 0 。

  • 加权互连也存在对称性,即w ij = w ji

  • w ii也存在,即单元之间存在自连接。

  • 对于任何单元U i,其状态u i要么是 1,要么是 0。

玻尔兹曼机的主要目标是最大化共识函数(CF),可由以下关系式给出

$$CF\:=\:\displaystyle\sum\limits_{i} \displaystyle\sum\limits_{j\leqslant i} w_{ij}u_{i}u_{j}$$

现在,当状态从 1 变为 0 或从 0 变为 1 时,共识的变化可以由以下关系给出 -

$$\Delta CF\:=\:(1\:-\:2u_{i})(w_{ij}\:+\:\displaystyle\sum\limits_{j\neq i} u_{i} w_{ ij})$$

这里u i是U i的当前状态。

系数 ( 1 - 2u i )的变化由以下关系给出 -

$$(1\:-\:2u_{i})\:=\:\begin{cases}+1, & U_{i}\:当前\:关闭\\-1, & U_{i }\:当前\:\end{cases}$$

通常,单元U i不会改变其状态,但如果改变,则信息将驻留在该单​​元本地。随着这一变化,网络的共识也会增加。

网络接受单元状态变化的概率由以下关系给出 -

$$AF(i,T)\:=\:\frac{1}{1\:+\:exp[-\frac{\Delta CF(i)}{T}]}$$

这里,T是控制参数。当 CF 达到最大值时,它会减小。

测试算法

步骤 1 - 初始化以下内容以开始训练 -

  • 代表问题约束的权重
  • 控制参数T

步骤 2 - 当停止条件不成立时,继续步骤 3-8。

步骤 3 - 执行步骤 4-7。

步骤 4 - 假设其中一个状态已更改权重,并选择整数I, J作为1n之间的随机值。

步骤 5 - 计算共识变化如下 -

$$\Delta CF\:=\:(1\:-\:2u_{i})(w_{ij}\:+\:\displaystyle\sum\limits_{j\neq i} u_{i} w_{ ij})$$

步骤 6 - 计算该网络接受状态变化的概率

$$AF(i,T)\:=\:\frac{1}{1\:+\:exp[-\frac{\Delta CF(i)}{T}]}$$

步骤 7 - 接受或拒绝此更改如下 -

情况 I - 如果R < AF,则接受更改。

情况 II - 如果R ≥ AF,则拒绝更改。

这里,R是0到1之间的随机数。

步骤 8 - 减少控制参数(温度)如下 -

T(新)= ⁡0.95T(旧)

步骤 9 - 测试停止条件,可能如下 -

  • 温度达到指定值
  • 在指定的迭代次数内,状态没有变化