LDA理解

LDA只是一个求解思路。

1.理解LDA首先要理解EM算法,EM不能叫做一个算法,只是一个思想:它要求解的其实是一个极大似然估计,就是我用已知量去求解导致这个已知量出现的最大概率,而在这里又恰恰有点偏,这个已知量是我们开始给定的这个初值,我们要去用这个已知量去求解最大,然后再用这个最大值再带入到我们这个模型中,再去求解,这样反复迭代的过程叫做EM。

例子:

我们要求这个式子的极大似然,而是我们预先给定的值,这里面有一个隐变量z,而x是我们给定的样本,隐变量z就相当于我们在求导链式法则的时候,不能直接对某一值求导数,我们要利用链式法则来求,而转换成链式法则的过程中出现的参数,就是隐变量;隐变量就是我们是知道他是多少,但不知道他的具体的值,它每次经过迭代以后的值是不一样的。

上面这个式子,可以转换为对下面这个式子求极大似然:

主要是看后面那个P值,我们对这个P值求最大,而每次求出一个z值,而求出z值以后,可以求出后面那个式子的最大值,然后又可以求出一个,再把这个带入到式子里面去算,又可以算出一个最大值,直到两次算出来的值差不多,我们就认为收敛了,这个时候就可以得到一个值,就是我们要求的值。对应到LDA里面就是我们的或者是值。

EM可以看成是E和M,E是期望,M是迭代的次数。

2.共轭分布:已知主题与文章的分布:这个主题下,观测到每个文章的概率是多少;这个是我们的先验,我们要求的就是文章与主题的分布:就是在这个文章下,观测到每个主题的概率是多少,最终求出一个值,来表示这个分布;主题和文章的分布,文章和主题的分布可以看成是一样的,因为下面这个式子中,分布变大,最后的值也变大,这就叫共轭分布,看得时候看得抽象一点,就看成一个值,把分布看成一个值。

例子:

右边等式下面是一个常数,我们可以不看,在神经网络里面,B就相当于我们的样本数据,而A就相当于权重,我们开始会给定一个初始的A,我们就知道了在A下B的分布,然后通过一系列的算法去调整B下A的分布,可以求出一个等式最左边的值,然后下次将当做,就是反复的迭代,最终得到一个P(A)。

贝叶斯:一个文档下主题是一个分布,而主题又是一个分布:就是说一个文档下的主题可能是这样的,有A1,A2,A3个主题,有可能是(0.1A1,0.1A2,0.8A3),(0.1A1,0.2A2,0.7A3)等等。主题和词也一样的原理。

猜你喜欢

转载自www.cnblogs.com/callyblog/p/9085475.html
LDA