概率有向图模型(一)

文章目录

  • 前言
  • 概率有向图模型
  • 验证
  • 回到书中
    • 隐马尔可夫模型
    • 信念网络
    • 朴素贝耶斯
  • 总结

前言

经过前面的复习,我们把李航老师的《统计学习方法》中的监督学习部分回顾了一遍,接下来我们在此基础上,开始学习邱锡鹏老师的《神经网络与深度学习》,其中内容略有拔高,不过好在邱锡鹏老师讲解很细致,阴阳互补,循序渐进。

概率有向图模型

概率有向图模型就是用有向图来表示联合概率分布。概率无向图使用无向图来表示联合概率分布。他们惟一的区别就在于条件概率的计算公式不同。因为概率无向图的条件概率的化简公式使用了马尔可夫性相关关系+贝耶斯公式,而概率有向图中条件概率的化简公式使用了因果关系条件独立性+贝耶斯公式。可以简单理解为在马尔可夫相关性的基础上加上了方向,把条件概率局限在了单方向,比如说:如果 x x x y y y只是相关关系,那么 P ( x ∣ y ) P(x|y) P(xy) P ( y ∣ x ) P(y|x) P(yx)都存在,现在限制为因果关系: x → y x\to y xy x x x为因, y y y为果,所以现在只存在 P ( y ∣ x ) P(y|x) P(yx)

验证

我们还是直接画个图进行验证。注意概率有向图必须要是有向无环图。
有向无环图
注意为了确保其中每个条件概率都是存在的,我们需要从起点开始,然后逐层的相乘。从图中可以看出: ( A , E ) → ( B ) → ( D ) → ( C ) (A,E)\to (B)\to (D)\to (C) (A,E)(B)(D)(C)的层级结构,至于如何看出这样的层次结构我想应该是《图论》中的相关知识吧。
P ( A , B , C , D , E ) = P ( A ) P ( E ∣ A ) P ( B ∣ E , A ) P ( D ∣ A , E , B ) P ( C ∣ A , B , D , E ) = P ( A ) P ( E ∣ A ) P ( B ∣ E , A ) P ( D ∣ B , E ) P ( C ∣ B , D ) \begin{align*} P(A,B,C,D,E)=&P(A)P(E|A)P(B|E,A)P(D|A,E,B)P(C|A,B,D,E)\\ =& P(A)P(E|A)P(B|E,A)P(D|B,E)P(C|B,D)\\ \end{align*} P(A,B,C,D,E)==P(A)P(EA)P(BE,A)P(DA,E,B)P(CA,B,D,E)P(A)P(EA)P(BE,A)P(DB,E)P(CB,D)

在有向概率图模型中我们可以总结出条件概率的化简公式:

  • 条件中有相邻原因点集的可以化简到只剩相邻原因点
  • 所有起点应该作为联合概率分布分解公式中的一个团来计算,就比如上面的 P ( A , E ) P(A,E) P(A,E)

这样的话从结果上来说就是亲父子才会被化为一个团来作为分解中的一个因子
他跟概率无向图中联合概率的计算公式不同之处在于,概率有向图分解必须严格按照层级,而概率无向图可以不按照顺序

回到书中

上述规律就跟书中局部马尔可夫性质对应起来了:“每个 随机变量在给定父节点的情况下,条件独立于它的非后代节点”。

隐马尔可夫模型

