概率无向图模型

1. 前言

前面看了概率有向图模型,必然对无向图模型也要研究一下。而且这个概率无向图模型对学习RBM有很大的帮助,它关系到能量函数的来源,所以还是看看吧。参考资料依旧是概率有向图模型中参考的三个资料。

有向图将一组变量上的联合概率分布分解为局部条件概率分布的乘积;同时定义了一组条件独立的性质,根据图进行分解的任何概率分布都必须满足这些条件独立性质(也就是有向图中的那三种拓扑结构)。

无向图也是一种分解方式,也表示一组条件独立的关系。

2. 概念

2.1 等价概念

概率无向图模型(undirect graphical model)、马尔科夫随机场(Markov Random Filed,MRF)、马尔科夫网络(Markov Network,MN)

2.2 一般结构

包含一组结点,每个结点都对应着一个变量或一组变量。连接是无向的,即不含箭头。

2.3 条件独立性质

考虑连接集合A和B的节点的所有可能路径,如果所有路径都通过集合C中一个或者多个节点,那么所有这样的路径都被“阻隔”,条件独立性质成立;如果存在至少一条未被阻隔的路径,那么条件独立性质就未必成立,专业点就是说:存在至少某些对应于图的概率分布不满足条件独立性质。

另一种检测方法是,将图中属于集合C的节点以及与这些节点相连的连接线全部删除,然后再看有没有从A到B的路径。如果没有,那么条件独立一定成立。

无向图的马尔科夫毯比较简单,节点只依赖与相邻节点,而条件独立于任何其他的节点。因为相邻节点都有线连接,如果把相邻节点当做C,那么它连接到其它节点的路径都要经过C,也就是对于除了相邻节点C以外的其它节点条件独立。

图中集合A到集合B的所有路径都通过集合C中的结点,所以图所描述的任意概率分布,都是以C为条件,A与B都条件独立。

2.4 分解性质

利用条件独立性质去分解联合分布,如果第i和第j个结点之间不存在连接,那么给定图中其它结点,这两个结点一定条件独立,可以用下式表示出来

反斜杠代表除了大括号结点之外的结点。联合概率分布的分解一定要让xi和xj不出现在同一个因子中,进而让属于这个图的所有可能的概率分布都满足条件独立性。

在了解联合概率分布的写法之前先看看两个概念:

团块:图结点的子集,每一个子集的每对节点之间都有连接(跨度一个或者多个连接起来的不算)。团块中的节点集合是全连接的。

最大团块:不可能将图中任何一个其它节点包含到团块中而不破坏团块的性质。

图中有两个节点的团有五个

两个最大团块

将团块记为C,团块中的变量为x_c,联合概率分布分解的因子定义为最大团块中变量的函数。简单点就是可以写成图的最大团块的势函数(potential function)乘积的形式:

这里的C就是无向图中所有的极大团,是非负函数,称为极大团因子或者势函数,Z是归一化常数,称为配分函数(partition function)

此图中包含三个极大团

C_1=\left \{ x_1,x_2,x_3 \right \}, C_2=\left \{ x_3,x_4 \right \}, C_3=\left\{x_3,x_5\right\}

那么此马尔科夫网络的联合概率分布可以写为:

 

再说一下配分函数怎么拆开加和形式的, 其实就是每个节点所在团块的势函数乘积的和, 具体表达式如下:

其实想想也是有道理的,对于某个变量, 只需要计算它所在的势函数的乘积即可, 最终把所有的加和起来就是所有变量的联合概率分布了. 其实如果到这里还是有点迷糊的话,强烈建议去看看联合概率分布, 不用看公式, 直接百度文库搜那些计算联合概率分布的题目即可, 顺便还能复习一下边缘分布之类的概率知识

上式为了好看用了latex排版,可能看着有点懵,可以去看评论区@yongzhu2925的理解,是对的

更新日志:2018-4-2

发现很多同学还是不清楚上述的配分函数的计算方法啊,我把这个式子写成一行就懂了:

右边总共有五项,分别表示五个节点所在的极大团的块势函数,比如节点x1 在团块C1 中,节点x2 在团块C1(感谢@刘爱然老哥的提醒),节点x3 在团块C1、C2、C3中......,最后加起来就是整个模型的势函数了。

2.5 势函数与配分函数

