变分法


文章目录

  • 变分法
    • Introduction
    • 变分法例
      • 朴素平均场
      • 循环传播算法(loopy belief propagation)
        • 引入:sum-product算法(LBP的基础:如何计算边缘分布)
        • LBP

Introduction

对解的精度进行优化的近似推理算法

基本思想: 通过变分转换(variational transformation),将概率推理问题转换为变分优化(variational optimization)问题来处理。

但是对于比较困难的概率推理问题,变分法也难以获得精确的结果,此时可以对变分优化问题进行适当的放松,如对其目标函数和约束条件集进行简化,之后通过迭代的方法期望获取一个近似解。

变分法例

朴素平均场

朴素平均场理论( naive mean field theory)是统计力学常用的近似方法.它关心的是在一个包含众多粒子的系统中,其它粒子对某个特定粒子的作用.它的基本思想是用一个“平均了的场”来 代替 原来的系统,并在其中对上述作用进行
估计。这样,它把一个高自由度的复杂问题转化为一个低自由度的简单问题来近似处理。把朴素平均场的基本思想应用于贝叶斯网推理,可以在拥有众多变量且连接稠密的网络中,近似计算后验概率。

计算:P(E=e)和P(Z∣E=e)P(E=e) 和 P(Z | E=e)P(E=e)和P(Z∣E=e) ,所有变量集合:X,证据:E,所有非证据变量:Z = X - E ={Z1,Z2,...,Zn}\{ Z_1,Z_2,...,Z_n \}{Z1​,Z2​,...,Zn​}


  1. 转换概率推理问题为变分优化问题
    J(Q)=logP(E=e)−KL[Q[Z],P(Z∣E=e)]J(Q) = log P(E=e) - KL[ Q[Z], P(Z|E=e)]J(Q)=logP(E=e)−KL[Q[Z],P(Z∣E=e)]

Q(Z)Q(Z)Q(Z) :作为一族用于近似 P(Z∣E=e)P(Z|E=e)P(Z∣E=e) 的参数化分布,被称为 变分分布(variational distribution)
KL[Q[Z],P(Z∣E=e)]KL[ Q[Z], P(Z|E=e)]KL[Q[Z],P(Z∣E=e)] :变分分布 Q(Z)Q(Z)Q(Z)和待求后验分布 P(Z∣E=e)P(Z|E=e)P(Z∣E=e) 之间的KL距离。

  1. 考虑目标函数J(Q)J(Q)J(Q)的最大值点Q∗Q^*Q∗,由于KL距离非负,且只有当它涉及的两个分布相同时候才取最小值 0,所以令J(Q)J(Q)J(Q) 取最大值的最优变分分布就是后验概率分布:
    Q∗(Z)=P(Z∣E=e)Q^*(Z) = P( Z | E=e )Q∗(Z)=P(Z∣E=e)
    此时:
    J(Q∗)=log⁡P(E=e)J(Q^*) = \log P(E=e)J(Q∗)=logP(E=e)

  2. 展开 1 中公式:

  • 通过KL散度:

J(Q)=logP(E=e)−∑ZQ(Z)log⁡Q(Z)P(Z∣E=e)J(Q) = log P(E=e) - \sum_ZQ(Z)\log{\frac{Q(Z)}{P(Z|E=e)}} J(Q)=logP(E=e)−Z∑​Q(Z)logP(Z∣E=e)Q(Z)​

  • 通过条件概率公式 P(Z∣E=e)=P(Z,E=e)P(E=e)P(Z|E=e) = \frac{P(Z, E=e)}{P(E=e)}P(Z∣E=e)=P(E=e)P(Z,E=e)​ :

=logP(E=e)−∑ZQ(Z)log⁡Q(Z)P(E=e)P(Z∣E=e)= log P(E=e) - \sum_ZQ(Z)\log{\frac{Q(Z)P(E=e)}{P(Z|E=e)}} =logP(E=e)−Z∑​Q(Z)logP(Z∣E=e)Q(Z)P(E=e)​

  • log展开 :log⁡a(MNW)=log⁡aN+log⁡aM−log⁡aW\log_a(\frac{MN}{W}) = \log_aN + \log_aM - \log_aWloga​(WMN​)=loga​N+loga​M−loga​W:

=logP(E=e)−∑ZQ(Z)[log⁡Q(Z)+log⁡P(E=e)−log⁡P(Z∣E=e)]= log P(E=e) - \sum_ZQ(Z)[ \log Q(Z) + \log P(E=e) - \log P(Z|E=e) ]=logP(E=e)−Z∑​Q(Z)[logQ(Z)+logP(E=e)−logP(Z∣E=e)]

  • 清除 log⁡P(E=e)\log P(E=e)logP(E=e):