根据隐马尔可夫模型的定义,我们可以给出以下示例:
隐马尔可夫模型
其中状态序列为 S 1 , S 2 , S 3 , S 4 S_1,S_2,S_3,S_4 S1,S2,S3,S4,观测序列为 V 1 , V 2 , V 3 , V 4 V_1,V_2,V_3,V_4 V1,V2,V3,V4,从中可以看出这是一个有方向的因果关系概率有向图。首先分析层级图: ( S 1 ) → ( V 1 , S 2 ) → ( V 2 , S 3 ) → ( V 3 , S 4 ) → ( V 4 ) (S_1)\to (V_1,S_2)\to (V_2,S_3)\to (V_3,S_4)\to (V_4) (S1)(V1,S2)(V2,S3)(V3,S4)(V4)它的联合概率分布为:
P ( S 1 , ⋯ , S 4 , V 1 , ⋯ , V 4 ) = P ( S 1 ) P ( V 1 ∣ S 1 ) P ( S 2 ∣ S 1 , V 1 ) P ( V 2 ∣ S 1 , V 1 , S 2 ) P ( S 3 ∣ S 1 , V 1 , S 2 , V 2 ) P ( V 3 ∣ S 1 , V 1 , S 2 , V 2 , S 3 ) P ( S 4 ∣ S 1 , V 1 , S 2 , V 2 , S 3 , V 3 ) P ( V 4 ∣ S 1 , V 1 , S 2 , V 2 , S 3 , V 3 , S 4 ) = P ( S 1 ) P ( V 1 , S 2 ∣ S 1 ) P ( V 2 , S 3 ∣ S 1 , V 1 , S 2 ) P ( V 3 , S 4 ∣ S 1 , V 1 , S 2 , V 2 , S 3 ) P ( V 4 ∣ S 1 , V 1 , S 2 , V 2 , S 3 , V 3 , S 4 ) = P ( S 1 ) P ( V 1 , S 2 ∣ S 1 ) P ( V 2 , S 3 ∣ S 2 ) P ( V 3 , S 4 ∣ S 3 ) P ( V 4 ∣ S 4 ) \begin{align*} P(S_1,\cdots,S_4,V_1,\cdots,V_4)=&P(S_1)P(V_1|S_1)P(S_2|S_1,V_1)P(V_2|S_1,V_1,S_2)P(S_3|S_1,V_1,S_2,V_2)P(V_3|S_1,V_1,S_2,V_2,S_3)P(S_4|S_1,V_1,S_2,V_2,S_3,V_3)P(V_4|S_1,V_1,S_2,V_2,S_3,V_3,S_4)\\ =&P(S_1)P(V_1,S_2|S_1)P(V_2,S_3|S_1,V_1,S_2)P(V_3,S_4|S_1,V_1,S_2,V_2,S_3)P(V_4|S_1,V_1,S_2,V_2,S_3,V_3,S_4)\\ =&P(S_1)P(V_1,S_2|S_1)P(V_2,S_3|S_2)P(V_3,S_4|S_3)P(V_4|S_4)\\ \end{align*} P(S1,,S4,V1,,V4)===P(S1)P(V1S1)P(S2S1,V1)P(V2S1,V1,S2)P(S3S1,V1,S2,V2)P(V3S1,V1,S2,V2,S3)P(S4S1,V1,S2,V2,S3,V3)P(V4S1,V1,S2,V2,S3,V3,S4)P(S1)P(V1,S2S1)P(V2,S3S1,V1,S2)P(V3,S4S1,V1,S2,V2,S3)P(V4S1,V1,S2,V2,S3,V3,S4)P(S1)P(V1,S2S1)P(V2,S3S2)P(V3,S4S3)P(V4S4)
根据上面分析的父子关系,其实也就是隐马尔可夫模型中说到的后一个状态只依赖于前一个状态,当前观测只依赖与当前状态的另一种等价表达。

这也从另一个角度解开了我心中的疑惑,为什么当时隐马尔可夫模型的联合概率分布的分解要满足那样的要求,其实是从条件独立出发所得来的。孰途同归。

仔细观察上式也是父子团,我们还可以进一步分解为《统计学习方法》中所示的联合概率分布的计算公式。
P = P ( S 1 ) P ( V 1 ∣ S 1 ) P ( S 2 ∣ S 1 ) P ( V 2 ∣ S 2 ) P ( S 3 ∣ S 2 ) P ( V 3 ∣ S 3 ) P ( S 4 ∣ S 3 ) P ( V 4 ∣ S 4 ) P=P(S_1)P(V_1|S_1)P(S_2|S_1)P(V_2|S_2)P(S_3|S_2)P(V_3|S_3)P(S_4|S_3)P(V_4|S_4) P=P(S1)P(V1S1)P(S2S1)P(V2S2)P(S3S2)P(V3S3)P(S4S3)P(V4S4)
其中 P ( S 1 ) P(S_1) P(S1)就是初始状态概率, P ( V 1 ∣ S 1 ) P(V_1|S_1) P(V1S1)就是观测概率, P ( S 2 ∣ S 1 ) P(S_2|S_1) P(S2S1)就是状态转移概率,又相互印证了。

