(《机器学习》完整版系列)第7章 贝叶斯分类器——7.6 贝叶斯网(也称信念网)结构(网络结构也是“超参数”)、贝叶斯图络学习(两级搜索法)

本文主要是介绍(《机器学习》完整版系列)第7章 贝叶斯分类器——7.6 贝叶斯网(也称信念网)结构(网络结构也是“超参数”)、贝叶斯图络学习(两级搜索法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

贝叶斯网是关于属性的,有向线表示“依赖”性的父子关系;通过属性的条件概率表CPT来描述。
有向图转化为无向图:让两亲联姻(连接两结点),称为道德化。
网络结构也是“超参数”,如何选择该“超参数”?
贝叶斯图络学习:两级搜索法

贝叶斯网结构

贝叶斯网(也称信念网)记为 B = < G , Θ > B=<G,\Theta > B=<G,Θ>

  • 结构 G G G:是一个有向无环图DAG,每个结点对应于一个属性(记住:贝叶斯网是关于属性的,不少同学错记成关于样本的),有向线表示“依赖”性的父子关系;
  • 参数 Θ \Theta Θ:是属性的条件概率表CPT,表中的项为
    θ x i ∣ π i = P B ( x i ∣ π i ) \begin{align} {\theta}_{x_i\,|\,{\pi}_i } =P_B(x_i\,|\,{\pi}_i ) \tag{7.39} \end{align} θxiπi=PB(xiπi)(7.39)
    其中, π i {\pi}_i πi x i x_i xi的父结点集,概率符号 P B P_B PB的下标表示是在网结 B B B中。

假定每个属性与其非后裔属性独立,
由此定义属性的联合分布为
P B ( x 1 , x 2 , ⋯ , x d ) = ∏ i = 1 d P B ( x i ∣ π i ) = ∏ i = 1 d θ x i ∣ π i \begin{align} P_B(x_1, x_2,\cdots,x_d) & =\mathop{\prod }\limits_{i=1}^dP_B(x_i\,|\,{\pi}_i ) \tag{7.40} \\ & =\mathop{\prod }\limits_{i=1}^d {\theta}_{x_i\,|\,{\pi}_i } \tag{7.41} \end{align} PB(x1,x2,,xd)=i=1dPB(xiπi)=i=1dθxiπi(7.40)(7.41)
其中, θ x i ∣ π i {\theta}_{x_i\,|\,{\pi}_i } θxiπi需要查表,而表有时不是直接给出的,要通过对数据集 D D D中的样本情况进行分门别类地“计数”统计,计算频率来估计的。

【西瓜书图7.3】描述了贝叶斯网中三种依赖关系,并讨论了独立性。

给定一个结点的值,相当于把这个结点染上了黑色(即不能再变化),以此技巧来思考“给定结点值”的情况,则易于理解,如下以生物学的例子来增强记忆。

如图7.1所示, V V V型结构是双性繁殖( V V V型结构的记忆口诀:自由恋爱好独立,奉子成婚难独立)\tacg{ch7:marr},当 x 1 , x 2 x_1,x_2 x1,x2的孩子 x 3 x_3 x3的肤色性状已经确定(如,黑白混血小孩),那么,当 x 1 x_1 x1为白人时, x 2 x_2 x2应为黑人,反之亦然。 故孩子 x 3 x_3 x3的性状给定时,双亲 x 1 x_1 x1 x 2 x_2 x2的性状不独立。
图7.1 V型结构

图7.1 V型结构

V V V型结构中, x 1 x_1 x1 x 2 x_2 x2可以“自由恋爱”(即独立)生出孩子 x 3 x_3 x3。 即在不给定“共子” x 3 x_3 x3的值时,其父母 x 1 , x 2 x_1,x_2 x1,x2是独立的,
理论上由【西瓜书式(7.27)】所验证,称为边际独立,记为 x 1 ⊥ ⁣ ⁣ ⁣ ⊥ x 2 x_1 \perp \!\!\! \perp x_2 x1x2
注:求和符号起边际化的作用,就像在二维表中,对行(或列)求和(即通常的小计),写到最右“边”(边上加一列)(或最下“边”(加一行))中。

如图7.2左侧所示,在同父结构中,若父 x 1 x_1 x1已知(父 x 1 x_1 x1被染黑色)时,单性繁殖了两兄弟 x 2 x_2 x2 x 3 x_3 x3,影响两兄弟特质变化的外因 x 1 x_1 x1已定,即已体现在两兄弟身上了,不再变化,而再变化的是各自的内因,内因引起的变化当然是独立的。 即变化是条件独立(记忆口诀:单性繁殖两兄弟,内因变化是独立,条件是外因已一致),记为 x 2 ⊥ x 3 ∣ x 1 x_2\, \bot \, x_3\, |\, x_1 x2x3x1
在这里插入图片描述

图7.2 同父结构

如图7.2右侧所示,在同父结构中,若父 x 1 x_1 x1未知(父 x 1 x_1 x1未被染色)时,则
P ( x 2 , x 3 ) = ∑ x 1 P ( x 1 , x 2 , x 3 ) = ∑ x 1 P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 1 , x 2 ) ≠ ∑ x 1 P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ) = P ( x 3 ) ∑ x 1 P ( x 1 ) P ( x 2 ∣ x 1 ) = P ( x 3 ) ∑ x 1 P ( x 1 , x 2 ) = P ( x 3 ) P ( x 2 ) \begin{align} P(x_2,x_3) & =\sum_{x_1}P(x_1,x_2,x_3)\notag \\ & =\sum_{x_1}P(x_1)P(x_2\,|\,x_1)P(x_3\,|\, x_1,x_2)\notag \\ & \neq \sum_{x_1}P(x_1)P(x_2\,|\,x_1)P(x_3)\notag \\ & = P(x_3)\sum_{x_1}P(x_1)P(x_2\,|\,x_1)\notag \\ & =P(x_3)\sum_{x_1}P(x_1,x_2)\notag \\ & =P(x_3)P(x_2) \tag{7.42} \end{align} P(x2,x3)=x1P(x1,x2,x3)=x1P(x1)P(x2x1)P(x3x1,x2)=x1P(x1)P(x2x1)P(x3)=P(x3)x1P(x1)P(x2x1)=P(x3)x1P(x1,x2)=P(x3)P(x2)(7.42)
不等式(7.42)表明此时 x 2 x_2 x2 x 3 x_3 x3不独立,称为 x 2 x_2 x2 x 3 x_3 x3关于 x 1 x_1 x1的边际独立不成立。