=−∑ZQ(Z)log⁡Q(Z)+∑ZQ(Z)log⁡P(Z∣E=e)= - \sum_ZQ(Z)\log Q(Z) + \sum_ZQ(Z)\log{P(Z|E=e)} =−Z∑​Q(Z)logQ(Z)+Z∑​Q(Z)logP(Z∣E=e)

  • 通过Entropy的公式:

=HQ(Z)+∑ZQ(Z)logP(Z,E=e)= H_Q(Z) + \sum_ZQ(Z)logP(Z,E=e)=HQ​(Z)+Z∑​Q(Z)logP(Z,E=e)

HQ(Z)H_Q(Z)HQ​(Z) 是ZZZ相对于变分分布的Q(Z)Q(Z)Q(Z)的熵。

  1. 此时,只要解决变分优化问题,就得到了原推理问题的 精确解 精确解 精确解

BUT,上述精确解并不容易得到,一个根本原因是变分分布Q(Z)Q(Z)Q(Z)的空间难以显示表达。
因此,为了简化计算,朴素平均场根据平均场理论思想,将变分分布限制中一类最简单的分布上,即使用所有变量都相互独立的分布来近似后验分布:
Q(Z)=∏i=inQi(Zi)Q(Z) = \prod_{i=i}^n{Q_i(Z_i)}Q(Z)=i=i∏n​Qi​(Zi​)
由此通过第 3 步推出的公式 结合 变量都独立同分布的假设(或者说 限制):
J(Q)=HQ(Z)+∑ZQ(Z)logP(Z,E=e)J(Q) = H_Q(Z) + \sum_ZQ(Z)logP(Z,E=e)J(Q)=HQ​(Z)+Z∑​Q(Z)logP(Z,E=e)
=∑i=1nHQi(Zi)−∑Z[∏i=inQi(Zi)]P(Z,E=e)= \sum_{i=1}^n{H_{Q_i}(Z_i)}- \sum_Z[ \prod_{i=i}^n{Q_i(Z_i)}] P(Z, E=e) =i=1∑n​HQi​​(Zi​)−Z∑​[i=i∏n​Qi​(Zi​)]P(Z,E=e)

由于上式最大值和最大值点一般没有闭公式解。变分分布Q(Z)Q(Z)Q(Z)的边缘分布可以独立的变化。因此,利用如下迭代法来优化目标函数J(Q)J(Q)J(Q)。

从某个初始分布 Q^0(Z)
while 直到收敛for i=1 : n以J(Q)为目标函数,对变分边缘分布Qi(Zi)进行优化。

其中,优化Qi(Zi)Q_i(Z_i)Qi​(Zi​)的过程中,其他各个变分边缘分布{Qj(Zj)∣j≠i}\{Q_j(Z_j) | j \neq i\}{Qj​(Zj​)∣j​=i}均被作为常数(表示其中变量相互独立),因此每次优化 J(Q)J(Q)J(Q) 过程中,J(Q)J(Q)J(Q)仅为Qi(Zi)Q_i(Z_i)Qi​(Zi​)的函数:

J(Qi)=θ+H(Qi)+∑ZiQi(Zi)EQ[log⁡P(Z,E=e)∣Zi]J(Q_i)=\theta + H(Q_i) + \sum_{Z_i} Q_i(Z_i) E_Q[\log P(Z, E=e) | Z_i]J(Qi​)=θ+H(Qi​)+Zi​∑​Qi​(Zi​)EQ​[logP(Z,E=e)∣Zi​]

其中,θ\thetaθ是与 Qi(Zi)Q_i(Z_i)Qi​(Zi​)无关的常数,而
EQ[log⁡P(Z,E=e)∣Zi]=∑Z−Zi[∏j=1,j≠inQj(Zj)]log⁡P(Z,E=e)E_Q[\log P(Z, E=e) | Z_i] = \sum_{Z - {Z_i}}[\prod^n_{j=1,j\neq i}Q_j(Z_j)]\log P(Z,E=e)EQ​[logP(Z,E=e)∣Zi​]=Z−Zi​∑​[j=1,j​=i∏n​Qj​(Zj​)]logP(Z,E=e)

是log⁡P(Z,E=e)\log{P(Z, E= e)}logP(Z,E=e)在分布Q(Z−Zi∣Zi)Q(Z-Z_i | Z_i)Q(Z−Zi​∣Zi​)下的期望值。

