图模型(概率图模型)

软件教程 2023.01.21 166

目录:

概率图模型

概率图模型是之前一直搁置的内容,然而躲得过初一躲不过十五,看葫芦书时发现其中有整整一章关于概率图,方才意识到概率图模型的重要性,回过头来重新补上这部分内容。

概率图模型(Probabilistic Graphical Model,PGM),简称图模型,是指一种用图结构来描述多元随机变量之间条件独立关系的概率模型 。给研究高维空间中的概率模型带来了很大的便捷性。

对于一个 维随机向量 ,其联合概率为高维空间中的分布,一般难以直接建模。假设每个变量为离散变量并有 个取值,在不作任何独立假设条件下,则需要 个参数才能表示其概率分布(因为我们需要给出每一组可能的 的概率,共 种可能,由于概率和为1因此在此基础上减1)。不难看出,参数数量是指数级的,这在实际应用中是不可接受的。

一种有效减少参数量的方法是 独立性假设 。将 维随机向量的联合概率分解为 个条件概率的乘积:

其中 表示变量 的取值。如果某些变量之间存在条件独立,其参数量就可以大幅减少。

假设有四个二值变量 ,在不知道这几个变量依赖关系的情况下以用一个联合概率表来记录每一种取值的概率需要 个参数。假设在已知 时 和 独立,即有:

同理:

在已知 和 时 也和 独立,即有:

那么其联合概率 可以分解为:

是 个局部条件概率的乘积。如果分别用 个表格来记录这 个条件概率的话,只需要 个独立参数。

当概率模型中的变量数量比较多时,其条件依赖关系也比较复杂。我们可以使用图结构的方式将概率模型可视化,以一种直观、简单的方式描述随机变量之间的条件独立性的性质,并可以将一个复杂的联合概率模型分解为一些简单条件概率模型的组合。下图给出了上述例子中 个变量之间的条件独立性的图形化描述。

图模型有三个基本问题 :

很多机器学习模型都可以归结为概率模型,即建模输入和输出之间的条件概率分布。因此,图模型提供了一种新的角度来解释机器学习模型,并且这种角度有很多优点,比如了解不同机器学习模型之间的联系,方便设计新模型等。

图由一组节点和节点之间的边组成。在概率图模型中,每个节点都表示一个随机变或一组随机变量,边表示这些随机变量之间的概率依赖关系 。

常见的概率图模型可以分为两类向图模型和无向图模型。有向图模型的图结构为有向非循环图,如果两个节点之间有连边,表示对于的两个变量为 因果关系 。无向图模型使用无向图来描述变量之间的关系。每条边代表两个变量之间有 概率依赖关系,但是并不一定是因果关系 。

有向图模型,也称贝叶斯网络(Bayesian Network)或信念网络(Belief Network),是指用有向图来表示概率分布的图模型。

贝叶斯网络 : 对于一个随机向量 和一个有 个节点的有向非循环图 , 中的每个节点都对应一个随机变量,可以是可观测的变量,隐变量或是未知参数。 中的每个连接 表示两个随机变量 和 之间具有非独立的因果关系。 表示变量 的所有父节点变量集合,每个随机变量的局部条件概率分布(local conditional probability distribution)为 。

若 的联合概率分布可以分解为每个随机变量 的局部条件概率的连乘形式,即:

那么 构成了一个 贝叶斯网络 。

条件独立性 :在贝叶斯网络中,如果两个节点是直接连接的,它们肯定是非条件独立的直接因果关系。 父节点是“因”,子节点是“果” 。

如果两个节点不是直接连接的,但是它们之间有一条经过其它节点的路径来连接,那么这两个节点之间的条件独立性就比较复杂,例如:

(a)(b)(c)(d)分别代表 间接因果关系、间接果因关系、共因关系、共果关系 。

局部马尔可夫性质 :对一个更一般的贝叶斯网络,其局部马尔可夫性质为: 每个随机变量在给定父节点的情况下,条件独立于它的非后代节点 。

其中 为 的非后代变量。

一种简单的参数化模型为Sigmoid信念网络。Sigmoid信念网络种变量取值为 ,对于变量 和它的父节点集合 ,条件概率分布表示为:

其中 是Logistic sigmoid函数, 是可学习的参数。假设变量 的父节点数量为 ,如果使用表格来记录条件概率需要 个参数,如果使用参数化模型只需要 个参数。如果对不同的变量的条件概率都共享使用一个参数化模型,其参数数量又可以大幅减少。

