LDA看过很多次了,每次都有新的理解(其实就是因为之前的理解不深)。首先要表达对靳志辉的敬仰,毕竟LDA资料里面,这个算是最好的读物了。
看完LDA多次想过要写一篇博客,但是一直没有写,因为我觉得我还没有理解,直到今天,我也不太敢说自己百分百的理解。我就把自己学习过程中的心得,写出来,供初学者参考,少走一些我走过的弯路就OK了。接下来,我会完全按照《LDA数学八卦》的排版顺序来解读。
先大概说下这本书的框架
介绍了伽马函数,Beta分布,Dirichlet分布,采样方法,然后讲文本建模。
第一要点:伽马函数,Beta分布都是为了引出Dirichlet分布,而Dirichlet分布则是用来表示文本的先验分布。也就是是说,这个slide里面用大量的篇幅来介绍,伽马,Beta,Dirichlet就是用来解决一个先验分布表示的问题。我们带着这样的整体认识再看这个slide,我们就会觉得轻松很多,很多地方是可以直接不看的。也就是说,我们不用沉醉于伽马函数有多神奇,不用纠结于高斯有多老狐狸。因为这些非但没有让你更加清楚认识,反而让你更蒙圈。这个slide就这点不好,他把那么多篇幅用在了铺垫上,但是在后面关键部分匆匆结尾。
第二要点: 采样方法,两种采样算法要理解,mcmc和gibbs采样,这两个采样算法稍微耐心点了解之后,其实LDA部分的知识也就全知道了。
以上两点只要理解好了,LDA也就会了,Nothing is important but these two points!

现在我们就按着《LDA数学八卦》把知识都过一遍,用最朴素的语言来说明。
伽马函数
我们只需要记住这个函数的形式,性质,以及他可以表示Beta分布和Dirichlet分布。
形式:

性质:

和Beta分布的关系

在这里我建议读者,要记住这个Beta函数的表示形式,因为后面作者用了一个举了一个潘多拉的例子,我觉得那个例子举的不是很好,不如直接看公式来得明白。

Beta分布Dirichlet分布
这里作者举了潘多拉得例子,相信推导起来也没啥难得,但是我说这个例子不好,是因为这个例子对咱们理解后面得文本建模没有帮助,作者也没有进行总结性的概括。所以我在这里举另外一个例子,大家先要记住这样的一个重要等式。


咱们要的就是这个。
作者举了一个魔鬼于猜数字的例子,我在这里再举另外一个例子,配合着理解一下。


可以看到这个分布其实没多大变化,这是因为只打了1次球并不能说明什么问题。但是如果我们得到了更多的数据,假设一共打了300次,其中击中了100次,200次没击中,那么这一新分布就是:

具体请看知乎地址:如何通俗理解beta分布?
所以我们的Beta分布也好,Dirichlet分布也好,他们都是对一个先验分布的一个假设,然后用训练数据里不断地去修正这个这个概率分布,来逼近真实地概率分布。那么问题就来了,既然是对概率分布的一个假设,我们为什么要用Beta分布,Dirichlet分布呢? 答案是我们对他们进行纠正的时候很方便。比如Beta分布

这个看看《LDA数学八卦》就会知道。
关于这两个分布的一个重要性质,如下:

MCMC 和Gibbs Sampling
接下来我们来谈谈采样。
什么理论起源,发展历史,蒙特卡罗方法,come on!过!我们直接看马氏链及其平稳分布
这部分好好看看《LDA数学八卦》就可以了,讲得很好。

我们要重点关注的是细致平稳条件。

这句话通俗的解释就是 如果对应于一个矩阵A,有一个分布函数B满足这样的等式,那么这个矩阵An次累乘,最终是会收敛于B的。
看下图

矩阵累成后,他的每一个行都是收敛的分布函数。

理解这个之后,我们的MCMC算法就很好理解了。这部分直接看slide吧。大概就是,我们想知道样本的真实分布函数F,那我们就构造对应的平稳状态转移矩阵,然后就沿着这个状态转移矩阵一直跳转,到了收敛状态之后,每一次条状相当于是在F分布函数下的采样。

Gibbs 采样

这部分讲的也很好,我们知道了对于一个二维以上的样本,沿着固定轴的采样都是属于细致平稳条件。也就是说我们沿着固定轴一直采样,我们最终会收敛于真实的二维分布。

文本建模
接下来就是文本建模的问题,所谓的文本建模就是,我们猜测文本应该怎样生成的,最终用这个模型做出概率表示。
第一种方法是
Unigram Model
这部分内容比较简单,我主要来讲讲 贝叶斯Unigram Model,因为理解好了这部分内容,后面的LDA内容就好理解了。
在这里我并没有在作者的基础上,做出进一步的引申,因为作者的水平肯定是大神中的大神,我做的工作是信息提取,因为作者貌似不太擅长用简介地介绍原理。

Unigram Model其实很简单呀,先验分布是这个,其中参数是自己设置的。


这个归一化因子好理解把,因为这个是一个概率表示,他的积分既然是1,那我们就可以用这个归一化因子使得 Dirichlet 分布表示更加简洁。

下面这个是训练样本中出现的各个词的频率统计。

然后套用一下下面这个公式,就可以了。

