Online Bayesian Probit Regression介绍之Factor Graph
下面就开始讲讲概率图中的Factor Graph。概率图博大精深,非我等鼠辈能够完全掌握,我只是通过研究一些通用的模型,对概率图了解了一点皮毛。其实我只是从概率这头神兽身上盲人摸象地抓掉几根毛,我打算就讲讲我抓掉这几根毛。
Factor Graph 是概率图的一种,概率图有很多种,最常见的就是Bayesian Network (贝叶斯网络)和Markov Random Fields(马尔可夫随机场)。在概率图中,求某个变量的边缘分布是常见的问题。这问题有很多求解方法,其中之一就是可以把Bayesian Network和Markov Random Fields 转换成Facor Graph,然后用sum-product算法求解。
Bayesian Network,Bayesian Network比较容易理解,主要是描述随机变量之间的条件依赖,用圈表示随机变量(random variables),用箭头表示条件依赖(conditional dependencies)
Bayesian Network的联合概率分布可以用贝叶斯链式法则来表示

例如:

p(A,B)=p(A)p(B|A)

p(A,B,C)=p(A)p(B|A)p(C|A,B)
Markov Random Fields是无向的概率图,和Bayesian Network一样,用圈表示变量,但是边于是无向的,只是表示变量之间有关系,不一定是条件概率的关系。但是也可以表示变量之间的条件独立性,但是没有有向图那么直观。
对于Markov Random Fields只是看到一些介绍,没又真正试过,所以不敢多说。
下面重点介绍Factor Graph和sum-product的算法
Factor Graph 是个二部图,有两类节点(圆代表variable,方块代表function)和无向边构成

例如上图的Factor Graph可以写成如下的联合概率分布:

其中fA,fB,fC,fD,fE为各函数,表示变量之间的关系,可以是条件概率也也可以是其他关系(如Markov Random Fields中的势函数)。
基于Factor Graph可以用sum-product算法可以高效的求各个变量的边缘分布。
sum-product算法,也叫belief propagation,有两种消息,一种是变量(Variable)到函数(Function)的消息(就是方块到圆的消息):mx→f,另外一种是函数(Function)到变量(Variable)的消息:mf→x

Factor Graph如果是树形的,也就是无环的,一定会存在叶子节点,一般从以下两种情况开始:

这时变量到函数的消息为: mx→f=1

这时变量到函数的消息为:mf→x=f(x)
如果Factor Graph是无环的,从以上两种叶子节点一定可以准确的求出任意一个变量的边缘分布,但是如果是有环的,是无法用sum-product算法准确求出来边缘分布的,但是我们也可以用sum-product算法来求,一般是选择环中的某个消息,随机赋个初值,然后用sum-product算法,迭代下去,因为有环,一定会到达刚才赋初值的那个消息,然后更新那个消息,继续迭代,这样下去,直到没有消息再改变为止,这种算法叫loopy belief propagation。LBF不能保证收敛,但是很多情况下它是收敛的。
举个例子,如下图,我们要求p(x3)



这不是偶然现象

Factor Graph和sum-product基本概率就到这里,估计没有学过和用过概率图的,到这步已经是云里雾里了,但是没有关系,我觉得一切理论,只用把它运用到实际中,才能算真正懂得。