按如下方法将有向图转化为无向图:

  • V V V型结构,让两亲联姻(连接两结点),称为道德化(哈哈,孩子都有了,结婚吧!);
  • 将所有有向边改为无向边;

这样生成的图称为道德图。

在道德图中,若去掉一些结点(结点集 z \mathbf{z} z)后,使得结点 x x x y y y不再连通,则称 x x x y y y z \mathbf{z} z有向分离(注:这里"directed"翻译成了“有向”,若翻译成“受控的”,则为“受控分离”,这更贴切),记为: x ⊥ y ∣ z x\, \bot \, y\, |\, \mathbf{z} xyz,即在 z \mathbf{z} z的控制下, x x x y y y独立。 当集合 z \mathbf{z} z退化成一个结点 z z z时,即为前述的条件独立: x ⊥ y ∣ z x\, \bot \, y\, |\, z xyz

贝叶斯图络学习

当网络结构已知时(即有向图的父子关系已知),则训练分类器的步骤为

  • 通过对训练集 D D D中的样本分门别类地“计数”,统计出条件概率表CPT;
  • 由【西瓜书式(7.26)】得到属性的联合概率分布 P ( x ) P(\boldsymbol{x}) P(x) P ( x , c ) P(\boldsymbol{x},c) P(x,c)
  • 由【西瓜书式(7.7)】求得 P ( c ∣ x ) P(c\,|\,\boldsymbol{x}) P(cx)
  • 最后由【西瓜书式(7.6)】得到学习器 h ∗ ( x ) h^*(\boldsymbol{x}) h(x)

然而,在现实中,通常不知道网络结构,只有训练集 D D D的数据,这时,将网络结构视为“超参数”。 下面讨论如何选择该“超参数”:

(1)先给定对网络结构评价的偏好,如,最小描述长度(MDL),即找一个能以“最短编码长度”契合训练数据的模型:

  • 契合训练数据指应符合极大似然法的要求,即 max ⁡ L L ( B ∣ D ) \max \mathrm{LL}(B\,|\,D) maxLL(BD)
  • 贝叶斯网络 B B B的规模 ∣ B ∣ |\, B\, | B(即参数 θ \theta θ的个数),设描述一个参数 θ \theta θ的编码长度为 f ( θ ) f(\theta ) f(θ),则应要求 min ⁡ f ( θ ) ∣ B ∣ \min f(\theta )|\, B\, | minf(θ)B

由上述两点即可构造出一个评分函数(以求 min ⁡ \min min为目标)
s ( B ∣ D ) = f ( θ ) ∣ B ∣ − L L ( B ∣ D ) \begin{align} s(B\,|\,D)=f(\theta )|\, B\, |-\mathrm{LL}(B\,|\,D) \tag{7.43} \end{align} s(BD)=f(θ)BLL(BD)(7.43)

针对式(7.43)中的第一项,我们看三种特殊情况:

  • f ( θ ) = 1 f(\theta )=1 f(θ)=1,得到评分函数AIC【西瓜书式(7.30)】;
  • f ( θ ) = 1 2 log ⁡ m f(\theta )=\frac{1}{2}{\log} m f(θ)=21logm,得到评分函数BIC【西瓜书式(7.31)】;
  • f ( θ ) = 0 f(\theta )=0 f(θ)=0,则评分函数退化为(负)极大似然估计。

