@EggGump
2019-03-24T14:21:19.000000Z
字数 1147
阅读 569
Introduction to Restricted Boltzmann Machines
algorithm
基本知识
- 首先,它是一个二部图,一个可视层v和一个隐藏层h,层内无连接,层间全连接。
- 偏置位,bias,跟神经网络里的那个bias一样。
- 权重:连接之间构值。
以一个例子来构造RMB。有六个电影:Harry Potter,Avatar,LORT 3,Gladiator,Titanic,Glitter,我们问一个人他喜欢哪些电影,假设有两个隐藏单元要去学习(假设为SF/fantasy和Oscar winners),据此构造的RMB会类似如下这样的构造:
状态激活
- activation energy(激活能量):i的激活能量,是权重
- 置1概率:,,这个是结点i的置1概率。
- 将i以的概率置1,以的概率置0。
接着以电影的例子打比方。
假如A告诉我们这6个电影中他的二元偏向(即喜欢或不喜欢),这6个节点会发送信息给隐藏层从而更新隐藏层,例如他喜欢的是Harry Potter,Avatar,LORT3,这并不保证SF/Fantasy一定会被打开,只能说明它会以一个很高的概率被打开,而任然有一定的概率使Oscar被打开。反之,当我们知 道一个人喜欢SF/Fantasy,我们可以利用RBF去预测他可能喜欢的电影,同样,并不能保证一会是Harry Potter,Avatar,LORT3节点会被激活。
权重学习
假如现在有了一些训练样例,即6位二进制向量有其对应的电影偏好,那我们按以下步骤来进行训练:
- 取一个训练样例,将可见节点状态设为这个样本数据
- 更新隐藏节点状态:对第j个隐藏节点,计算他的,并以的概率置1,置0反之。对每一个边计算它的
- 以相似的方式更新可见节点状态,再更新隐藏节点,计算
- 更新权值:,L是学习率。
- 对所有的训练样例重复这个过程。
Modifications
- 对于的获得,可能多次反复地更新v和h,这样会缓慢,但是结果更精确。
- 除使用外,还可以使用作为激活概率,亦如此。
- 惩罚大权重值,使最后的结果更加归一化。
- 在更新权重时,可以将更新 值改为当前更新值和前一步更新值之和。
- 每次迭代可以使用一批样例进行对权重的更新。