从之前的文章中,我们已经得到了所有需要求解的参数的优化分布的形式,分别为:

但是,我们从这些分布的表达式中(参见之前的文章),可以发现这些式子并不能够直接求解。这是因为各个参数之间相互耦合,从而导致得到的不是一个直接可以得到的解,所以我们需要进行迭代求解,正如我们在之前所描述的一样。我们观察这三组参数的表达形式,我们会发现,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)的更多相关文章

  1. An Introduction to Variational Methods (5.1)

    在这篇文章中,我引用Bishop书中的一个例子,来简单介绍一下Variational Methods的应用.想要更详细地理解这个例子,可以参考Bishop的书Pattern Recongnition ...

  2. An Introduction to Variational Methods (5.2)

    我们现在已经得到了关于潜在变量Z的优化分布的表达形式: ‍ 其中: ‍ 所以现在我们可以得到Z的期望: ‍ 另外对于Z还值得一提的是,我们从其优化分布的表达式中可以看出,各个Z的组成部分之间还是相互耦 ...

  3. 概率主题模型简介 Introduction to Probabilistic Topic Models

    此文为David M. Blei所写的<Introduction to Probabilistic Topic Models>的译文,供大家参考. 摘要:概率主题模型是一系列旨在发现隐藏在 ...

  4. 转:概率主题模型简介 --- ---David M. Blei所写的《Introduction to Probabilistic Topic Models》的译文

    概率主题模型简介 Introduction to Probabilistic Topic Models      转:http://www.cnblogs.com/siegfang/archive/2 ...

  5. PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )

    主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...

  6. deep learning 的综述

    从13年11月初开始接触DL,奈何boss忙or 各种问题,对DL理解没有CSDN大神 比如 zouxy09等 深刻,主要是自己觉得没啥进展,感觉荒废时日(丢脸啊,这么久....)开始开文,即为记录自 ...

  7. PGM1.1-简介

    自己根据Jordan大神的资料写的(算翻译?完全不记得了,这是半年前整理的,反正不记得了,如果大神有看到部分重合,那肯定是我借鉴了人家的,本来是一个群里的人大家兴致高说写DL的书(所以这一章并不是书的 ...

  8. 机器学习经典论文/survey合集

    Active Learning Two Faces of Active Learning, Dasgupta, 2011 Active Learning Literature Survey, Sett ...

  9. Reading lists for new LISA students(转)

    Research in General How to write a great research paper Basics of machine learning http://www.iro.um ...

随机推荐

  1. 为什么a标签中使用img后,高度多了几个像素?

    <li><a href="#"><img src="images/audio.jpg" alt="">& ...

  2. [WPF]如何调试Data Binding

    前言 在WPF开发中,将ViewModel中对象绑定到UI上时,会出现明明已经将数据对象Binding到UI,但是UI上就是不显示等等的问题.这篇博客将介绍WPF Data Binding相关的内容, ...

  3. 【ASP.NET MVC】View与Controller之间传递数据

    1   概述 本篇文章主要从操作上简要分析Controller<=>View之间相互传值,关于页面之间传值,如果感兴趣,可参考我另外一篇文章ASP.NET 页面之间传值的几种方式 . Co ...

  4. js封装成插件-------Canvas统计图插件编写

    之前就说过,我想写一个canvas画统计图的插件,现在写好了 先说下实现的功能吧: 1.可以通过自定义X轴坐标属性和Y轴坐标属性按比例画出统计图 2.可以选择画折现图还是柱形统计图,或者两者都实现 3 ...

  5. Linux_window与linux之间文件互传,上传下载

    window与linux之间文件互传 运行环境:Centos os7 + win8.1 +putty putty:是一个Telnet,ssh,rlogin,纯tcp以及串行接口连接软件,由于linux ...

  6. 解决Android Studio中Refreshing gradle project时间过长的最简单方法

    Refreshing gradle project往往出现在Gradle出现更新,需要从墙外的网重新拖下来的前提下.具体可以查看以下文件:/path/to/project/gradle/wrapper ...

  7. 转: 【Java并发编程】之十八:第五篇中volatile意外问题的正确分析解答(含代码)

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17382679 在<Java并发编程学习笔记之五:volatile变量修饰符-意料之外 ...

  8. centos6.6配置rsync+sersync实现实时同步分布式多客户端分发同步

    1.sersync项目: sersync项目利用inotify与rsync技术实现对服务器数据实时同步到解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rsync是目 ...

  9. 201521123110 《Java程序设计》第7周学习总结

    1. 本章学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { re ...

  10. 201521123112《Java程序设计》第3周学习总结

    1.本周学习总结 使用工具:百度脑图 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int ...