针对式(7.43)中的第二项,我们进行分解
L L ( B ∣ D ) = log ⁡ P ( D ∣ B ) (对数似然) = log ⁡ P B ( D ) (为明确起见,换个概率符号) = log ⁡ P B ( x 1 , x 2 , ⋯ , x m ) ( x i 为样本) = log ⁡ ∏ i = 1 m P B ( x i ) (由样本的独立性) = ∑ i = 1 m log ⁡ P B ( x i ) \begin{align} \mathrm{LL}(B\,|\,D) & ={\log} P(D\,|\,B)\qquad \text{(对数似然)}\notag \\ & ={\log} P_B(D)\qquad \text{(为明确起见,换个概率符号)}\notag \\ & ={\log} P_B(\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_m)\quad \text{($\boldsymbol{x}_i$为样本)}\notag \\ & ={\log} \mathop{\prod}\limits_{i=1}^m P_B(\boldsymbol{x}_i)\quad \text{(由样本的独立性)}\notag \\ & =\mathop{\sum}\limits_{i=1}^m {\log} P_B(\boldsymbol{x}_i)\tag{7.44} \end{align} LL(BD)=logP(DB)(对数似然)=logPB(D)(为明确起见,换个概率符号)=logPB(x1,x2,,xm)xi为样本)=logi=1mPB(xi)(由样本的独立性)=i=1mlogPB(xi)(7.44)
P B ( x i ) = P B ( x i 1 , x i 2 , ⋯ , x i d ) = ∏ k = 1 m θ x i k ∣ π k (由式(7.41),下标改为上标 k ) \begin{align} \quad P_B(\boldsymbol{x}_i) & =P_B(\boldsymbol{x}_i^1,\boldsymbol{x}_i^2,\cdots,\boldsymbol{x}_i^d)\notag \\ & =\mathop{\prod}\limits_{k=1}^m{\theta}_{x_i^k\,|\,{\pi }^k}\quad \text{(由式(7.41),下标改为上标$k$)}\tag{7.45} \end{align} PB(xi)=PB(xi1,xi2,,xid)=k=1mθxikπk(由式(7.41),下标改为上标k(7.45)
其中, θ x i k ∣ π k = P B ( x i k ∣ π k ) {\theta}_{x_i^k\,|\,{\pi }^k}=P_B({x_i^k\,|\,{\pi }^k}) θxikπk=PB(xikπk),下标表示样本编号,上标表示属性编号, π k {\pi }^k πk为第 k k k个属性的父结点集(与样本无关,故它不带下标)。

B B B不知,而 D D D已知, B B B要求契合于 D D D,故应
θ x i k ∣ π k = P ^ D ( x i k ∣ π k ) \begin{align} {\theta}_{x_i^k\,|\,{\pi }^k}=\hat{P}_D({x_i^k\,|\,{\pi }^k}) \tag{7.46} \end{align} θxikπk=P^D(xikπk)(7.46)
其中,右侧为 D D D上的经验分布,它可通过对 D D D中的样本进行分门别类地“计数”,统计频率来估算。

问题又来了: π k {\pi }^k πk并不知道,无从“分门别类”。 也说是说:只有在 k k k属性结点之父 π k {\pi }^k πk确定了,才可依上述讨论求出 s ( B ∣ D ) s(B\,|\,D) s(BD)

综上, max ⁡ L L ( B ∣ D ) \max \mathrm{LL}(B\,|\,D) maxLL(BD)变为一个“两级搜索”问题:

  • 第一级:试不同的网络结构:找一个网络结构 G G G。 网络结点(样本属性)已知,但边的情况是部分已知,部分未知,通常根据领域知识以及偏好,将网络结构限定为某种特殊的结构(如,树形结构),称为约束法。
  • 第二级:调整有向边:在这个网络结构中,试不同的 π k {\pi }^k πk(父子关系)来调整网络。 采用贪心法:每次调整一条边(增边,减边,调边的方向),若 s ( B ∣ D ) s(B\,|\,D) s(BD)降低,则接受该调整。 继续调整,直到 s ( B ∣ D ) s(B\,|\,D) s(BD)不再降低或搜索完或达到某设定的停机条件为止。

通过两级搜索得到最优贝叶斯网络 B ∗ B^* B,最优贝叶斯网络 B ∗ B^* B体现为: 结构 G G G(部分超参数+搜索其他参数)+一组条件概率表CPT(参数 Θ \Theta Θ),如【西瓜书图7.2】所示。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:7.5 特殊的半朴素贝叶斯分类器(SPODE、TAN、AODE,研究特殊的“父子”关系)
下一篇:7.7 贝叶斯网络分类器(分类可视为一种特殊的查询)、贝叶斯网络推断(查询一组结点称为“推断”)

这篇关于(《机器学习》完整版系列)第7章 贝叶斯分类器——7.6 贝叶斯网(也称信念网)结构(网络结构也是“超参数”)、贝叶斯图络学习(两级搜索法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/477329

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

hdu1240、hdu1253(三维搜索题)

1、从后往前输入,(x,y,z); 2、从下往上输入,(y , z, x); 3、从左往右输入,(z,x,y); hdu1240代码如下: #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#inc

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca