Neural Networks for Machine Learning Lecture 11

课程地址:https://www.coursera.org/learn/neural-networks

老师主页:http://www.cs.toronto.edu/~hinton

备注:笔记内容和图片均参考老师课件。

这一章中间一部分感觉完全没听懂在干嘛,这里就总结下Hopfield Nets的定义以及玻尔兹曼机。

Hopfield Nets

Hopfield Nets是由二进制神经元组成的递归神经网络,非线性递归神经网络往往很难分析,John Hopfield等人注意到如果链接是对称的,存在一个全局能量函数(这里能量的含义为一种度量的意思),来看能量函数的定义:

这个公式让我们能够计算开关某个神经元对于能量的影响:

找到能量最低的点的方法为从一个随机的初始状态开始,每次以随机的顺序改变一个神经元,来看如下操作步骤:

这样迭代下去最终会停止,但是不一定会达到能量最小的状态,对于这个网络,能量最小的状态如下:

Noisy networks find better energy minima

因为Hopfield Nets用贪心算法进行更新,所以难免会遇到局部最优的情况,老师介绍的方法引入“噪音”,将神经元换成满足以下性质的随机变量

Boltzmann Machine

玻尔兹曼机可以用来计算每个二进制向量出现的概率,可以用来判断二进制向量是否属于同一分布,例如核电站的异常检测,以及文本的检测等等,利用如下公式计算:

这里概率的计算方式是通过能量,如下:

其中能量用如下公式计算:

利用这个计算式,可以得到如下公式:

以一个具体例子来说明: