zoukankan      html  css  js  c++  java
  • 关于LDA的gibbs采样,为什么可以获得正确的样本?

    算法里面是随机初始了一个分布然后进行采样,然后根据每次采样的结果去更新分布,之后接着采样直到收敛。

    1.首先明确一下MCMC方法。

    当我们面对一个未知或者复杂的分布时,我们经常使用MCMC方法来进行分布采样。而采样的目的是得到这个分布的样本,通过这些样本,我们就能明确出该分布的具体结构。所以MCMC本身就是解决无法直接采样或理解的分布问题的,所以不是对已知分布进行采样。

    而gibbs采样时MCMC方法的一种改进策略,所以解决的是一类问题。在LDA中,后验概率无法直接取得,我们通过gibbs采样的方法去采样该分布,从而得到模型结构。

    2.关于gibbs采样正确性,或者鸡生蛋蛋生鸡的说法。

    关于gibbs采样的正确性,即能够得到正确的结果。基本层面是MCMC方法的正确性问题,因为gibbs采样只是MCMC方法的变种,即升级接受概率为1,关于这方面的证明过比较专业,题主可以去查询相关的资料。

    而在实际中鸡生蛋蛋生鸡的问题,建议题主可以从EM算法了解下手,即含有隐变量时的参数估计问题,相信题主能够得到一些答案。

    Gibbs Sampling或者说更一般的MCMC算法,本来就可以保证对于任意初始分布(或者应该说不叫分布吧,就是一组初值),迭代能收敛到真实分布。和LDA本身没什么关系。

    至此,采用Gibbs采样:
    (1)随机给定每个单词的主题
    (2)根据转移概率依次产生每个单词的新的主题。
    (3)收敛后,得到的采样极为所求的采样。

    [1]LDA数学八卦
    [2]Parameter estimation for text analysis

  • 相关阅读:
    python 安装 reportlab 报错 “ImportError: No module named reportlab.lib”
    人声和乐器的频谱范围
    C语言中指针中的值赋值给数组
    快速熟悉Matlab
    Ubuntu 16.04 下octave的使用入门
    IP达人启示录
    python常用的十进制、16进制之间的转换
    GNU 下命令objcopy 用法
    python zeros用法实例
    Debian/Ubuntu清理硬盘空间的8个技巧
  • 原文地址:https://www.cnblogs.com/hellochennan/p/6647158.html
Copyright © 2011-2022 走看看