Notice:∑ZiQ(Zi)=1\sum_{Z_i}Q(Z_i) = 1∑Zi​​Q(Zi​)=1。


为了对J(Qi)J(Q_i)J(Qi​)进行优化,引入拉格朗日乘数( Lagrange multiplier) :λ\lambdaλ,并且求解如下方程组:

∂∂Qi(Zi=z)[J(Qi)+λ(∑ZiQ(Zi)−1)]=0,∀z∈ΩZi\frac{\partial}{\partial Q_i(Z_i =z)}[J(Q_i) + \lambda(\sum_{Z_i}Q(Z_i)-1)] = 0, \forall z \in \Omega_{Z_i}∂Qi​(Zi​=z)∂​[J(Qi​)+λ(Zi​∑​Q(Zi​)−1)]=0,∀z∈ΩZi​​

===>
−log⁡[Qi(Zi=z)]+1+EQ[logP(Z,E=e)∣Zi]+λ=0-\log{ [Q_i(Z_i = z)]} +1 + E_Q[log P(Z, E=e) | Z_i] + \lambda = 0−log[Qi​(Zi​=z)]+1+EQ​[logP(Z,E=e)∣Zi​]+λ=0

由上式可得到如下更新Qi(Zi)Q_i(Z_i)Qi​(Zi​)的平均场方程( mean field equation):
Qi(Zi)=1aieEq[log⁡P(Z,E=e)∣Zi]Q_i(Z_i) = \frac{1}{a_i}e^{E_q[\log P(Z, E=e) | Z_i]}Qi​(Zi​)=ai​1​eEq​[logP(Z,E=e)∣Zi​]
其中aia_iai​是一个归一化常数:
∑ZieEq[log⁡P(Z,E=e)∣Zi]\sum_{Z_i} e^{E_q[\log P(Z, E=e) | Z_i]}Zi​∑​eEq​[logP(Z,E=e)∣Zi​]

上述迭代过程的每一步都将使J(Q)J(Q)J(Q)增大,因此它最终会收敛.但是不一定会收敛到全局最优,初始点的选取和迭代更新的顺序都会影响到解的质量。
朴素平均场法直接对所求的后验概率分布的精度进行优化,概念清晰,算法的收敛速度比随机抽样法快。当网络中变量数目多、连接稠密,但变量之间的依赖关系却比较弱的时候,它可以给出一个较好的结果。
但是,实际中变分 平均场分布 ∏i=1nQi(Zi)\prod_{i=1}^nQ_i(Z_i)∏i=1n​Qi​(Zi​) 往往过于简单,不能很好地近似真实的后验分布。

循环传播算法(loopy belief propagation)

在贝叶斯网发展初期,Pearl (1986)提出了一个仅适用于底图而不含环的网络的精确推理算法(消息传递算法 )。后来人们发现,如果把该算法在底图含环的BN网络上强制运行,往往也可以得到一个较好的近似解,这就是循环传播(loopy belief propagation)算法,又称为迭代信度传播(iterative belief propagation)算法。
底图:贝叶斯网络,马尔可夫网络。
这儿说的底图不含环表示的是贝叶斯网络去掉方向之后的无向图不存在环。另一种解释是:BN网络中不存在两条或多条 A节点到 B节点的路径。

因子图— 概念、用途

在概率图中,求某个 变量的边缘分布 是常见的问题。这问题有很多求解方法,其中之一就是把贝叶斯网络或马尔科夫随机场转换成因子图,然后使用Belief propagation (如:sum-product算法,max-product算法)。

引入:sum-product算法(LBP的基础:如何计算边缘分布)


注:本小节借鉴文章: 从贝叶斯方法谈到贝叶斯网络


  • 如何由联合概率分布求边缘概率分布

Answer: 对xkx_kxk​外的其它变量的概率求和,最终剩下xkx_kxk​的概率。
f(xk)=∑{x1,...,xn}−xkf(x1,...,xn)f(x_k) = \sum_{\{x_1,...,x_n\} - x_k}f(x_1,...,x_n)f(xk​)={x1​,...,xn​}−xk​∑​f(x1​,...,xn​)

  • BN的联合分布表示?

P(x1,x2,...,xn)=∑i=1nP(xi∣Pa(xi))P(x_1,x_2,...,x_n) = \sum^n_{i=1} P(x_i|Pa(x_i))P(x1​,x2​,...,xn​)=i=1∑n​P(xi​∣Pa(xi​))

  • 转换为因子表示?