势函数的选择并没有具体的概率含义,但是在有向图中,每一个因子表示对应变量以它的父节点为条件的概率分布。势函数的通用性产生了一个结果就是它们的乘积没有被归一化,所以就引入了一个显式的归一化因子,即配分函数。为啥要被归一化?对比有向图中,分解后的每个因子作为条件概率分布都被归一化了(加和为1),因此俩和概率分布会自动被归一化,无向图用的是势函数,所以只能显式加入配分函数进行归一化了。

归一化常数(配分函数)的存在是无向图的主要缺点。因为归一化项的计算涉及到对K^M个状态求和,在最坏情况下,计算量是模型大小的指数形式。对于参数学习,势函数是必须的,用于控制势函数的任意参数的函数。对于局部条件概率的计算不是必须的,因为条件概率计算的是两个边缘概率的壁纸,可以计算未归一化的联合概率分布,然后在计算的最后阶段显式地归一化边缘概率。如果边缘概率涉及到少量的变量,那么归一化稀疏就可以计算。

由于势函数是严格为正,所以可以将势函数表示为指数形式:

其中E就被称为能量函数(energy function),指数表示被称为玻尔兹曼分布(Boltzmann distribution)。联合概率分布被定义为势函数的乘积,因此总能量可通过将每个最大团块的能量相加的方法得到。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

softmax理论及代码解读——UFLDL

前言 看了各种softmax以后迷迷糊糊的,还是研究一下UFLDL的教程稳点。当然还是得参考挺多教程的:UFLDL-softmax 、Softmax的理解与应用 、Logistic 分类器与 softmax分类器 、详解softmax函数以及相关求导过程 、Exercise:Softmax Regression 。 【UFLDL…

二值RBM与实值RBM理论及代码解读

1. 前言 虽然推导过二值形式的RBM,但是对于可见层为实值的输入还是半知半解的。最近写个深度学习相关综述,看了一些关于RBM的文献,这里做一下对比总结。但是不倾向于对实值RBM的推导,而是相关代码的实现。 2. RBM回顾 RBM是具有…

【caffe-Windows】添加工程-以classification为例

前言 兴趣所向,研究一下如何在caffe工程之外建立一个属于自己的工程,这里以分类为例,将classification.cpp提取出来,然后调用相应的三方库和libcaffe.lib进行编译。这里比较建议有一丢丢C功底的同志参考学习,主要涉及…

MKL学习——数学运算库安装调试

前言 最近要用C折腾一些东西,涉及到矩阵运算,看了一下网上推荐的数学库,貌似MKL还是蛮不错滴,放到VS2013里面试试 国际惯例,来波地址 blas, cblas, openblas, atlas, lapack, mkl性能对比 Compiling and Linking I…

MKL学习——向量操作

前言 推荐两个比较好的教程: BLAS (Basic Linear Algebra Subprograms) LAPACK for Windows 命名规范 BLAS基本线性代数子程序的函数命令都有一定规范&#xff0c;便于记忆 <character> <name> <mod> () character 定义的是数据类型 s实数域&#…

【caffe-Windows】识别率批量输出——matlab实现

前言 今天看到群里有人问”用matlab输出测试集的精度“&#xff0c;瞎试了一下&#xff0c;好像还成功了。主要还是依据前面所有在matlab中操作caffe的博客。 这里说一下&#xff1a;classification.m是适用单张图片的精度&#xff0c;类似于classification.exe的功能&#x…

相机矩阵(Camera Matrix)

前言 最近翻阅关于从2D视频或者图片中重构3D姿态的文章及其源码&#xff0c;发现都有关于摄像机参数的求解&#xff0c;查找了相关资料&#xff0c;做一下笔记。 国际惯例&#xff0c;来一波参考网址 透视变换、透镜畸变及校正模型、相机校正(Camera Calibration)、Matlab相…

损失函数梯度对比-均方差和交叉熵

前言 我们都知道在机器学习中&#xff0c;希望算法或者网络收敛更快&#xff0c;有些是对数据预处理&#xff0c;尤其是Batch Normalization&#xff0c;有些是采用不同的激活函数&#xff0c;尤其是Relu激活函数取得了巨大的成功&#xff0c;还有一种加速收敛方法是更换损失函…

如何选择深度学习优化器

前言 转载地址&#xff1a;如何选择深度学习优化器 作者&#xff1a;不会停的蜗牛 CSDN AI专栏作家 在很多机器学习和深度学习的应用中&#xff0c;我们发现用的最多的优化器是 Adam&#xff0c;为什么呢&#xff1f; 下面是 TensorFlow 中的优化器&#xff0c; https://w…

【caffe-Windows】基于Python多标签方法——VOC2012数据集