值得一提的是Sigmoid信念网络与Logistic回归模型都采用Logistic函数来计算条件概率。如果假设Sigmoid信念网络中只有一个叶子节点,其所有的父节点之间没有连接,且取值为实数,那么sigmoid信念网络的网络结构和Logistic回归模型类似,如图所示。

这两个模型区别在于Logistic回归模型中的 作为一种确定性的参数,而非变量。因此Logistic回归模型只建模条件概率 ,是一种判别模型,而Sigmoid信念网络建模 ,是一种生成模型 。

朴素贝叶斯分类器是一类简单的概率分类器,在强(朴素)独立性假设的条件下运用贝叶斯公式来计算每个类别的后验概率。

给定一个有 维特征的样本 和类别 ,类别的后验概率为:

其中 是概率分布的参数。

朴素贝叶斯分类器中,假设在给定 的情况下 之间条件独立,即 。下图给出了朴素贝叶斯分类器的图形表示。

条件概率分布 可以分解为:

其中 是 的先验概率分布的参数, 是条件概率分布 的参数。若 为连续值, 可以用高斯分布建模。若 为离散值, 可以用多项分布建模。

虽然朴素贝叶斯分类器的条件独立性假设太强,但是在实际应用中,朴素贝叶斯分类器在很多任务上也能得到很好的结果,并且模型简单,可以有效防止过拟合 。

隐马尔科夫模型是一种含有隐变量的马尔可夫过程。下图给出隐马尔可夫模型的图模型表示。

隐马尔可夫模型的联合概率可以分解为:

其中 为输出概率, 为转移概率, 分别表示两类条件概率的参数。

无向图模型,也称为马尔可夫随机场或马尔科夫网络,是一类用无向图来描述一组具有局部马尔可夫性质的随机向量 的联合概率分布的模型。

马尔可夫随机场 :对于一个随机向量 和一个有 个节点的无向图 (可有循环), 中节点 表示随机变量 , 。如果 满足 局部马尔可夫性质,即一个变量 在给定它的邻居的情况下独立于所有其它变量 :

其中 为变量 的邻居集合, 为除 外其它变量的集合,那么 就构成了一个马尔可夫随机场。

无向图的马尔可夫性 :无向图中的马尔可夫性可以表示为:

其中 表示除 和 外的其它变量。

上图中由马尔可夫性质可以得到: 和 。

团 : 由于无向图模型并不提供一个变量的拓扑顺序,因此无法用链式法则对 进行逐一分解 。无向图模型的联合概率一般以全连通子图为单位进行分解。无向图中的一个全连通子图,称为团(Clique),即团内的所有节点之间都连边。在所有团中,如果一个团不能被其它的团包含,这个团就是一个 最大团(Maximal Clique) 。

因子分解 :无向图中的的联合概率可以分解为一系列定义在最大团上的非负函数的乘积形式。

Hammersley ­Clifford定理 :如果一个分布 满足无向图 中的局部马尔可夫性质,当且仅当 可以表示为一系列定义在最大团上的非负函数的乘积,即:

上式也称为 吉布斯分布 。其中 为 中的最大团集合, 是定义在团 上的 势能函数 , 是配分函数(Partition Function),用来将乘积归一化为概率形式。

其中 为随机向量 的取值空间。

无向图模型与有向图模型的一个重要区别是有配分函数 。配分函数的计算复杂度是指数级的,因此在推断和参数学习时都需要重点考虑。

由于势能函数必须为正的,因此我们一般定义为:

其中 为 能量函数 。这里的负号是遵从物理上的习惯,即能量越低意味着概率越高。

因此无向图上定义的概率分布可以表示为:

这种形式的分布又称为 玻尔兹曼分布(Boltzmann Distribution) 。任何一个无向图模型都可以用上式来表示其联合概率。

势能函数一般定义为:

其中函数 为定义在 上的特征向量, 为权重向量。这样联合概率 的对数形式为:

其中 代表所有势能函数中的参数 。这种形式的无向图模型也称为 对数线性模型或最大熵模型 。

如果用对数线性模型来建模条件概率 ,有:

其中 。这种对数线性模型也称为 条件最大熵模型或softmax回归模型 。

条件随机场是一种直接建模条件概率的无向图模型 。

和条件最大熵模型不同,条件随机场建模的条件概率 中, 一般为随机向量,因此需要对 进行因子分解。设条件随机场的最大团集合为 ,条件概率为:

其中 为归一化项。

一个最常用的条件随机场为图(b)中所示的链式结构,其条件概率为:

其中 为状态特征,一般和位置 相关, 为转移特征,一般可以简化为 并使用状态转移矩阵来表示。

