An Introduction to Variational Methods (5.3)
从之前的文章中,我们已经得到了所有需要求解的参数的优化分布的形式,分别为:
但是,我们从这些分布的表达式中(参见之前的文章),可以发现这些式子并不能够直接求解。这是因为各个参数之间相互耦合,从而导致得到的不是一个直接可以得到的解,所以我们需要进行迭代求解,正如我们在之前所描述的一样。我们观察这三组参数的表达形式,我们会发现,Z的求解依赖于r这个变量,而r这个变量的求解依赖于其余的所有参数。我们再看其他的参数,这些参数的求解依赖于r。从而我们得到了这个求解过程中的耦合部分。所以我们可以得到一个初步的求解迭代过程:
1. 初始化所有的参数,包括Z,r,pi,mu,Lambda等控制参数以及其超参数;
2. 保持pi,mu,Lambda等控制参数不变,根据表达式,求解r,进而求解Z。
3. 保持r和Z不变,根据表达式求解pi,mu,Lambda等控制参数。
如此不断往复,直至结果达到收敛精度要求或者超过一定迭代次数为止。
到这一步,我们可以基本认为,这个问题得到了解决。但是其中还有很多细节,我并没有在文中给予详细的解答,对于迭代过程的求解,也并不是一句话就可以带过的。
我们现在回头再去观察这个问题,我们会发现一个有趣的地方。那就是我们所求解的优化分布的形式,和我们所提出来的prior的形式是完全相同的。这是一个偶然现象,还是必然呢?答案是,在这个问题中,这是一种必然的过程,这是因为 我们选择的就是所希望求解分布的共轭先验(conjugate prior)。我简单解释一下这个概念:
对于一个给定的分布p(X|W),我们可以寻找其一个先验分布p(W),使得该先验和似然函数的乘积与先验分布有相同的函数形式,而我们知道,后验分布p(W|X)正比于先验和似然函数的乘积,从而与先验有相同的函数形式。
这样一个共轭先验的好处,是使得我们可以不断地重复先验转向后验的过程,使得我们可以不断利用已有的数据去理解新的数据,而后将它们放在一起,都作为已有的数据,再去理解新的数据,如此不断往复。而且共轭先验的函数形式也让数学形式上的分析变得更为容易,我们可以只需要考虑整个分布的一些重要的有特征的部分,而不需要对于其归一化常数等不重要的部分进行多次计算,只需要最后的时候根据函数形式进行对应就可以了。
而一个有意思的地方在于,对于指数家族函数的分布来说,每一个都存在一个对应的共轭先验,我简单介绍一下,对于形式为如下的分布,都可以成为指数家族分布:
x可以为标量,也可以为矢量。u(x)为x的某种形式a的函数,而eta称作natural parameters,其函数g(eta)可以看做是一个归一化系数。
现在,我们为参数引入一个先验:
而我们给定一个数据集,也可以计算其似然值:
其中
这样,我们将先验和似然函数相乘,可以得到:
而这个函数,与先验函数具有相同的函数形式。这时候,我们就找到了一个共轭先验。而我们的原函数,是指数家族函数分布的一般形式,这也就意味着,每一个指数家族函数分布,都有其对应的共轭先验。
An Introduction to Variational Methods (5.3)的更多相关文章
- An Introduction to Variational Methods (5.1)
在这篇文章中,我引用Bishop书中的一个例子,来简单介绍一下Variational Methods的应用.想要更详细地理解这个例子,可以参考Bishop的书Pattern Recongnition ...
- 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 ...
随机推荐
- quartz.net使用(通过配置文件进行配置)
在项目Nuget包管理器中搜索:quartz,安装完成之后再项目中引用即可 先定义一个Job,需要实现IJob接口: public class TestJob : IJob { public void ...
- js,jQuery实现可关闭悬浮框广告特效,兼容(谷歌,火狐,Ie)
注意不能直接用close()命名关闭广告函数,避免冲突. javascript实现方法: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- Appium环境搭建(python)
appium是一个开源的,适用于原生或者移动网络和混合应用程序在 iOS 和 Android 平台上的的开源自动化测试框架.在这里,详细的介绍Appium的环境搭建步骤. 1.安装Node.js在ht ...
- vue中数据双向绑定的实现原理
vue中最常见的属v-model这个数据双向绑定了,很好奇它是如何实现的呢?尝试着用原生的JS去实现一下. 首先大致学习了解下Object.defineProperty()这个东东吧! * Objec ...
- Spring Boot + Dubbo 可运行的例子源码-实现服务注册和远程调用
最近公司的一个分布式系统想要尝试迁移到Dubbo,项目本身是Spring Boot的,经过一些努力,最终也算是搭建起一个基础的框架了,放到这里记录一下.需要依赖一个外部的zookeeper. 源码地址 ...
- 在数组a中,a[i]+a[j]=a[k],求a[k]的最大值,a[k]max——猎八哥fly
在数组a中,a[i]+a[j]=a[k],求a[k]的最大值,a[k]max. 思路:将a中的数组两两相加,组成一个新的数组.并将新的数组和a数组进行sort排序.然后将a数组从大到小与新数组比较,如 ...
- idea 给maven项目添加依赖(二)
这里接着上一篇来 我们观察目录发现有两个pom.xml(project object module) 项目是里面的,所以外面的先不管它. 点击里面的pom.xml 1.在<url>节点下面 ...
- ★浅谈Spanking情节
- 设计模式-单体模式(C++)
设计模式-单体模式 单体模式在使用非常方便,适合于单一的对象,例如全局对象的抽象使用. 需要注意的是单体模式不可继承 // 实现 Singleton.h #ifndef __SINGLETON_H__ ...
- 第二次项目冲刺(Beta阶段)5.20
1.提供当天站立式会议照片一张 会议内容: ①检查前一天的任务情况,心得分享以及困难分析. ②制定新一轮的任务计划. 2.每个人的工作 (1)工作安排 队员 今日进展 明日安排 王婧 #42文件分类改 ...