此条目是由 admin 发表在 BPR 分类目录的。将固定链接加入收藏夹。
Online Bayesian Probit Regression介绍之Factor Graph的更多相关文章
- Factor Graph因子图
参考链接1: 参考链接2: 参考ppt3: Factor Graph 是概率图的一种,概率图有很多种,最常见的就是Bayesian Network (贝叶斯网络)和Markov Random Fiel ...
- 贝叶斯线性回归(Bayesian Linear Regression)
贝叶斯线性回归(Bayesian Linear Regression) 2016年06月21日 09:50:40 Duanxx 阅读数 54254更多 分类专栏: 监督学习 版权声明:本文为博主原 ...
- [ML] Bayesian Linear Regression
热身预览 1.1.10. Bayesian Regression 1.1.10.1. Bayesian Ridge Regression 1.1.10.2. Automatic Relevance D ...
- [Scikit-learn] 1.1 Generalized Linear Models - Bayesian Ridge Regression
1.1.10. Bayesian Ridge Regression 首先了解一些背景知识:from: https://www.r-bloggers.com/the-bayesian-approach- ...
- factor graph model
主实验 文慧:用户,商品,评分,review,ranking. 数据集:数据规模,论文源代码
- 机器学习理论基础学习17---贝叶斯线性回归(Bayesian Linear Regression)
本文顺序 一.回忆线性回归 线性回归用最小二乘法,转换为极大似然估计求解参数W,但这很容易导致过拟合,由此引入了带正则化的最小二乘法(可证明等价于最大后验概率) 二.什么是贝叶斯回归? 基于上面的讨论 ...
- [ML] Bayesian Logistic Regression
简单概率分类 Ref: 逻辑回归与朴素贝叶斯有什么区别? Ref: 机器学习笔记——逻辑回归(对数几率回归)和朴素贝叶斯分类器的对比 首先,搞清楚一个问题. naive bayes 能分类:逻辑回归也 ...
- 微软的一篇ctr预估的论文:Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine。
周末看了一下这篇论文,觉得挺难的,后来想想是ICML的论文,也就明白为什么了. 先简单记录下来,以后会继续添加内容. 主要参考了论文Web-Scale Bayesian Click-Through R ...
- GMIS 2017 大会陈雨强演讲:机器学习模型,宽与深的大战
https://blog.csdn.net/starzhou/article/details/72819374 2017-05-27 19:15:36 GMIS 2017 10 0 5 ...
随机推荐
- 点击grid单元格弹出新窗口
实现功能:点击指定单元格后会弹出新窗口,并且最后一行合计不会触发单元格触发函数 <script type="text/javascript"> grid.on('cel ...
- java HashSet改用
写的一个Student类如下: 上面是直接使用的HashSet集合,系统会把new Student() 当做地址不用来出来,所以结果如下: 然后我在Student类中重写了hashCode()和eq ...
- MySQL的JOIN(三):JOIN优化实践之内循环的次数
这篇博文讲述如何优化内循环的次数.内循环的次数受驱动表的记录数所影响,驱动表记录数越多,内循环就越多,连接效率就越低下,所以尽量用小表驱动大表.先插入测试数据. CREATE TABLE t1 ( i ...
- servlet中的字符编码过滤器的使用
一:简介 Servlet过滤器是客户端和目标资源的中间层组件,主要是用于拦截客户端的请求和响应信息.如当web容器收到一条客户端发来的请求 web容器判断该请求是否与过滤器相关联,如果相关联就交给过滤 ...
- 第4阶段——制作根文件系统之编译配置安装busybox(3)
在上一节分析出制作一个最小的根文件系统至少需要: (1)/dev/console(终端控制台, 提供标准输入.标准输出以及标准错误) /dev/null (为空的话就是/dev/null, 所有写到 ...
- JavaScript中你所不知道的Object(一)
Object实在是JavaScript中很基础的东西了,在工作中,它只有那么贫瘠的几个用法,让人感觉不过尔尔,但是我们真的了解它吗? 1. 当我们习惯用 var a = { name: 'tarol' ...
- 我来给.Net设计一款HttpClient
1前言 时间飞快,转眼半年,碌碌无为,眼下就要三十而立,回想三年前的今天,我将NetworkSocket库开放到github,一直在更新与学习,不求有这个库能有多好,只求自己在过程能成长,将领悟到一些 ...
- 201521123063 《java程序设计》第六周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123036 《Java程序设计》第10周学习总结
本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 书面作业 本次PTA作业题集异常.多线程 finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...
- 201521123035《Java程序设计》第十四周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...