数学知识
- Gamma 函数和分布(MLAPP 2.4.5)
- Beta 函数和分布(MLAPP 2.5.4)
- Beta-Binomial (MLAPP 3.3)
- Dirichlet-Multinomial (MLAPP 3.4)
学习
概率图模型的Inference问题。主要的算法分为exact inference和approximate inference两类。尽管LDA是最简单的Topic Model, 但是其用exact inference还是很困难的,一般我们采用approximate inference算法来学习LDA中的隐含变量。比如LDA原始论文Blei02中使用的mean-field variational expectation maximisation 算法和Griffiths02中使用的Gibbs Sampling,其中Gibbs Sampling 更为简单易懂。
Gibbs Sampling 是Markov-Chain Monte Carlo算法的一个特例。
依赖的数学理论有:t+1 时刻的状态以来于t时刻,独立于t-1时刻。
如果我们从一个具体的初始状态 x0 开始,沿着马氏链按照概率转移矩阵做跳转,那么我们得到一个转移序列 x0,x1,x2,⋯xn,xn+1⋯, 由于马氏链的收敛行为, xn,xn+1,⋯ 都将是平稳分布 π(x) 的样本。
这个算法的运行方式是每次选取概率向量的一个维度,给定其他维度的变量值 Sample 当前维度的值。不断迭代,直到收敛输出待估计的参数。
简言之:固定其他维度不变,更新当前维度。
Gibbs sampling method sets up the Markov chain as follows:
- at step t = 1, initialize X_1 to arbitrary values
- at step t, choose n randomly among 1, . . . , N
- draw a sample for X_t_n from P(Xn|X1, . . . , Xn−1, Xn+1, . . . , XN )
- iterate
用Gibbs Sampling学习LDA
初始时随机给文本中的每个单词分配主题,然后统计每个主题z下出现term t的数量以及每个文档m下出现主题z中的词的数量,每一轮计算,即排除当前词的主题分配,根据其他所有词的主题分配估计当前词分配各个主题的概率。当得到当前词属于所有主题z的概率分布后,根据这个概率分布为该词sample一个新的主题。然后用同样的方法不断更新下一个词的主题,直到发现每个文档下Topic分布和每个Topic下词的分布收敛,算法停止,输出待估计的参数和,最终每个单词的主题也同时得出。实际应用中会设置最大迭代次数。每一次计算的公式称为Gibbs updating rule.下面我们来推导LDA的联合分布和Gibbs updating rule。
比较 EM & Kmeans & Gibbs Sampling
- EM algorithm is a “soft version” that generalizes the K-means algorithm!
- EM的原理是变分,Gibbs Sampleing的原理是MCMC。

博客围绕用Gibbs Sampling学习LDA展开。先介绍相关数学知识,如Gamma、Beta函数和分布等。指出LDA学习常用approximate inference算法,Gibbs Sampling是Markov - Chain Monte Carlo特例。阐述其学习LDA的过程,还比较了EM、Kmeans和Gibbs Sampling的原理。
2523

被折叠的 条评论
为什么被折叠?



