变分贝叶斯EM指的是变分贝叶斯期望最大化(VBEM, variational Bayes expectation maximization),这种算法基于变分推理,通过迭代寻找最小化KL(Kullback-Leibler)距离的边缘分布来近似联合分布,同时利用mean field 近似减小联合估计的复杂度。
  变分贝叶斯EM方程最早是由BEAL M J. 在其论文《Variational Algorithms for Approximate Bayesian Inference》[D], London, UK: University College London, 2003里所提出的[1]  。其具体算法可表示为:在第i次VBEM迭代中,参数分布的更新方程式可表示为VBE步和VBM步。

在VBEM算法中,VBE步骤和VBM步骤均是关于后验分布求均值的,因此隐参数和未知参数之间不再存在区别。
 
一、《VBEM算法由浅入深》
1,EM算法讲得比较直观明了的资料是Andrew NG的machine learning课程的讲稿。CS 229: Machine Learning (Course handouts),第八章就是专门讲EM算法
2,EM的一些code实现。比如MachineLearning-C---code/main.cpp at master · pennyliang/MachineLearning-C---code · GitHub。
3,熟悉完EM算法之后,可以去看变分推断了,关于变分推断的方法,D.Blei一直在推。笔记在此https://www.cs.princeton.edu/courses/archive/fall11/cos597C/lectures/variational-inference-i.pdf。 文章在此https://arxiv.org/abs/1601.00670。笔记是对文章的总结。
4,结合了EM和variational inference的变分EM了,这个可以看香港大学的一份PPT,讲得是使用变分EM推导LDA的过程,很详。http://www.cse.ust.hk/~lzhang/teach/6931a/slides/lda-zhou.pdf

二、采样和变分

 1、Gibbs采样和变分

Gibbs采样:使用邻居结点(相同文档的词)的主题采样值

变分:采用相邻结点的期望。n

这使得变分往往比采样算法更高效:用一次期望计算代替了大量的采样。直观上,均值的信息是高密(dense)的,而采样值的信息是稀疏(sparse)的。

 2、变分概述

变分既能够推断隐变量,也能推断未知参数,是非常有力的参数学习工具。其难点在于公式演算略复杂,和采样相对:一个容易计算但速度慢,一个不容易计算但运行效率高。

平均场方法的变分推导,对离散和连续的隐变量都适用。在平均场方法的框架下,变分推导一次更新一个分布,其本质为坐标上升。可以使用模式搜索(pattern search)、基于参数的扩展(parameter expansion)等方案加速

有时假定所有变量都独立不符合实际,可使用结构化平均场(structured mean field),将变量分成若干组,每组之间独立

变分除了能够和贝叶斯理论相配合得到VB(变分贝叶斯),还能进一步与EM算法结合,得到VBEM,用于带隐变量和未知参数的推断

变分贝叶斯VBEM 由浅入深的更多相关文章

  1. 变分贝叶斯学习(variational bayesian learning)及重参数技巧(reparameterization trick)

    摘要:常规的神经网络权重是一个确定的值,贝叶斯神经网络(BNN)中,将权重视为一个概率分布.BNN的优化常常依赖于重参数技巧(reparameterization trick),本文对该优化方法进行概 ...

  2. NeurIPS 2018 中的贝叶斯研究

    NeurIPS 2018 中的贝叶斯研究 WBLUE 2018年12月21日   雷锋网 AI 科技评论按:神经信息处理系统大会(NeurIPS)是人工智能领域最知名的学术会议之一,NeurIPS 2 ...

  3. 浅析贝叶斯神经网络(Based on Variational Bayesian)

    https://blog.csdn.net/qq_20195745/article/details/82453589 贝叶斯神经网络简介 对于一个神经网络来说,最为核心的是如何根据训练集的数据,得到各 ...

  4. 从贝叶斯到粒子滤波——Round 1

    粒子滤波确实是一个挺复杂的东西,从接触粒子滤波到现在半个多月,博主哦勒哇看了N多篇文章,查略了嗨多资料,很多内容都是看了又看,细细斟酌.今日,便在这里验证一下自己的修炼成果,请各位英雄好汉多多指教. ...

  5. 机器学习实战笔记(Python实现)-03-朴素贝叶斯

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  6. 朴素贝叶斯算法下的情感分析——C#编程实现

    这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Language Pr ...

  7. 朴素贝叶斯(NB)复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 内容: 1.算法概述 贝叶斯分类算法是统计学的一种分类方法,其分类原理就是利用贝叶斯公式根据某 ...

  8. 白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现

    离去年“马尔可夫链进行彩票预测”已经一年了,同时我也计划了一个彩票数据框架的搭建,分析和预测的框架,会在今年逐步发表,拟定了一个目录,大家有什么样的意见和和问题,可以看看,留言我会在后面的文章中逐步改 ...

  9. 【原创】.NET平台机器学习组件-Infer.NET连载(二)贝叶斯分类器

                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 微软Infer.NET机器学习组件文章目录:http:/ ...

随机推荐

  1. bootstrap 在超小屏布局时使用 clearfix

    bootstrap 在超小屏布局时使用 clearfix 先看案例,一共四个 div,使用 col-xs-6, 所以在特别小型设备上时会变成两行. 不过我们发现如果第一个 div 内容多了后会变成如下 ...

  2. 【转】Visual Studio 2012常用快捷键总结

    原文网址:http://blog.csdn.net/yl2isoft/article/details/9886379 写在前面: 都知道,合理使用快捷键可以提高开发效率.但是Visual Studio ...

  3. Python算法应用实战之队列详解

    队列是一种先进先出(First-In-First-Out,FIFO)的数据结构.队列被用在很多地方,比如提交操作系统执行的一系列进程.打印任务池等,一些仿真系统用队列来模拟银行或杂货店里排队的顾客.下 ...

  4. ruby gem install rails 错误解决

    最近打算看ruby. 今天用命令gem install rails的时候碰到这样的错误提示: ERROR:  Error installing XXXXXXXXXXX:            The ...

  5. [转]js清除所有cookies

    来源:http://blog.csdn.net/zzl1120/article/details/6592332 var cookies = document.cookie.split(";& ...

  6. 彻底禁止win10更新

    关闭win10自动更新: 可以用下面方法关闭: 1.首先在服务界面关闭Windows Update服务并设置为禁用并在恢复界面全部如下图设置为无操作. 2.只关闭了Windows Update服务发现 ...

  7. 设置myeclipse文件的打开格式

  8. vlc框架流程解析(转)

    原文地址:http://luzefengoo.blog.163.com/blog/static/1403593882012754481846/ 第二部分 程序框架实现 1. 播放列表文件src/pla ...

  9. 1 数据库开发--MySQL介绍

    1.数据库管理软件 C/S 并发.锁 :SQL语句.语法 基本管理和语法学习 一.介绍: mysql数据库管理软件: 套接字:服务端,客户端:客户端可访问服务端得数据 1.支持并发:操作得是共享得数据 ...

  10. IOS CGAffineTransform 用于视图平移,放缩,旋转

    转载于:http://blog.csdn.net/lc_obj/article/details/17454825 CGAffineTransform 今天碰到了一个旋转放缩图片的一个demo,在看的过 ...