深度学习

来源:互联网 发布:android 源码添加apk 编辑:程序博客网 时间:2024/05/24 22:45

一、RBM(受限玻尔兹曼机)
该网络由一些可见单元(visible unit,对应可见变量,亦即数据样本)和一些隐藏单元(hidden unit,对应隐藏变量)构成,可见变量和隐藏变量都是二元变量,亦即其状态取{0,1}。
这里写图片描述
上图所示的RBM含有12个可见单元(构成一个向量v)和3个隐藏单元(构成一个向量h),W是一个12*3的矩阵,表示可见单元和隐藏单元之间的边的权重.
1.RBM的学习目标-最大化似然(Maximizing likelihood)
RBM是一种基于能量(Energy-based)的模型,其可见变量v和隐藏变量h的联合配置(joint configuration)的能量为
这里写图片描述
其中θ是RBM的参数{W, a, b}, W为可见单元和隐藏单元之间的边的权重,b和a分别为可见单元和隐藏单元的偏置(bias)。

有了v和h的联合配置的能量之后,我们就可以得到v和h的联合概率:
这里写图片描述
RBM的学习方法-CD(Contrastive Divergence,对比散列)
可以通过随机梯度下降(stichastic gradient descent)来最大化L(θ),首先需要求得L(θ)对W的导数:
这里写图片描述
经过简化可以得到:
这里写图片描述
后者等于
这里写图片描述
为了解决上式的计算问题,Hinton等人提出了一种高效的学习算法-CD(Contrastive Divergence)
这里写图片描述
首先根据数据v来得到h的状态,然后通过h来重构(Reconstruct)可见向量v1,然后再根据v1来生成新的隐藏向量h1。因为RBM的特殊结构(层内无连接,层间有连接), 所以在给定v时,各个隐藏单元hj的激活状态之间是相互独立的,反之,在给定h时,各个可见单元的激活状态vi也是相互独立的,亦即:
这里写图片描述
RBM的权重的学习算法:

取一个样本数据,把可见变量的状态设置为这个样本数据。随机初始化W。根据式子-9的第一个公式来更新隐藏变量的状态,亦即hj以P(hj=1|v)的概率设置为状态1,否则为0。然后对于每个边vihj,计算Pdata(vihj)=vi*hj(注意,vi和hj的状态都是取{0,1})。根据h的状态和式子-9的第二个公式来重构v1,并且根据v1和式子-9的第一个公式来求得h1,计算Pmodel(v1ih1j)=v1i*h1j。更新边vihj的权重Wij为Wij=Wij+L*(Pdata(vihj)=Pmodel(v1ih1j))。取下一个数据样本,重复1-4的步骤。以上过程迭代K次。

深度信念网络DBN和深度玻尔兹曼机DBM区别
RBM,作为一个概率神经网络,当然也可以理解成一个无向图模型,连接的无向性。
直接叠加RBM是DBN。而DBM是一个真正的无向图模型,层间互有反馈
DBN模型图
这里写图片描述

参考链接

https://en.wikipedia.org/wiki/Ising_modelhttp://www.cnblogs.com/mengfanrong/p/5134499.htmlhttp://blog.csdn.net/zhaoyue007101/article/details/8773220http://www.cnblogs.com/kemaswill/p/3203605.htmlhttp://finallyliuyu.iteye.com/blog/609462
原创粉丝点击