|
本帖最后由 tangzk 于 2013-6-11 22:21 编辑
PGM课程的学习终于算是到了尾声,仅剩下本周的期末复习和回顾了。从11年开始,共报名参加三次PGM的学习,这次总算是坚持下来了。想着每周5~10小时看视频,10~15小时做课后作业与编程作业,依然觉得真是不容易。整体而言,这门课程的难度属于中等偏难,如果比起之前Andrew Ng的Machine Learning课程,这个则算是比较难的了。不仅从课程内容而言,从课后作业和习题的难度都是很大的,幸好我在研一的时候没有把这门课坚持下来,因为当时不可能有这么多的时间了,当然花这么多时间的原因,也因为我E文太差,视频基本上看字幕过来的。
这门课程不需要学生具备很多的机器学习知识,但应有一些基本的概率论统计及图算法知识。在这门课里,介绍了概率图模型Probabilistic Graphical Model的一些基本内容,配备了大量的习题和编程作业以熟悉概率图模型的基本概念和应用,就个人经验来说,很值得学习深入。
课程主要围绕三个方面的内容展开,这也是机器学习领域里面一些最基本的问题:
1、图结构的表达:
概率图模型用图的形式来表达概率的条件独立属性,将概率论与图论结合起来,其分类为贝叶斯网络(有向图)和马尔可夫网络(无向图)两种,各个结点表示为factor,结点间的基本运算有FactorProduct, FactorMarginalization, ObserveEvidence等,这两者即概率中的乘积、求边缘概率和代入证据等,然而其后的算法均可以围绕这几个基本运算来展开。
2、Inference:
推理问题,主要是为了计算某个变量的后验概率。在图模型中,可以有Vaiable Elimination(变量消元)和Belief Propagation(信念传播)两种算法来实现。通过将贝叶斯网络或马尔可夫网络化为Clique Tree或Cluster Graph,然后通过message passing来实现后验概率的计算,尤其是在化为Clique Tree后,可以在2(c-1)次消息传递后计算出整个网络中每个变量的边缘概率。另外,也可以通过采样方法来近似计算后验概率,常见的Gibbs采样和MCMC方法。由于MAP(最可能赋值)与后验计算有相似性,只需要将后者算法中的sum-product更换为max-sum操作即可,因此MAP问题也有类似的算法。
3、Learning:
学习问题,一是为了估计模型中的参数,当把参数不当成是固定值,而是随机变量时,仍然可以用推理的算法来计算后验概率。参数估计方法常用的是MLE(极大似然估计)、MAP(极大后验估计)和贝叶斯估计。二是为了学习网络的结构完成知识的发现,称为Structure Learning,其通常是定义各种有效的scoring function(如likelihood score,BIC,Bayesian Scores等),然后再通过搜索(固定树结构、启发式图算法)的方法来找到最优的结构,这中间还可以利用图的等效和可分解性。
关于学习问题,还有一个情况是关于incomplete data,即在含有某些hidden变量的时候,或者建模为Latent Variables模型时,需要通过EM(Expectation Maximization)算法来求解。
最后作下总结,整个课程基本上能独立完成所有的课后作业与编程作业,对概率图模型也有了很清晰的理解,也基本能看清论文中常见的各种模型的关系(这一些在课堂中也有讲)。由于在编程时已经被搭建了整个算法框架,因此在自己实现图算法时还需要理解其间各个步骤的细节,如Message Passing、Sampling Method等还有些问题,这些都还需要进一步系统地回顾课后习题和编程练习,后面再结合一起作下学习笔记才好。
整个课程的编程作业全部放在svn中(http://59.77.16.75/svn/seminar/tangzk/pgm/prog_assigns),关于整个课程的视频、slides以及Problems我这里也都有相关资料,暂时还未整理完,有兴趣学习的同学可以看一看,也可以和我一起交流,学习进步。 |
|