标签:
最近我与同学参加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种不同取值。
玻尔兹曼机设计文档
(未完待续)
标签:
原文地址:http://www.cnblogs.com/ccienfall/p/5975259.html