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
分类
结构
(隐藏节点个数大约是可见节点的指数级倍数?)
结果输出方式
输出形式为各项概率,终止条件是达到预设温度
自联想型
自由变化直到收敛到设定好的已知吸引子
异联想型
嵌住已知点,使其他点收敛到已知吸引子
BM能量推算
改变状态的能量变化
\[\Delta E=-net_j\quad net_j=\sum_i(w_{ij}x_i-T_j)
\]
特征信息
特征信息蕴含在某权值两端节点同时为1的概率
训练迭代
计算每个节点上述能量变化,改变能量下降最快的节点,改变方式使用模拟退火算法。具体有:
热平衡算法
- 反向学习时需部分嵌住可见点,正向学习不需要
- 遍历所有节点找到能量下降最快的节点(也可以随机抽取)
- 按照模拟退火算法更新该节点的值
- 重复2~3直到下降到所需温度
权值更新算法
随机初始权值
正向学习阶段
- 按已知概率\(P(X^p)\)向网络输入学习模式\(X^p\),p=1,2,3,...
- 在\(X^p\)的约束下按上述模拟退火算法运行网络直到热平衡
- 统计该状态下网络中任意两节点 \(i\) 与 \(j\) 同时为1的概率 \(p_{ij}\),此概率为训练所有样本,每一个样本迭代收敛得出节点值,再统计得出
反向学习阶段
- 无约束或输入节点约束下运行到热平衡
- 统计该状态下网络中任意两节点 \(i\) 与 \(j\) 同时为1的概率 \(p'_{ij}\)
权值调整(\(\eta\)为学习率)
\[\Delta w_{ij}=\eta\ (p_{ij}-p'_{ij}) \]重复2~4步骤直到收敛,即\(p_{ij}\)与\(p'_{ij}\)充分接近
特点
- 慢,很慢,非常慢
- 对抽象噪音敏感
- 很难找到合适的应用案例
- 流行软件不支持
©️ Copyrights.RSMX.GUILIN.2020-05-17
A geek and poetry lover.