信念网络

要想分析信念网络我们需要先回顾一下。
借助于隐马尔可夫模型的分析,我们可以发现联合概率分布可以分解为一个个因子团的乘积,而每个因子团的变量其实就是父子变量。比如上面的 P ( V 1 , S 2 ∣ S 1 ) P(V_1,S_2|S_1) P(V1,S2S1)我们完全可以使用一个三元函数 f ( S 1 , V 1 , S 2 ) f(S_1,V_1,S_2) f(S1,V1,S2)来表示,同时为了保持为正数,我们可以取指数函数, exp ⁡ ( f ( S 1 , V 1 , S 2 ) ) \exp(f(S_1,V_1,S_2)) exp(f(S1,V1,S2)),换言之,父子团中变量就是函数中的变量。我们现在可以开始分析信念网络了。
书中写道信念网络的父子团条件概率为:
P ( x k = 1 ∣ N x k ) = σ ( θ 0 + ∑ x i ∈ N x k θ i x i ) P(x_k=1|N_{x_k})=\sigma(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i) P(xk=1∣Nxk)=σ(θ0+xiNxkθixi)

我们看到上面是对于 x k = 1 x_k=1 xk=1的概率,我们可以套用sigmoid函数的定义,求出 x k = 0 x_k=0 xk=0的概率。
P ( x k = 0 ∣ N x k ) = 1 − σ ( θ 0 + ∑ x i ∈ N x k θ i x i ) = 1 − 1 1 + exp ⁡ ( − ( θ 0 + ∑ x i ∈ N x k θ i x i ) ) = exp ⁡ ( − ( θ 0 + ∑ x i ∈ N x k θ i x i ) ) 1 + exp ⁡ ( − ( θ 0 + ∑ x i ∈ N x k θ i x i ) ) \begin{align*} P(x_k=0|N_{x_k})=&1-\sigma(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i)\\ =&1-\frac{1}{1+\exp(-(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i))}\\ =&\frac{\exp(-(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i))}{1+\exp(-(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i))}\\ \end{align*} P(xk=0∣Nxk)===1σ(θ0+xiNxkθixi)11+exp((θ0+xiNxkθixi))11+exp((θ0+xiNxkθixi))exp((θ0+xiNxkθixi))

我们再抽象一下,求 P ( x k ∣ N x k ) P(x_k|N_{x_k}) P(xkNxk)
P ( x k ∣ N x k ) = 1 ∗ x k + exp ⁡ ( − ( θ 0 + ∑ x i ∈ N x k θ i x i ) ) ∗ ( 1 − x k ) 1 + exp ⁡ ( − ( θ 0 + ∑ x i ∈ N x k θ i x i ) ) P(x_k|N_{x_k})=\frac{1*x_k+\exp(-(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i))*(1-x_k)}{1+\exp(-(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i))} P(xkNxk)=1+exp((θ0+xiNxkθixi))1xk+exp((θ0+xiNxkθixi))(1xk)

也就是说,这个条件概率跟 x k , N x k x_k,N_{x_k} xk,Nxk都有关系,也就是跟父子团都有关系,所以他也是是一个概率有向图。我们把这个关系画出来。
信念网络
回头来分析,其实这个网络并没有具体针对有几个父亲这种因果关系(隐马尔可夫模型说一个人有一个父亲),这个网络的作用是告诉我们可以用所有变量的线性函数来作为 f ( x k , N x k ) f(x_k,N_{x_k}) f(xk,Nxk),给我们提供了一个示例函数 exp ⁡ ( f ( x k , N x k ) ) = 1 ∗ x k + exp ⁡ ( − ( θ 0 + ∑ x i ∈ N x k θ i x i ) ) ∗ ( 1 − x k ) 1 + exp ⁡ ( − ( θ 0 + ∑ x i ∈ N x k θ i x i ) ) \exp(f(x_k,N_{x_k}))=\frac{1*x_k+\exp(-(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i))*(1-x_k)}{1+\exp(-(\theta_0+\sum_{x_i\in N_{x_k}}\theta_i x_i))} exp(f(xk,Nxk))=1+exp((θ0+xiNxkθixi))1xk+exp((θ0+xiNxkθixi))(1xk)
当然我们也可以不使用他社想的这种,我们可以设想另一种: exp ⁡ ( f ( x k , N x k ) ) = exp ⁡ ( θ 0 x k + b 0 + ∑ x i ∈ N x k θ i x i ) \exp(f(x_k,N_{x_k}))=\exp(\theta_0x_k+b_0+\sum_{x_i\in N_{x_k}}\theta_ix_i) exp(f(xk,Nxk))=exp(θ0xk+b0+xiNxkθixi)
当然如果你够狠,你也可以加入核技巧,让里面的 x k , N x k x_k,N_{x_k} xk,Nxk变个形式, exp ⁡ ( f ( x k , N x k ) ) = exp ⁡ ( θ 0 ϕ ( x k ) + b 0 + ∑ x i ∈ N x k θ i ϕ ( x i ) ) \exp(f(x_k,N_{x_k}))=\exp(\theta_0\phi(x_k)+b_0+\sum_{x_i\in N_{x_k}}\theta_i\phi(x_i)) exp(f(xk,Nxk))=exp(θ0ϕ(xk)+b0+xiNxkθiϕ(xi))

