Artificial Neural Network 简明教程
Boltzmann Machine
这些是具有递归结构的随机学习过程,是 ANN 中早期优化技术的基石。Boltzmann 机是由 Geoffrey Hinton 和 Terry Sejnowski 于 1985 年发明的。在 Hinton 对 Boltzmann 机的解读中可以看到更加清晰的解释。
“此网络一个令人惊讶的特性是它仅使用局部可用的信息。权重的变化仅取决于它连接的两个单元的行为,即使该变化优化了全局度量值” - Ackley,Hinton 1985 年。
Boltzmann 机的一些重要要点 −
-
They use recurrent structure.
-
它们由随机神经元组成,随机神经元具有两种可能的状态,1 或 0。
-
部分神经元在此属于自适应(自由态),而另一些则固定(冻结态)。
-
如果将模拟退火应用于离散霍普菲尔德网络,那么它将变成玻尔兹曼机。
Objective of Boltzmann Machine
玻尔兹曼机的主要目的是优化问题的解决方案。玻尔兹曼机的任务就是优化与该特定问题相关的权重和数量。
Architecture
下图显示了玻尔兹曼机的结构。从图中可以清楚地看到,它是一个二维的单元阵列。这里,单位之间互联的权重为 –p ,其中 p > 0 。自连接的权重由 b 给出,其中 b > 0 。
Training Algorithm
众所周知,玻尔兹曼机具有固定权重,因此不会有训练算法,因为我们不需要更新网络中的权重。但是,为了测试网络,我们必须设置权重以及找到一致函数 (CF)。
玻尔兹曼机具有一组单元 Ui 和 Uj ,并且在其上具有双向连接。
-
我们正在考虑固定权重说 wij 。
-
wij ≠ 0 如果 Ui 和 Uj 是连接的。
-
加权互连中也存在对称性,即 wij = wji 。
-
wii 也存在,即单元之间会有自连接。
-
对于任何单位 Ui ,其状态 ui 要么为 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})
这里 ui 是 Ui 的当前状态。
系数 ( 1 - 2ui ) 的变化由以下关系给出 −
(1\:-\:2u_{i})\:=\:\begin{cases}+1, & U_{i}\:is\:currently\:off\\-1, & U_{i}\:is\:currently\:on\end{cases}
通常,单位 Ui 不会改变其状态,但如果改变,则信息将驻留在该单位的本地。通过这种改变,网络的一致性也会增加。
网络接受单位状态变化的概率由以下关系给出 −
AF(i,T)\:=\:\frac{1}{1\:+\:exp[-\frac{\Delta CF(i)}{T}]}
在此, T 是控制参数。当 CF 达到最高值时,它将减少。
Testing Algorithm
Step 1 − 初始化以下内容以启动训练 −
-
表示问题约束的权重
-
Control Parameter T
Step 2 − 在停止条件不为真时,继续步骤 3-8。
Step 3 − 执行步骤 4-7。
Step 4 − 假设某一状态已更改权重,并选择整数 I, J 作为 1 和 n 之间的随机值。
Step 5 − 如下计算共识度变化 −
\Delta CF\:=\:(1\:-\:2u_{i})(w_{ij}\:+\:\displaystyle\sum\limits_{j\neq i} u_{i} w_{ij})
Step 6 − 计算此网络接受状态变化的概率
AF(i,T)\:=\:\frac{1}{1\:+\:exp[-\frac{\Delta CF(i)}{T}]}
Step 7 − 如下接受或拒绝此更改 −
Case I − 如果 R < AF ,请接受更改。
Case II − 如果 R ≥ AF ,请拒绝更改。
在此, R 是 0 到 1 之間の随机数。
Step 8 − 如下减少控制参数(温度) −
T(new) = 0.95T(old)
Step 9 − 测试可能如下所示的停止条件 −
-
温度达到指定值
-
多次迭代后状态未发生变化