首页 > 代码库 > 受限玻尔兹曼机

受限玻尔兹曼机

最近我与同学参加2016Byte Cup国际机器学习竞赛,对推荐系统一无所知的我们只能参考别人的文章。这里我们找到一篇比较好的文章:是北大博士吴金龙的博士论文。这里主要是记录学习其中受限玻尔兹曼机的过程。

 

下面PSP表格是预计各个模块所化时间。

 

PSP2.1  Personal Software Process Stages Time/h
Planning   计划  
· Estimate · 估计这个项目需要多少时间  0.5
Development   开发  
·Analysis ·需求分析(包括学习新技术)  2
·Design Spec ·生成设计文档  0.5
·Design Review ·设计复审(和同事审核设计文档)  0.5
·Coding Standard  ·代码规范(为目前的开发指定合适的规范)  0.5
·Design ·具体设计  0.5
·Coding ·具体代码  5
·Coding Review ·代码复审  0.5
·Test ·测试(自我测试,修改代码,提交复审)  1
Reporting 报告  
·Test Report ·测试报告  1
·Size Measurement ·计算工作量  0.5
·Postmortem & process Improvement Plan ·事后总结,并提出过程改进计划  2
  合计  10.5

 

实际各个模块所花时间

PSP2.1  Personal Software Process Stages Time
Planning   计划  
· Estimate · 估计这个项目需要多少时间  0.5
Development   开发  
·Analysis ·需求分析(包括学习新技术)  3
·Design Spec ·生成设计文档  
·Design Review ·设计复审(和同事审核设计文档)  
·Coding Standard  ·代码规范(为目前的开发指定合适的规范)  
·Design ·具体设计  
·Coding ·具体代码  
·Coding Review ·代码复审  
·Test ·测试(自我测试,修改代码,提交复审)  
Reporting 报告  
·Test Report ·测试报告  
·Size Measurement ·计算工作量  
·Postmortem & process Improvement Plan ·事后总结,并提出过程改进计划  
  合计  

受限玻尔兹曼机原理             

   在推荐系统中的RBM与一般的RBM略微有点不一样,隐藏层还是同样的k个节点,但是可见层却是一个mXs的二维矩阵(暂且把这个二微矩阵当成一层)。其中m表示电影,s表示评分系统的等级数。那么在RBM中,我们基于两个假设:

技术分享

  此受限玻尔兹曼机的可视化图如下:

 

  那么由这两个假设条件分布可以得到联合分布。(这里问题抽象出来就是已知 P(x|y) 和 P(y|x),可以得到 P(x,y) 。概率论没学好,还不知道如何得到)

技术分享

  首先我们先了解一下联合分布是哪些量的函数,由式子中可以看到,对u变量(也即是用户)求积求没了,所以联合分布是K个隐藏层点的0/1状态以及mXs个可见层的0/1状态(误?)。hu的为一个二值向量,总共有2^k种不同取值。

玻尔兹曼机设计文档

 

 

 

 

(未完待续)

受限玻尔兹曼机