朴素贝耶斯

万万没想到竟然又回到了朴素贝耶斯,复习路上遇到的第一个拦路虎:贝耶斯估计这里,孰途同归。
朴素贝耶斯模型是基于条件独立性假设的,也就是 P ( x 1 , x 2 , ⋯ , x n ∣ y ) = P ( x 1 ∣ y ) ⋯ P ( x n ∣ y ) P(x_1,x_2,\cdots,x_n|y)=P(x_1|y)\cdots P(x_n|y) P(x1,x2,,xny)=P(x1y)P(xny),书中说也可以看成概率有向图。

总结

上面最后一个朴素贝耶斯又点拨到我了,原来概率有向图的判别方式有三种。第一种是从Gibbs分布的形式出发,满足 P ( x k ∣ N x k ) = f ( x k , N x k ) P(x_k|N_{x_k})=f(x_k,N_{x_k}) P(xkNxk)=f(xk,Nxk)的形式就可以说它的联合概率可以被认为是概率有向图;第二种是从文字表述形式出发,说明变量之间的依赖关系就像是隐马尔可夫模型那样,也是概率有向图;第三种就是从条件概率的条件独立性出发,直接给出条件概率相互独立的公式也是一个概率有向图。
芜湖,邱锡鹏老师真是润物细无声,孰途同归。

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

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

相关文章

socket的使用 | TCP/IP协议下服务器与客户端之间传送数据

服务器端代码: import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class theServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(9999); // 该行代码作用&#xff1…

Android签名查看

查看签名文件信息 第一种方法: 1.打开cmd,执行keytool -list -v -keystore xxx.keystore,效果如下图: 第二种方法: 1.打开cmd,执行 keytool -list -v -keystore xxxx.keystore -storepass 签名文件密码&#xff0…

suning苏宁API接入说明(苏宁商品详情+关键词搜索商品列表)

API地址:https://o0b.cn/anzexi 调用示例:https://api-gw.onebound.cn/suning/item_get/?keytest_api_key& &num_iid0070134261/703410301&&langzh-CN&secret 参数说明 通用参数说明 version:API版本key:调用key,测试key:test_api_keyapi_na…

2023高教社杯数学建模C题思路模型 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统

最近在做项目,花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统。页面采用纯Vue2Element-ui搭建,后端采用SpringbootMybatis搭建,数据库采用Mysql。包括了登录验证,根据不同权限进入不同界面、数据增删改查、表格分页、表…

多波束测线问题

多波束测线问题 问题的背景是海洋测深技术,特别是涉及单波束测深和多波束测深系统。这些系统利用声波传播原理来测量水体深度。 单波束测深系统通过向海底发射声波信号并记录其返回时间来测量水深。该系统的特点是每次只有一个波束打到海底,因此数据分布…

unity 场景烘培(边学习,边记录)

