《LDA数学八卦》读后笔记
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数学八卦》读后笔记相关推荐
- 《Tuning I/O Performance》读后笔记
<Tuning I/O Performance>,文章地址:http://doc.opensuse.org/products/draft/SLES/SLES-tuning_sd_draft ...
- Best practice for JVM Tuning[转]
原文地址:https://backstage.forgerock.com/knowledge/kb/article/a35746010 JVM tuning considerations Before ...
- kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录
问题: 1.通过/var/log/messages定位到原因,大概意思是TCP发送缓冲区满了 2.查看其默认tcp_mem配置: 解决办法: 1.vim /etc/sysctl. ...
- 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 ...
- 对比学习系列论文SDCLR(二)-Self-Damaging Contrastive Learning
目录 0.Abstract 0.1逐句翻译 0.2总结 1. Introduction 1.1. Background and Research Gaps 1.1.1逐句翻译 第一段(引出对比学习是否 ...
- weedfs java_初窥weedfs分布式文件系统
介绍 Seaweedfs是一个简单,高扩展性的分布式文件系统,它的两个目标分别是: 存储数十亿级的文件 快速响应文件. seaweedfs选择以键值对(key->file)的实现方式,这有点像& ...
- 深度学习之对象检测_深度学习时代您应该阅读的12篇文章,以了解对象检测
深度学习之对象检测 前言 (Foreword) As the second article in the "Papers You Should Read" series, we a ...
- OpenstackNova-KVM性能调优
前言:请勿轻易调优,除非很清楚在干什么 KVM 作为 Nova 的虚拟化 Driver,是真正意义上负责虚拟机生命周期管理虚拟化基础设施,所以,如果清楚 KVM 的某些调优参数和策略,就有可能为 No ...
- nginx documentation | Development guide
Table of Contents nginx documentation Development guide Nginx distributions ▪️ OpenResty ▪️ The Te ...
- oracle中慢sql优化思路
参考资料:官方文档SQL Tuning Guide https://docs.oracle.com/en/database/oracle/oracle-database/12.2/tgsql/sql- ...
最新文章
- 2.innodb后台线程
- 装备保障性验证知识图谱构建方法研究-学习笔记
- 辨析*P++,*(p++),*(++p),++(*p),*(P--),*(--P)
- 计算机考研压分的学校,篡改分数,恶意压分...考研院校的骚操作大盘点!小心避坑!...
- 百度Apollo放出豪言:下半年每月上市一款新车
- 五年级数学用计算机找规律教案,五年级数学教案——找规律教学设计
- 周六讲的题~C组木有Java组有的
- c语言写俄罗斯方块(源码)
- 推荐几个高质量的软件测试实战项目
- Java读文件的三种方式
- 基于C#实现卫星坐标计算与单点定位
- 为什么苹果手机拍照会模糊?一起来看手机维修师如何解决
- 副总和副总裁的区别_总经理与副总经理的巨大区别
- Oracle Study之--Oracle 11g RAC添加节点错误
- QQ拼音Vista平台试用:行云流水 完美兼容
- python中文朗读_python语音朗读
- 二手房买卖中“跳单”行为之探讨
- Java项目:酒店宾馆管理系统(java+SpringBoot+html+layui+jQuery+maven+mysql)
- java抠图人物背景图片_PS扣取纯色背景的人物图像
- 【信息学奥赛】1015:计算并联电阻的阻值(C++)
热门文章
- EditPlus 3.7 中文版已经发布
- Setup Factory打包教程整合
- 如何用笔记本组建家庭点歌系统
- sublime text3 炫酷主题
- 每个极客都应该知道的Linux技巧(区分开普通的Linux用户和超级极客)
- python库cloudmusic: 网易云爬虫解决方案,轻松获取你想要的数据。
- 按住滑块 拖拽验证html5,【原生】JavaScript 实现滑动拖动验证
- 如何快速解决office2016每次打开都需要配置修复的问题,其他回答都是屁
- win10如何删除用户计算机账户,Win10系统如何利用命令删除用户账户?
- uniapp个人中心界面模板