机器学习笔记(1)—— 限制玻尔兹曼机RBM

前置知识点概要:离散Hopfield神经网络+模拟退火+隐单元=Boltzman

1、玻尔兹曼机BM

分隐藏层h、可见层v(即输入层,也是输出层)。玻尔兹曼机可以看作全连通图,即每个神经元和本层所有神经元、其他层神经元全链接

2、受限玻尔兹曼机RBM

层内不连接,与其他层所有神经元链接,其中vi是可见层神经元,hj是隐藏层神经元,ai可见层偏置,bj隐藏层偏置,W权重矩阵

2.1 概念理解 转自 https://blog.csdn.net/u013631121/article/details/76652647

  对单个样本v,可通过加权求和加上偏置(对所有i∑viWij+bj),求得h,然后再用同样方法反向传播计算,得到v',对所有的vi和v‘i做差加和,可以得到一个值。我们希望的是这个值越小越好。

  也就是如果把v->h,h->v'视为一个编码和解码的过程的话,我们希望解码出来的东西能和原来的一致。如果用统计的角度,可以把P(v)看作解码后是v的概率(也就是解码的准确率),也就是P(v)越大越好,即求最大值。(能量函数相关知识待学习,此为猜测)

2.2 训练 转自 https://blog.csdn.net/xbinworld/article/details/45013825 以及 https://www.cnblogs.com/pinard/p/6530523.html

 2.2.1 前置知识点  转自 https://blog.csdn.net/xbinworld/article/details/43612641

  MCMC、吉布斯采样:

  简述:对于复杂分布,很难直接采样。利用数学工具马尔科夫链的稳态形式服从某种分布,去构造服从特殊分布的马尔科夫链,再从中采样,就可得到复杂采样的样本

2.2.2 能量函数、概率分布计算

  公式详见转载博客,此处不再赘述,只记录个人理解

  定义能量函数E(v,h)

  得到基于能量函数的概率分布P(v,h),此处做疑问,概率论知识待学习

  可求得P(v),P(h),P(h|v),P(v|h),P(hj=1|v),P(vi=1|h)

  需要能量函数E为最小时网络稳定,利用梯度下降思路,做损失函数L=ln(P(v)),再求L对vi、hj、wij的梯度然后进行梯度下降迭代。为什么是P(v)而不是E呢?个人理解是,对P的表达式,E的绝对值越大,P越大,也就是有相同的增减性,而P的形式便于梯度求导。

  梯度表达式中复杂分布不容易求解,但是表现为期望形式,则使用吉布斯采样或者MC算法采样,均值即为期望的无偏估计

2.3 应用

  一般不做单独使用,而是作为特征提取器或者预训练手段,列几个用途,并作为以后学习点

  DBM:深玻尔兹曼机,每一层都是RBM,前一层的h作为下一层的v,逐层训练

  DBN:深度信念网络,每层都是RBM。先做逐层训练,然后用bp训练

 

  

  

 

原文地址:https://www.cnblogs.com/gaokaitai/p/11669309.html