无向图模型可以表示有向图模型无法表示的一些依赖关系,比如循环依赖;但它不能表示有向图模型能够表示的某些关系,比如因果关系。

以图(a)中的有向图为例,其联合概率分布可以分解为:

其中 和四个变量都相关。如果要转换为无向图, 需要将这四个变量都归属于一个团中。因此需要将 的三个父节点之间都加上连边,如图(b)所示。这个过程称为 道德化(Moralization) 。转换后的无向图称为 道德图(Moral Graph) 。

在道德化的过程中来有向图的一些独立性会丢失 ,比如上面 在道德图中不再成立。

在图模型中,推断(Inference)是指在观测到部分变量 时,计算其它变量的某个子集 的后验概率 。

假设一个图模型中,除了变量 外,其余变量表示为 。根据贝叶斯公式有:

因此, 图模型的推断问题可以转换为求任意一个变量子集的边际概率分布问题 。

在图模型中用的推断方法可以分为 精确推断 和 近似推断 两类。

以上图为例,假设推断问题为计算后验概率 ,需要计算两个边际概率 和 。

根据条件独立性假设,有:

假设每个变量取 个值,计算上面的边际分布需要 次加法以及 次乘法。

根据乘法的分配律,边际概率 可以写为:

这样计算量可以减少到 次加法和 次乘法。

这种方法是利用 动态规划 的思想,每次消除一个变量,来减少计算边际分布的计算复杂度,称为 变量消除法 。

信念传播(Belief Propagation,BP)算法,也称为和积(Sum-Product)算法或消息传递(Message Passing)算法,是将变量消除法中的和积(Sum-Product)操作看作是消息,并保存起来,这样可以节省大量的计算资源。

以上图所示的无向马尔可夫链为例,其联合概率 为:

其中 是定义在团 的势能函数。

第 个变量的边际概率 为:

假设每个变量取 个值,不考虑归一化项,计算上述边际分布需要 次加法以及 次乘法。

根据乘法的分配律际概率 可以通过下面方式进行计算:

其中 定义为变量 向变量 传递的消息, 是关于变量 的函数,可以递归计算:

为变量 向变量 传递的消息,定义为:

边际概率 的计算复杂度减少为 。如果要计算整个序列上所有变量的边际概率,不需要将消息传递的过程重复 次,因为其中每两个相邻节点上的消息是相同的。

信念传播算法也可以推广到具有树结构的图模型上。如果一个有向图满足任意两个变量只有一条路径(忽略方向),且只有一个没有父节点的节点,那么这个有向图为树结构,其中唯一没有父节点的节点称为根节点。如果一个无向图满足任意两个变量只有一条路径,那么这个无向图也为树结构。在树结构的无向图中任意一个节点都可以作为根

请用凯恩斯交叉图模型分析说明国民收入是如何决定的

凯恩斯交叉图

根据定义,实际产出必然等于实际支出。而实际支出等于计划支出+非计划存货投资。我们认为,只有实际产出=计划支出时,即非计划存货投资为0时,我们的产品市场实现均衡。

显然,实际支出是条45°线,意味着每点的实际支出=实际产出=实际收入。实际支出与计划支出的交点为均衡产出点,此时PE(计划支出)=Y(实际产出),IU(非计划存获投资)=0。

考虑一个两部门经济,则

Y=c+s(由实际产出=实际收入得出,收入要么消费了,要么储蓄起来了),

PE=c+pi(计划支出要么想花了买商品,要么是想投资,pi指得是计划投资),E(实际支出)=c+i`(i`=pi+IU),实际支出等于计划支出+非计划存货投资。

那么均衡时,就是Y=PE,推出s=pi,指储蓄和计划投资一致。

这里有一点需要注意,储蓄投资恒等式指得是在实际核算时,Y=c+s=E=c+i,所以s=i,实际储蓄必然和实际投资一致。

