📜  玻尔兹曼机

📅  最后修改于: 2020-11-26 08:38:22             🧑  作者: Mango


这些是具有递归结构的随机学习过程,是ANN中使用的早期优化技术的基础。玻尔兹曼机是由杰弗里·欣顿和特里·塞诺夫斯基于1985年发明的。

“该网络的一个令人惊讶的功能是它仅使用本地可用信息。权重的变化仅取决于它所连接的两个单元的行为,即使该变化优化了全局度量也是如此”-Ackley,Hinton 1985。

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

  • 他们使用循环结构。

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

  • 在这种情况下,有些神经元是适应性的(自由状态),而有些则被钳位(冻结状态)。

  • 如果我们在离散的Hopfield网络上应用模拟退火,那么它将成为Boltzmann Machine。

玻尔兹曼机的目的

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

建筑

下图显示了Boltzmann机器的体系结构。从图中可以清楚地看到,它是一个二维单位数组。此处,单元之间互连的权重为–p ,其中p> 0 。自连接的权重由b给出,其中b> 0

玻尔兹曼

训练算法

我们知道Boltzmann机器的权重是固定的,因此将不需要训练算法,因为我们不需要更新网络中的权重。但是,要测试网络,我们必须设置权重以及找到共识函数(CF)。

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

  • 我们正在考虑固定权重wij

  • 如果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 iU i的当前状态。

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

$$(1 \:-\:2u_ {i})\:= \:\ begin {cases} +1和U_ {i} \:is \:isly :: current \\ off \\-1和U_ {i } \:是\:当前\:在\结束{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-接受或拒绝此更改,如下所示-

情况一-如果R ,则接受更改。

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

在此, R是0到1之间的随机数。

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

T(新)=⁡0.95T(旧)

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

  • 温度达到指定值
  • 指定数量的迭代状态不变