这样我们就表示出了各个词产生的概率,其实就是跟前文举例的 击中棒球的概率是一样的,就是先假设一个概率,然后通过训练数据去修正这个概率吗


这些都没毛病

Topic Model 和 PLSA
PLSA和 LDA就比较接近了,区别就在于PLSA是没有先验分布假设的,而LDA就有,就这点区别。PLSA具体实现我也不清楚,但是作为LDA的过度,我们就简单看看他的文本建模过程。

LDA
如果PLSA的文本表示明白了,LDA的文本表示也是一样的,唯一不同的地方就是加了一个先验分布。
我们最终求的是这样的一个联合概率表示

这是在为下面的gibbs采样算法做铺垫。

gibbs采样
我们的思路就是固定其他轴,沿着某一轴做采样算法。然后更新。
那么我们就要有根据其他轴表示这一轴概率分布的表示方法。

就是这个

说实话,这部分知识理解起来比较难,但是前面理解好了,这里很好理解。大概就写这么多,如果有必要,后期还会更加详细更新

《LDA数学八卦》读后笔记相关推荐

  1. 《Tuning I/O Performance》读后笔记

    <Tuning I/O Performance>,文章地址:http://doc.opensuse.org/products/draft/SLES/SLES-tuning_sd_draft ...

  2. Best practice for JVM Tuning[转]

    原文地址:https://backstage.forgerock.com/knowledge/kb/article/a35746010 JVM tuning considerations Before ...

  3. kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录

    问题:           1.通过/var/log/messages定位到原因,大概意思是TCP发送缓冲区满了 2.查看其默认tcp_mem配置:  解决办法: 1.vim /etc/sysctl. ...

  4. How Kafka’s Storage Internals Work

    In this post I'm going to help you understand how Kafka stores its data. I've found understanding th ...

  5. 对比学习系列论文SDCLR(二)-Self-Damaging Contrastive Learning

    目录 0.Abstract 0.1逐句翻译 0.2总结 1. Introduction 1.1. Background and Research Gaps 1.1.1逐句翻译 第一段(引出对比学习是否 ...

  6. weedfs java_初窥weedfs分布式文件系统

    介绍 Seaweedfs是一个简单,高扩展性的分布式文件系统,它的两个目标分别是: 存储数十亿级的文件 快速响应文件. seaweedfs选择以键值对(key->file)的实现方式,这有点像& ...

  7. 深度学习之对象检测_深度学习时代您应该阅读的12篇文章,以了解对象检测

    深度学习之对象检测 前言 (Foreword) As the second article in the "Papers You Should Read" series, we a ...

  8. OpenstackNova-KVM性能调优

    前言:请勿轻易调优,除非很清楚在干什么 KVM 作为 Nova 的虚拟化 Driver,是真正意义上负责虚拟机生命周期管理虚拟化基础设施,所以,如果清楚 KVM 的某些调优参数和策略,就有可能为 No ...

  9. nginx documentation | Development guide

    Table of Contents nginx documentation Development guide Nginx distributions ▪️ OpenResty   ▪️ The Te ...

  10. oracle中慢sql优化思路

    参考资料:官方文档SQL Tuning Guide https://docs.oracle.com/en/database/oracle/oracle-database/12.2/tgsql/sql- ...

最新文章

  1. 2.innodb后台线程
  2. 装备保障性验证知识图谱构建方法研究-学习笔记
  3. 辨析*P++,*(p++),*(++p),++(*p),*(P--),*(--P)
  4. 计算机考研压分的学校,篡改分数,恶意压分...考研院校的骚操作大盘点!小心避坑!...
  5. 百度Apollo放出豪言:下半年每月上市一款新车
  6. 五年级数学用计算机找规律教案,五年级数学教案——找规律教学设计
  7. 周六讲的题~C组木有Java组有的
  8. c语言写俄罗斯方块(源码)
  9. 推荐几个高质量的软件测试实战项目
  10. Java读文件的三种方式
  11. 基于C#实现卫星坐标计算与单点定位
  12. 为什么苹果手机拍照会模糊?一起来看手机维修师如何解决
  13. 副总和副总裁的区别_总经理与副总经理的巨大区别
  14. Oracle Study之--Oracle 11g RAC添加节点错误
  15. QQ拼音Vista平台试用:行云流水 完美兼容
  16. python中文朗读_python语音朗读
  17. 二手房买卖中“跳单”行为之探讨
  18. Java项目:酒店宾馆管理系统(java+SpringBoot+html+layui+jQuery+maven+mysql)
  19. java抠图人物背景图片_PS扣取纯色背景的人物图像
  20. 【信息学奥赛】1015:计算并联电阻的阻值(C++)

热门文章

  1. EditPlus 3.7 中文版已经发布
  2. Setup Factory打包教程整合
  3. 如何用笔记本组建家庭点歌系统
  4. sublime text3 炫酷主题
  5. 每个极客都应该知道的Linux技巧(区分开普通的Linux用户和超级极客)
  6. python库cloudmusic: 网易云爬虫解决方案,轻松获取你想要的数据。
  7. 按住滑块 拖拽验证html5,【原生】JavaScript 实现滑动拖动验证
  8. 如何快速解决office2016每次打开都需要配置修复的问题,其他回答都是屁
  9. win10如何删除用户计算机账户,Win10系统如何利用命令删除用户账户?
  10. uniapp个人中心界面模板