所以当PEE时,c+pic+i`=c+pi+IU, IU0, 实际收入多于计划的收入。PEE,同理。

该模型提出的背景是经济大萧条时期,存在大量原材料、资本、劳动闲置,导致对原材料、资本和劳动需求增加时,资本、劳动和原材料价格都很难变化。因此有价格、工资和利息刚性不变的假设前提。

总结:该模型中横轴就是实际总产出,它转化为实际总收入,所以横轴就是y=c+s;纵轴是经济体计划的消费和私人企业投资,也就是c+pi。

供参考。

怎么用matlab绘制一个简单的图模型

matlab 的绘图命令 (你还可以在网页多找一下,matlab论坛等都可以学习的)

1.plot(y)

功能: 画一条或多条折线图。其中y是数值向量或数值矩阵。

说明:当y是数值向量时,plot(y)在坐标系中顺序的用直线段连接顶点(i,y(i))画出一条折线图;当y是数值矩阵时,Matlab为矩阵的每一列画出一条折线,绘图时,以矩阵y每列元素的相应行下标值为横坐标,以y的元素为纵坐标绘制的连线图。

例21:画出向量[1,3,2,9,0.5]折线图。

解:MATLAB命令为

y=[1,3,2,9,0.5];

plot(y)

2. plot(x,y)

功能:画一条或多条折线图。其中x可以是长度为n的数值向量或是n´m的数值矩阵,y 也可以是长度为n的数值向量或是n´m的数值矩阵。

说明:

¬当x ,y 都是长度为n的数值向量时,plot(x,y)在坐标系中顺序的用直线段连接顶点(x(i),y(i))画出一条折线图;

­当x 是长度为n的数值向量且y是n´m的数值矩阵时,plot(x,y)用向量x分别与矩阵y的每一列匹配,

在同一坐标系中绘出m条不同颜色的折线图;

®当x 和y都是n´m的数值矩阵时,plot(x,y)分别用矩阵x的第i列与矩阵y的第i列匹配,在同一坐标系中绘出m条不同颜色的折线图。

注: plot(x,y)命令可以用来画通常的函数f(x)图形,

此时向量x常用命令x=a:h:b的形式获得f(x)函数在绘图区间[a,b]上的自变量点向量数据,对应的函数向量值取为y=

f(x)。步长h可以任意选取,一般,步长越小,曲线越光滑,但是步长太小,会增加计算量,运算速度要降低。通常步长h取为0.1可以达到较好的绘图效果。如果想在图形中标出网格线,用命令:plot(x,y),grid

on即可。

例22:画出函数y = sin x2 在-5 £ x £ 5 的图形。

解: Matlab 命令:

x=-5:.1:5;↙

%取绘图横坐标向量点x

y=sin(x.^2); ↙

plot(x,y),grid

on↙

例23:画出椭圆 的曲线图。

解:对于这种情形,首先把它写成参数方程 。

Matlab 命令: t=0:pi/50:2*pi; ↙

x=5*cos(t); ↙

y=2*sin(t); ↙

plot(x,y) ,grid on

3. plot(x1,y1,x2,y2,x3,y3…)

功能:在同一图形窗口画出多条不同颜色曲线,曲线关系为

例24:在同一图形窗口画出三个函数y = cos 2x ,y = x 2 ,y = x的图形,-2£ x £ 2 。

解:Matlab命令:

x=-2:.1:2; ↙

plot(x,cos(2*x),x,x.^2,x,x) ↙

legend('cos(2x)','x^2','x')

4.ezplot(F,[xmin,xmax])

功能:画出符号函数F在区间[xmin,xmax]内的图像

说明: F是只含有一个变量的函数。如果区间[xmin,xmax]缺省,默认区间为

[-2pi,2pi]

例25:绘制 在 间的图形。

Matlab命令:syms t ↙

ezplot(‘2/3*exp(-t/2)*cos(3/2*t)’,[0,4*pi]) ↙ 

5.二维特殊图形

除了plot指令外,Matlab还提供了许多其它的二维绘图指令,这些指令大大扩充了Matlab的曲线作图指令,可以满足用户的不同需要。

表2.4绘制二维图形的指令

函数名称

功能

函数名称

功能

bar

直方图

loglog

双对数曲线

barh

垂直的直方图

semilogx

x轴对数坐标曲线

bar3

三维直方图

semilogy

y轴对数坐标曲线

bar3h

垂直的三维直方图

polar

极坐标曲线

hist

统计直方图

stairs

阶梯图

pie

饼图

stem

火柴棍图

pie3

三维饼图

pcolor

伪彩图

fplot

数值函数二维曲线

area

面积图

ezplot

符号函数二维曲线

errorbar

误差棒棒图

gplot

绘拓扑图

quiver

矢量场图

fill

平面多边形填色

ribbon

代状图

例26:练习指令bar,stairs,pie,pie3,stem,area.

解:Matlab命令:

x=1:5;

subplot(2,3,1),bar(x),title('直方图')↙

subplot(2,3,2),stairs(x),title('阶梯图')↙

subplot(2,3,3),stem(x,'rp'),title('火柴棍图')↙

subplot(2,3,4),pie(x),title('饼图')↙

subplot(2,3,5),pie3(x),title('三维饼图')↙

subplot(2,3,6),area(x),title('面积图')↙

本文转载自互联网,如有侵权,联系删除

相关推荐