在机器学习以及优化组合问题中,最常用的方法就是梯度下降法。比如BP神经网络,多层感知器的神经元(units)越多,对应的权矩阵也就越大,每个权可视为一个自由度或者变量。我们知道自由度越高,变量越多,模型越复杂,模型的能力越强。但是模型能力越强,模型就越容易过拟合,对噪声太敏感。另一方面,使用梯度下降进行最优解搜寻时,多变量的误差曲面很像是连绵起伏的山峰一样,变量越多,山峰和山谷也越多,这就导致梯度下降法极容易陷入到局部的一个小山谷,而停止搜索(局部最优)。这就是常规的梯度下降法在解决多维度的优化问题中最常见的局部最优问题。究其原因是梯度下降法的搜索准则所致,按照梯度的负方向搜索,一味追求网络误差或能量函数的降低,使得搜索只具有“下山”的能力,而不具备“爬山”的能力。所谓“爬山”的能力,就是当搜索陷入局部最优时,还能具备一定的“翻山越岭”的能力,能够从局部最优中逃出来,继续搜索全局最优。如果为具有多个局部极小点的系统打一个形象的比喻。设想托盘上有一个凸凹不平的多维能量曲面,若在该曲面上放置一个小球,它在重力作用下,将滚入最邻近的一个低谷(局部最小点)而不能自拔。但该低谷不一定就是曲面上最低的那个低谷(全局最小点)。因此, 局部极小问题只能通过改进算法来解决 。一种可行的办法就是刚才所提到的让算法具有“爬山”的能力,同时还要保证当搜索进入全局最优时不会因为“爬山”而跑出全局最优的“山谷”。本文要讲解的随机神经网络:模拟退火(Simulated Annealing)与玻尔兹曼机(Boltzmann Machine)就是通过一定的概率保证搜索陷入局部最优时能够具有一定的“爬山”能力。这个形象的对比可参看下图:
随机神经网络与其他神经网络相比有两个主要区别 :① 在学习阶段 , 随机网络不像其他网络那样基于某种确定性算法调整权值,而是按某种概率分布进行修改;② 在运行阶段,随机网络不是按某种确定性的网络方程进行状态演变,而是按某种概率分布决定其状态的转移。神经元的净输入不能决定其状态取1还是取0,但能决定其状态取1还是取0的概率。这就是随机神经网络算法的基本概念。
玻尔兹曼机
G·E·Hinton等人于1983 ~ 1986 年提出一种称为 Boltzmann 机的随机神经网络 。在这种网络中神经元只有两种输出状态,即单极性二进制的0或1。状态的取值根据概率统计法则决定,由于这种概率统计法则的表达形式与著名统计力学家 L·Boltzmann 提出的 Boltzmann 分布类似,故将这种网络取名 Boltzmann机。
1. 玻尔兹曼机的原理与结构
BM机的结构介于DHNN全互连与BP网络的层次结构之间,形式上与单层反馈网络DHNN相似,权值对称,且wii = 0;功能上BM机与三层BP网相似,具有输入节点、输出节点和隐节点。一般把输入与输出节点称为可见节点,隐节点成为不可见节点,训练时输入输出节点收集训练样本,而隐节点主要起辅助作用,用来实现输入输出之间的联系,使得训练集能在可见单元再现。BM机的3类节点之间没有明显的层次,连接形式可用如下所示的有向图表示:
2. 神经元的转移函数
设 BM 机中单个神经元的净输入为
与DHNN不同的是,净输入并不能通过符号转移函数直接获得确定的输出状态,实际的输出状态将按照某种概率发生,输出某种状态的转移概率:
上式表示的是神经元j输出状态取1的概率。状态为0的概率就用1减去即可。可以看出,净输入越大,神经元状态取1的概率越大;净输入越小,神经元状态取0的概率越大。而温度T的变化可改变概率曲线的形状。具体如下图所示:
从公式和图中可以看出,当温度T较高时,概率曲线变化平缓,对于同一净输入得到的状态为0或1的概率差别小;而温度低时,改率曲线陡峭,对于同一净输入状态为1或0的概率差别大;当T = 0时,概率函数退化为符号函数,神经元输出状态将无随机性。
3. 网络能量函数与运行的搜索机制
BM机采用的与DHNN网络相同的能量函数描述网络状态,如下图所示:
设BM机按异步方式工作,每次第j个神经元改变状态,根据能量变化公式:
4. BP机的Boltzmann分布
将上式推广到网络中任意两个状态出现的概率与之对应能量之间的关系,有: