Boltzmann机

Boltzmann机


基础知识

模拟退火算法

接受概率

第二种情况使用[0,1]均匀分布随机数决定,处于外层循环

\[p = \left\{ \begin{array}{ll} 1 & E(n+1)<E(n)\\ e^{\frac{E(n+1)-E(n)}{T}} & E(n+1)\leq E(n) \end{array} \right. \]

降温方式例子

\[T(t)=\frac{T_0}{1+\ln t}\\ T(t)=\frac{T_0}{1+t} \]

玻尔兹曼分布

信息熵

设概率实验X有n个可能的独立结局,即n个随机事件A1,…,An,每个随机事件的概率为p1,…,pn。则信息熵中Shannon熵的定义为:

\[\begin{align} H_n&=-\sum^n_{i=1}p_ilog_2p_i \\&=-Elog_2p_i\quad(单随机事件) \end{align} \]

可以表明确定一个事物状态需要使用多少比特,无量纲。而热力学中的玻尔兹曼熵是其的一种物理学上的应用。

分布公式

其中\(g_i\)是指有多少种相同的微观态,N是单状态个数,\(\beta=\frac{1}{kT}\)为气体速率分布可得,为拉格朗日乘子法求得的参数。

\[N_i=\frac{Ng_ie^{-E_i/kT}}{\sum^n_{i=1}g_ie^{E_i/kT}} \]

在玻尔兹曼机中,E为能量函数,T为退火温度,只考虑单神经元时\(g_i\)为1,N为1

分类

结构

(隐藏节点个数大约是可见节点的指数级倍数?)

fig1

结果输出方式

输出形式为各项概率,终止条件是达到预设温度

自联想型

自由变化直到收敛到设定好的已知吸引子

异联想型

嵌住已知点,使其他点收敛到已知吸引子

BM能量推算

改变状态的能量变化

\[\Delta E=-net_j\quad net_j=\sum_i(w_{ij}x_i-T_j) \]

特征信息

特征信息蕴含在某权值两端节点同时为1的概率

训练迭代

计算每个节点上述能量变化,改变能量下降最快的节点,改变方式使用模拟退火算法。具体有:

热平衡算法

  1. 反向学习时需部分嵌住可见点,正向学习不需要
  2. 遍历所有节点找到能量下降最快的节点(也可以随机抽取)
  3. 按照模拟退火算法更新该节点的值
  4. 重复2~3直到下降到所需温度

权值更新算法

  1. 随机初始权值

  2. 正向学习阶段

    1. 按已知概率\(P(X^p)\)向网络输入学习模式\(X^p\),p=1,2,3,...
    2. \(X^p\)的约束下按上述模拟退火算法运行网络直到热平衡
    3. 统计该状态下网络中任意两节点 \(i\)\(j\) 同时为1的概率 \(p_{ij}\),此概率为训练所有样本,每一个样本迭代收敛得出节点值,再统计得出
  3. 反向学习阶段

    1. 无约束或输入节点约束下运行到热平衡
    2. 统计该状态下网络中任意两节点 \(i\)\(j\) 同时为1的概率 \(p'_{ij}\)
  4. 权值调整(\(\eta\)为学习率)

    \[\Delta w_{ij}=\eta\ (p_{ij}-p'_{ij}) \]

  5. 重复2~4步骤直到收敛,即\(p_{ij}\)\(p'_{ij}\)充分接近

特点

  • 慢,很慢,非常慢
  • 对抽象噪音敏感
  • 很难找到合适的应用案例
  • 流行软件不支持

©️ Copyrights.RSMX.GUILIN.2020-05-17

posted @ 2020-05-09 12:22  若水茗心  阅读(330)  评论(0编辑  收藏  举报