An Introduction to Variational Methods (5.1)
在这篇文章中,我引用Bishop书中的一个例子,来简单介绍一下Variational Methods的应用。想要更详细地理解这个例子,可以参考Bishop的书Pattern Recongnition and Machine Learning的第十章。
这个例子应用于一个混合高斯分布,我们先来看一看这个混合高斯分布的图模型,见图3,从而可以进一步退出其概率表达式。
现在我们有了这个图,我们就不难写下一个完整的概率式来表示整个联合分布:
现在,我们来定义一些分布。首先,我们已经说过,这是一个混合高斯模型,那么就需要有一个变量来描述,一个点的生成,到底是由这个混合高斯中的哪一个组成部分生成。那么这个变量就是Z,我们用一个1-of-K的二进制向量来表示。例如我现在有一个二进制向量(0,0,0,0,1),这个向量代表一共有五个组成部分,而这个点对应于其中的第五个组成部分。这就是一个multinational distribution。那么我们现在要来控制这个multinational distribution,那就需要利用到pi。现在我们假设有N个观测变量构成的数据集,每一个观测变量都对应其潜在变量。我们可以得到:
在这里, 我们假定,在这个高斯混合中,一共有K个组成部分。现在,我们需要写出观测变量基于潜在变量的条件分布。
现在,我们可以引入分布来描述这些参数,从而构成一个完整的Bayesian Model。首先,我们来描述pi。我们注意到Z是一个由pi控制的multinational distribution,那么根据其共轭先验,我们可以方便地选择Dirichlet distribution作为pi的先验分布,从而我们有:
在这个式子中,我们将Dirichlet分布做了一个简化,其控制参数,我们减少为一个。关于Dirichlet分布的介绍可以看我另外一篇文章Simple Introduction to Dirichlet Process。现在我们需要为Gaussian的均值和方差引入一个控制先验。从我们之前的图模型中,我们发现了均值对精度的依赖(这并不是必须的)。在均值和精度都不知晓的情况下,我们可以为这两个参数引入一个Gaussian-Wishart先验分布,这是在对于高斯分布的两个控制参数均不了解的情况下其共轭先验。从而我们有:
现在,整个问题就完全定义了,接下来就是如何利用Variational Methods来解决这个问题。
首先,回忆一下在Variational Methods里,我们是如何实现近似的。对,我们是利用一种结构上的近似,也就是假设我们现在想要求的分布,可以分解为一系列tractable的分布,从而进行近似于求解。在给定的现在这样一个完全Bayesian Model中,我们选择一种分解方式,来将原有的结构进行分解近似。从而我们得到:
这是一种合理的假设,我们将潜在变量和控制参数分开,从而得到这样的一种分解。这里有几点值得说明:首先,我在前面的文章中提到,我们是将Z分解为几组,从而得到近似模型。那为什么这里除了Z之外,还有别的变量?这是因为,当时我用Z代替的了所有的变量,当时的Z之中包含了控制参数,因为这是一个完全的Bayesian Model。第二个要注意的是,这个分解的假设,是我们在这个例子中作出的唯一假设了。
现在,我们利用之前得到的公式,将现在的这个式子代入,我们可以得到:
而后,我们利用最初根据图模型得到的那个全概率分解形式,可以对上面的式子进行简化,并且将于Z无关的式子都放入常数中,从而得到:
接下来,我们就可以将上面式子中提到的两个分布分别代入,分别可以得到:
以及
我们注意到,这两个式子有相同的部分,为了使得表达更加简洁,我们引入一个新的符号:
从而我们有:
在这个式子的基础上,我们等式两边同时取对数,则我们得到:
这个分布还是没有归一化的,所以我们需要进行归一化,则我们定义:
从而对该分布进行归一化,得到最终的关于Z的分布:
其余参数的近似,我将会在下一篇文章中继续讨论。
An Introduction to Variational Methods (5.1)的更多相关文章
- An Introduction to Variational Methods (5.3)
从之前的文章中,我们已经得到了所有需要求解的参数的优化分布的形式,分别为: 但是,我们从这些分布的表达式中(参见之前的文章),可以发现这些式子并不能够直接求解.这是因为各个参数之间相互耦合,从而导 ...
- An Introduction to Variational Methods (5.2)
我们现在已经得到了关于潜在变量Z的优化分布的表达形式: 其中: 所以现在我们可以得到Z的期望: 另外对于Z还值得一提的是,我们从其优化分布的表达式中可以看出,各个Z的组成部分之间还是相互耦 ...
- 概率主题模型简介 Introduction to Probabilistic Topic Models
此文为David M. Blei所写的<Introduction to Probabilistic Topic Models>的译文,供大家参考. 摘要:概率主题模型是一系列旨在发现隐藏在 ...
- 转:概率主题模型简介 --- ---David M. Blei所写的《Introduction to Probabilistic Topic Models》的译文
概率主题模型简介 Introduction to Probabilistic Topic Models 转:http://www.cnblogs.com/siegfang/archive/2 ...
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...
- deep learning 的综述
从13年11月初开始接触DL,奈何boss忙or 各种问题,对DL理解没有CSDN大神 比如 zouxy09等 深刻,主要是自己觉得没啥进展,感觉荒废时日(丢脸啊,这么久....)开始开文,即为记录自 ...
- PGM1.1-简介
自己根据Jordan大神的资料写的(算翻译?完全不记得了,这是半年前整理的,反正不记得了,如果大神有看到部分重合,那肯定是我借鉴了人家的,本来是一个群里的人大家兴致高说写DL的书(所以这一章并不是书的 ...
- 机器学习经典论文/survey合集
Active Learning Two Faces of Active Learning, Dasgupta, 2011 Active Learning Literature Survey, Sett ...
- Reading lists for new LISA students(转)
Research in General How to write a great research paper Basics of machine learning http://www.iro.um ...
随机推荐
- 深入浅出数据结构C语言版(15)——优先队列(堆)
在普通队列中,元素出队的顺序是由元素入队时间决定的,也就是谁先入队,谁先出队.但是有时候我们希望有这样的一个队列:谁先入队不重要,重要的是谁的"优先级高",优先级越高越先出队.这样 ...
- Linux虚拟机之间实现密钥登陆
Server1与Server2在同一虚拟网络当中,在Server2中使用Server1的Hostname连接Server1,并且无需密码认证. Server1, Hostname: hlmvmea ...
- jmeter系列-------脚本编写格式
1.通常会将用户和服务器的一次交互(页面访问或者提交)请求放在一个简单控制器或者事务控制器,例如微课首页里面包含4个接口都放到简单控制器里 或者一个提交可能,会触发3个接口,那么这3个接口放到一个简单 ...
- postgresql如何维护WAL日志/归档日志
WAL日志介绍 wal全称是write ahead log,是postgresql中的online redo log,是为了保证数据库中数据的一致性和事务的完整性.而在PostgreSQL 7中引入的 ...
- .net基础第一天
.net基础 <head>+控制类标签 +<head> 1 <body>+网页要显示的内容+</body> <body +空格+bgcolor= ...
- Project 3:N级魔方阵
魔方阵:由n*n个数字所组成的n阶方阵,具有各对角线,各横列与纵行的数字和都相等的性质,称为魔方阵.而这个相等的和称为魔术数字.若填入的数字是从1到n*n,称此种魔方阵为n阶正规魔方阵. 目标:输入一 ...
- 微软为啥让免费升Win10?
今天终于赶在截止日期之前把我的联想PC升到win10.微软这次对中国开放的持续一年的免费升级活动主要有两个原因.首先当然是"感恩Windows用户长久支持的回馈".微 ...
- JavaScript 的使用基础总结①
JavaScript 使用 JavaScript 是一种轻量级的编程语言,JavaScript 是可插入 HTML 页面的编程代码,JavaScript 插入 HTML 页面后,可由所有的现代浏览 ...
- java记事本1.2版
功能:实现了新建,打开,保存,退出,复制,剪切,粘贴等功能 效果图:
- C++学习笔记——STL(标准模板库)
1.首先.需要学习C++ 模板的概念 2.C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量.链表. ...