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)等等。主题和词也一样的原理。

LDA理解的更多相关文章

  1. 自然语言处理基础与实战(8)- 主题模型LDA理解与应用

    本文主要用于理解主题模型LDA(Latent Dirichlet Allocation)其背后的数学原理及其推导过程.本菇力求用简单的推理来论证LDA背后复杂的数学知识,苦于自身数学基础不够,因此文中 ...

  2. LDa 通俗理解

    LDA理解以及源码分析(一) http://blog.csdn.net/pirage/article/details/50239125 LDA在主题建模中的应用,需要知道以下几点: 文档集中的word ...

  3. 理解 LDA 主题模型

    前言 gamma函数 0 整体把握LDA 1 gamma函数 beta分布 1 beta分布 2 Beta-Binomial 共轭 3 共轭先验分布 4 从beta分布推广到Dirichlet 分布 ...

  4. 通俗理解LDA主题模型

    通俗理解LDA主题模型 0 前言 印象中,最開始听说"LDA"这个名词,是缘于rickjin在2013年3月写的一个LDA科普系列,叫LDA数学八卦,我当时一直想看来着,记得还打印 ...

  5. 通俗理解LDA主题模型(boss)

    0 前言 看完前面几篇简单的文章后,思路还是不清晰了,但是稍微理解了LDA,下面@Hcy开始详细进入boss篇.其中文章可以分为下述5个步骤: 一个函数:gamma函数 四个分布:二项分布.多项分布. ...

  6. 我是这样一步步理解--主题模型(Topic Model)、LDA

    1. LDA模型是什么 LDA可以分为以下5个步骤: 一个函数:gamma函数. 四个分布:二项分布.多项分布.beta分布.Dirichlet分布. 一个概念和一个理念:共轭先验和贝叶斯框架. 两个 ...

  7. 主题模型(LDA)(一)--通俗理解与简单应用

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_39422642/article/de ...

  8. LDA主题模型学习笔记5:C源代码理解

    1.说明 本文对LDA原始论文的作者所提供的C代码中LDA的主要逻辑部分做凝视,原代码可在这里下载到:https://github.com/Blei-Lab/lda-c 这份代码实现论文<Lat ...

  9. LDA概率图模型之贝叶斯理解

    贝叶斯.概率分布与机器学习 转自:http://www.cnblogs.com/LeftNotEasy/archive/2010/09/27/1837163.html  本文由LeftNotEasy原 ...

随机推荐

  1. Swift: 比较Swift中闭包传值、OC中的Block传值

    一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...

  2. Java编程思想学习(十二) 数组和容器

    一.数组 1).数组的多种初始化方式 下面总结了初始化数组的多种方式,以及如何对指向数组的引用赋值,使其指向另一个数组对象.值得注意的是:对象数组和普通数组的各种操作基本上都是一样的:要说有什么不同的 ...

  3. hdu 1301 Jungle Roads 最小生成树

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 The Head Elder of the tropical island of Lagrish ...

  4. jquery表单内容过滤

    效果:    输入筛选字段后显示效果: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http ...

  5. 在openshift上自定义node.js的版本

    https://github.com/ramr/nodejs-custom-version-openshift 由于是线上服务器,一步一步来: 先把上面的工程拉下来,覆盖到初始化的工程里,提交,让服务 ...

  6. 电脑IP地址被占用如何释放?

    回车后,关机,等待5分钟左右再开机,就释放掉了.

  7. java实现马踏棋盘问题

    1.问题描述: 在国际象棋中,马走日,用户输入棋盘的起始位置从x:0-4,y:0-3输出从这一点开始,马走完整个棋盘的各个方案,并输出方案数 2.输入样式: 请输入棋盘马起始位置: 0 0 3.输出样 ...

  8. JSP 分页显示数据 (Oracle)

    要实现分页,首先我们要做的就是如何来编写SQL语句,网上也有很多,大家可以搜一下.在这里,我们使用一种比较常用的方式来编写SQL语句.代码如下: ----分页显示 select * from (sel ...

  9. 基于React-Native0.55.4的语音识别项目全栈方案

    移动端的API能力验证方案与PC端不一样!不一样!!不一样!!! 即使需要使用的API都存在,也不一定能用,这一点和PC端是有很大区别的,国内的手机系统虽然都是基于Android,但几乎都会经过各大厂 ...

  10. 从零学习Flutter(一):初识Dart

    Fluter是Google推出的跨平台开发App的一套框架,很多人都说,Google出品比属于金品,故,我也来凑凑热闹,Fluter是用Dart写的,所以在用Fluter之前,我们还是有必要简单了解一 ...