前言 按照上一篇博客所遗留的话题&#xff1a;多标签分类&#xff0c;进行初步探索&#xff0c;此篇博客针对caffe官网的多分类进行配置&#xff0c;只不过是Python接口的&#xff0c;不过官网在开头说明可以使用HDF5或者LMDB进行操作&#xff0c;只不过Python更加方便罢了 国…

【theano-windows】学习笔记二——theano中的函数和共享参数

前言 上一篇博客中学到了theano中的变量类型&#xff0c;也就是dscalar、dvector之类的, 然后还有一个theano.function和eval函数, 将我们所定义的操作转换成theano可执行的函数&#xff0c;类似于def, 还有就是简单的线性代数运算操作。 在神经网络(NN)中, 我们声明了权重、…

【theano-windows】学习笔记三——theano中的导数

前言 就一个NN而言&#xff0c;包含梯度、偏置、参数更新&#xff0c;而前面第一篇博客学习了theano中符号变量的定义, 第二篇博客学习了变量的随机初始化, 变量之间的互相操作(类似于sigmoid(w∗xb)), 但是参数更新还应涉及到损失函数的偏导计算&#xff0c;这一章节就是看看…

【theano-windows】学习笔记五——theano中张量部分函数

前言 至此感觉应该可以写出一个logistic回归程序了&#xff0c;但是为了达到对theano中张量的更灵活的使用, 还是先看一下thenao.tensor对变量都提供了哪些操作&#xff0c;最全的文档戳这里或者这里, 这里就稍微摘取一点自我感觉以后可能用得多的函数 基本张量函数 创建张量…

【theano-windows】学习笔记六——theano中的循环函数scan

前言 Scan是Theano中最基础的循环函数, 官方教程主要是通过大量的例子来说明用法. 不过在学习的时候我比较习惯先看看用途, 然后是参数说明, 最后再是研究实例. 国际惯例, 参考网址 官网关于Scan的11个例子 官网更全面的介绍 简介 用途 递归的一般形式, 可以被用于循环s…

【theano-windows】学习笔记九——softmax手写数字分类

前言 上一篇博客折腾了数据集的预备知识, 接下来按照官方的Deep learning 0.1 documentation一步步走, 先折腾softmax, 关于softmax和logistic回归分类的联系, 我在之前写过一个小博客 国际惯例, 参考博客走一波: Classifying MNIST digits using Logistic Regression soft…

【theano-windows】学习笔记十——多层感知机手写数字分类

前言 上一篇学习了softmax, 然后更进一步就是学习一下基本的多层感知机(MLP)了. 其实多层感知机同时就是w*xb用某个激活函数激活一下, 得到的结果作为下一层神经元的输入x, 类似于 output⋯f3(f2(f1(x∗w1b2)∗w2b2)∗w3b3)⋯output=\cdots f^3(f^2(f^1(x*w^1+b^2)*w^2+b^2)*…

【theano-windows】学习笔记十一——theano中与神经网络相关函数

前言 经过softmax和MLP的学习, 我们发现thenao.tensor中除了之前的博客【theano-windows】学习笔记五——theano中张量部分函数提到的张量的定义和基本运算外, 还有一个方法称为nnet, 如果自己实现过前面两篇博客中的代码就会发现用到了theano.tensor.nnet.sigmoid和thenao.te…

【caffe-windows】全卷积网络特征图分析

前言 突然就想分析一下全卷积网络的转置卷积部分了, 就是这么猝不及防的想法, 而且这个网络对图片的输入大小无要求&#xff0c;这么神奇的网络是时候分析一波了&#xff0c;我个人的学习方法调试代码&#xff0c;然后对照论文看理论 本次分析主要针对每层的权重大小和特征图…

【theano-windows】学习笔记十二——卷积神经网络

前言 按照进度, 学习theano中的卷积操作 国际惯例, 来一波参考网址 Convolutional Neural Networks (LeNet) 卷积神经网络如何应用在彩色图像上&#xff1f; 卷积小知识 三大特性&#xff1a;局部感知(稀疏连接), 权值共享, 池化 上图很重要, 描述的是前一个隐层m-1具有四…

【theano-windows】学习笔记十三——去噪自编码器

前言 上一章节学习了卷积的写法,主要注意的是其实现在theano.tensor.nnet和theano.sandbox.cuda.dnn中都有对应函数实现, 这一节就进入到无监督或者称为半监督的网络构建中. 首先是自编码器(Autoencoders)和降噪自编码器(denoising Autoencoders) 国际惯例, 参考网址: Denoi…