f(x1,x2,...,xn)=∑i=1nf(xi,Pa(xi))f(x_1,x_2,...,x_n) = \sum^n_{i=1} f(x_i , Pa(x_i))f(x1​,x2​,...,xn​)=i=1∑n​f(xi​,Pa(xi​))
一个因子图表示(示例):

  • 提取公因子

f(x3)=(∑x1,x2f1(x1)f2(x2)f3(x1,x2,x3))f(x_3) = \left( \sum_{x_1,x_2}f_1(x_1)f_2(x_2)f_3(x_1,x_2,x_3)\right)f(x3​)=(x1​,x2​∑​f1​(x1​)f2​(x2​)f3​(x1​,x2​,x3​))
∗(∑x4,x5f4(x4)f5(x5)f5(x3,x4,x5)(∑x6,x7f6(x5,x6,x7)f7(x7)))*\left( \sum_{x_4,x_5}f_4(x_4)f_5(x_5)f_5(x_3,x_4,x_5) \left( \sum_{x_6,x_7}f_6(x_5,x_6,x_7) f_7(x_7) \right) \right)∗(x4​,x5​∑​f4​(x4​)f5​(x5​)f5​(x3​,x4​,x5​)(x6​,x7​∑​f6​(x5​,x6​,x7​)f7​(x7​)))

图片来自于:贝叶斯网络

注: 感觉和变量消元法很像,仔细思考之后。变量消元法与1990年Zhang和Poole提出,而消息传播由1986年pearl提出。消息传播方法是为了解决边缘概率问题P(X)P(X)P(X),而变量消元法是计算后验概率P(Q∣E)P(Q|E)P(Q∣E)问题。
但实际上,变量消元法是先将P(Q∣E)P(Q|E)P(Q∣E)转换为 P(Q,E)P(Q,E)P(Q,E)来计算,然后又转换回去得出结果。在计算P(Q,E)P(Q,E)P(Q,E)过程中计算步骤和消息传播是感觉差不多。变量消元法需要一个消元节点顺序作为输入。

感觉 sum-product、belief propagation和 Variable elimination 其实说的是一个东西。
(2020-12-10:学习BN inference的第一周)


当计算X3X_3X3​的边缘分布时,其他所有信息通过连接X3X_3X3​的因子节点传播过来。



如果因子图是无环的,则sum-product一定可以准确的求出任意一个变量的边缘分布,如果是有环的,则无法用sum-product算法准确求出来边缘分布。

但是,如果贝叶斯网络中存在环(这儿的环是 去掉所有方向后存在无向环,而不是说有向的环),那么消息可能会永远的传递下去。如下图:

解决存在无向环时候的方法:

  1. 删除若干边,使其不存在环
  2. 重新构造没有环的BN

除了sum-product算法,还有一个max-product 算法。
唯一的区别: max-product 算法就在上面sum-product 算法的基础上把求和 ∑\sum∑ 符号换成求最大值max⁡\maxmax的符号即可!


LBP

上一部分对LBP的基础方法,消息传递进行了介绍。

注 : 本小节认为 BP = sum-product = Variable elimination

基本步骤:先在网络中各个节点之间迭代的进行信息传播,然后利用网络中的信息近似计算任一节点的信度(后验概率分布)。

上一部分说了,sum-product一般在底图无环的BN中可以很好的运行,但是在底图有环的BN中,可能会陷入无限循环。但是 《贝叶斯网络引论》一书6.2.2 循环传播算法 这一章节中,将BP算法强制在底图有环的BN上强制运行,往往可以得到一个较好的近似解,然后将这种方法称为:循环传播算法(Loopy belief propagation)和 迭代信度传播(Iterative belief propagation)。

在这里我有点迷糊,所以去查询了 Loopy belief propagation 的文献[3],文献中对 信念传播算法 强制在存在环的网络中运行进行了研究。文献解答了我的疑惑。

【参考文献】

[1] 厉海涛,金光,周经伦,周忠宝,李大庆.贝叶斯网络推理算法综述[J].系统工程与电子技术,2008(05):935-939.
[2] 张连文, 郭海鹏. 贝叶斯网引论, 科学出版社, 2006.
[3] Murphy K P, Weiss Y, Jordan M. Loopy belief propagation for approximate inference : an empirical study[C].Proceedings of Uncertain ty in Artificial Intelligence, 1999 :467-475.