前言:好记性不如烂笔头,本文只提供参考! 问题总结:1.unity 场景烘焙问题之模型UV有重叠_野区捕龙为宠的博客-CSDN博客 一、光源种类(摘录:Unity灯光(light)_浮影℡的博客-CSDN博客…

CMS 三色标记【JVM调优】

文章目录 1. 垃圾回收器2. CMS 原理3. 三色标记算法 1. 垃圾回收器 ① Serial:最原始的垃圾回收器,用于新生代,是单线程的,GC 时需要停止其它所有的工作,算法简单,但它只能在内存较小时勉强使用&#xff1b…

【Maven教程】(五)仓库:解析Maven仓库—布局、分类和配置,远程仓库的认证与部署,快照版本,依赖解析机制,镜像和搜索服务 ~

Maven 仓库 1️⃣ 什么是Maven仓库2️⃣ 仓库的布局3️⃣ 仓库的分类3.1 本地仓库3.2 远程仓库3.3 中央仓库3.4 私服 4️⃣ 远程仓库的配置4.1 远程仓库的认证4.2 部署至远程仓库 5️⃣ 快照版本6️⃣ 从仓库解析依赖的机制7️⃣ 镜像8️⃣ 仓库搜索服务8.1 Sonatype Nexus8.2…

智能小车之跟随小车、避障小车原理和代码

目录 1. 红外壁障模块分析​编辑 2. 跟随小车的原理 3. 跟随小车开发和调试代码 4. 超声波模块介绍 5. 摇头测距小车开发和调试代码 1. 红外壁障模块分析 原理和循迹是一样的,循迹红外观朝下,跟随朝前 TCRT5000传感器的红外发射二极管不断发射红外…

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析详解+思路+Python代码

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析 十分激动啊啊啊题目终于出来了!!官网6点就进去了结果直接卡死现在才拿到题目,我是打算A-E题全部做一遍。简单介绍一下我自己:博主专注建模四年,参与…

golang-bufio 缓冲写

1. 缓冲写 在阅读这篇博客之前,请先阅读上一篇:golang-bufio 缓冲读 // buffered output// Writer implements buffering for an io.Writer object. // If an error occurs writing to a Writer, no more data will be // accepted and all subsequent…

《protobuf》入门

protobuf 初始protobuf简单上手编写protobuf编译 .proto 文件编写测试文件 testPB.cc 初始protobuf Protocol Buffers 是 Google 的一种语言无关、平台无关、可扩展的序列化结构数据的 方法,它可用于(数据) 通信协议、数据存储等。 Protocol …

【autodesk】浏览器中渲染rvt模型

使用Forge完成渲染 Forge是什么 为什么能够渲染出来rvt模型 Forge是由Autodesk开发的一套云端开发平台和工具集。在Forge平台中,有一个名为"Model Derivative"的服务,它可以将包括RVT(Revit)在内的多种BIM&#xff08…

【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码

【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码 1 题目 题目 D 题 圈养湖羊的空间利用率 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康&a…

lambda表达式介绍

前言 lambda表达式是C11标准才支持的,有了它以后在一些地方进行使用会方便很多,尤其在一些需要仿函数的地方,lambda表达式完全可以替代它的功能。代码的可读性也会提高。 目录 1.lambda表达式 2.lambda表达式语法 3.函数对象和lambda表达…

【MySQL】MySQL的安装,登录,配置和相关命令

文章目录 前言一. 卸载不需要的环境二. 获取MySQL的yum源三. 安装MySQL和启动四. 尝试登录MySQL方法1:获取临时root密码方法2:没有密码方法3:配置文件 五. 简单配置结束语 前言 本篇文章是基于云服务器;Linux:Centos7…

在 Windows 上远程对 Linux 进行抓包

文章目录 名词解释事先准备下载安装 Wireshark下载运行 libpcap设置 libpcap 环境变量在 Wireshark 中远程连接 libpcap 笔者的运行环境:(成功) 本地客户端: Windows: Windows 10 教育版(本文) …

【文末送书】全栈开发流程——后端连接数据源(二)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

【python手写算法】逻辑回归实现分类(含公式推导)

公式推导: 代码实现: # codingutf-8 import matplotlib.pyplot as plt import numpy as npdef f(w1,x1,w2,x2,b):zw1*x1w2*x2breturn 1/(1np.exp(-z)) if __name__ __main__:X1 [12.46, 0.25, 5.22, 11.3, 6.81, 4.59, 0.66, 14.53, 15.49, 14.43,2.1…