贝叶斯网络+推理+近似推理+变分法相关推荐

  1. 贝叶斯网络推理算法简单罗列

    题目:贝叶斯网络推理算法简单罗列 上一篇<贝叶斯网络与最大可能解释(MPE)问题>理清了最大可能解释(Most Probable Explanation, MPE)的概念,接下来准备在MA ...

  2. 贝叶斯网络在计算机,贝叶斯网络的特性 - 浙江大学计算机学院.ppt

    贝叶斯网络的特性 - 浙江大学计算机学院 内容提纲 何谓贝叶斯网络? 贝叶斯网络的语义 条件分布的有效表达 贝叶斯网络中的精确推理 贝叶斯网络中的近似推理 课后习题.编程实现及研读论文 7.1 何谓贝 ...

  3. 贝叶斯网络python实战(以泰坦尼克号数据集为例,pgmpy库)

    文章目录 贝叶斯网络简介 贝叶斯推断思路 贝叶斯网络 贝叶斯网络的实现 应用步骤 泰坦尼克数据集背景介绍 模型结构搭建 模型参数构建 贝叶斯估计器 推理 自动设计网络结构->使用结构学习方法 模 ...

  4. 贝叶斯网络入门系列之一:资料篇

    贝叶斯网络入门之一:资料篇 基础教材 视频教程 编程实现 好文分享 基础知识篇: 基础教材 基础教材推荐的是2006年出版的<贝叶斯网络引论>[张连文,郭文鹏],总体分为四个部分: ①贝叶 ...

  5. 数据挖掘 贝叶斯网络

    贝叶斯定理 贝叶斯定理是关于随机事件A和B的条件概率的一则定理. 贝叶斯网络是一种概率网络,它是基于概率推理的图形化网络,而贝叶斯公式则是这个概率网络的基础.贝叶斯网络是基于概率推理的数学模型,所谓概 ...

  6. 分类算法之贝叶斯网络(Bayesian networks)

    2.1.摘要 在上一篇文章中我们讨论了朴素贝叶斯分类.朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立).当这个条件成立时,朴素贝叶斯分类法 ...

  7. 算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)

    算法杂货铺--分类算法之贝叶斯网络(Bayesian networks) 2010-09-18 22:50 by T2噬菌体, 66011 阅读, 25 评论, 收藏, 编辑 2.1.摘要 在上一篇文 ...

  8. 贝叶斯分类器与贝叶斯网络

    原文地址:贝叶斯分类器与贝叶斯网络作者:yfx416 贝叶斯分类器是一种基于贝叶斯公式的分类器,是一种基于统计的分类器,它计算在某一特征向量的前提下,各种分类可能出现的概率.把概率最大的那个类当作最终 ...

  9. 朴素贝叶斯、贝叶斯网络分类器

    目录 贝叶斯定理                                                   贝叶斯分类 朴素贝叶斯分类器                           ...

最新文章

  1. EOSRAM那么火,BANCOR协议白皮书了解一下?
  2. hadoop2.6.5安装文档及解决root用户无法ssh localhost的问题
  3. PHP判断远程图片或文件是否存在
  4. currenttimemillis 毫秒还是秒_亿级数据毫秒级查询!ElasticSearch是怎么做到的?
  5. docker镜像底层是文件联合系统
  6. 将文件提交到github的两种方法
  7. Google要回归国内,百度李彦宏居然不怕?我想笑
  8. Python趣味编程3则:李白买酒、猴子吃桃、宝塔上的琉璃灯
  9. Redis基础(六)——事务
  10. 使用 urllib 构造请求对象
  11. 环球电子公司将为新的Virgin TV 360平台提供语音遥控器
  12. C#实现图片转字符画
  13. 解析:Python就业方向有哪些?
  14. Goolgle knowledge graph API使用
  15. IDEA安装vue开发插件
  16. 《定投十年财务自由》书中精髓:我们如何通过定投获得更高的收益?
  17. FCRP-D---帆软官网模拟题,报表模块
  18. F429/439 SDRAM is42s16-8Mbyte
  19. 基于SSM和mysql实现的Web便利店收银管理系统实现,Javaweb实现的超市收银平台
  20. ppp协议 java_PPP协议的应用-网络协议

热门文章

  1. 乐山市计算机学校欺骗,据说这个学校很乱。
  2. java数据结栈空的条件表达式_数据结构——栈和队列例题
  3. 【SpringMVC】返回视图中包含数据(ModelAndView)
  4. 11个不常被提及的JavaScript小技巧
  5. 深度学习之正则化方法
  6. 使用POI生成Excel文件,可以自动调整excel列宽
  7. 解决XCode安装插件后插件不能使用的问题(转载)
  8. cocos2dx-3.2 运行第一个android程序
  9. mysql连接池设计_数据库连接池(基于MySQL数据库)
  10. matlab中将ebn0转snr,EbNo(EbN0)和SNR