(《机器学习》完整版系列)第7章 贝叶斯分类器——7.7 贝叶斯网络分类器(分类可视为一种特殊的查询)、贝叶斯网络推断(查询一组结点称为“推断”)

贝叶斯网络中求值,从特殊到一般:分类、查询、推断
吉布斯采样算法既可以采样一个样本(用于预测),又可以采样一组样本(用于查询)——“根据今天的天气状况,你觉得明天是晴还是雨?

贝叶斯网络分类器

在贝叶斯网络 B B B中,若其余所有结点都有值,仅有一个结点无值,会出现什么情况?

设待定值结点为 i i i,待定值为 x i x_i xi,设 x ‾ − i = ( x ‾ 1 , x ‾ 2 , ⋯   , x ‾ i − 1 , x ‾ i + 1 , ⋯   , x ‾ d ) \overline{\boldsymbol{x}}_{-i}=(\overline{x}_1, \overline{x}_2,\cdots,\overline{x}_{i-1},\overline{x}_{i+1},\cdots,\overline{x}_d) xi=(x1,x2,,xi1,xi+1,,xd),则
P ( x i   ∣   x ‾ − i ) = P ( x ‾ − i , x i ) P ( x ‾ − i ) \begin{align} P(x_i\,|\,\overline{\boldsymbol{x}}_{-i}) =\frac{P(\overline{\boldsymbol{x}}_{-i},x_i)}{P(\overline{\boldsymbol{x}}_{-i})} \tag{7.47} \end{align} P(xixi)=P(xi)P(xi,xi)(7.47)
其中, x ‾ j \overline{x}_j xj表示结点变量 x j x_j xj的具体值。 对式(7.47)先由 B B B的结构关系,转化为条件概率,然后,查 B B B的条件概率表即可计算出 x i x_i xi每一个指定值的 P ( x i   ∣   x ‾ − i ) P(x_i\,|\,\overline{\boldsymbol{x}}_{-i}) P(xixi)。 这就实现了对待定结点的“查询”,即得到它取各种可能值的概率。

将样本标记 y y y也视为一个结点(地位等同于属性),则依前述方法训练出一个最优贝叶斯网络 B ∗ B^* B,对 y y y进行查询,则可得到
P ( c k   ∣   x ) \begin{align} P(c_k\,|\,\boldsymbol{x}) \tag{7.48} \end{align} P(ckx)(7.48)
其中, c k c_k ck为第 k k k类标记符号, k = 1 , 2 , ⋯   , K k=1,2,\cdots,K k=1,2,,K,则取使式(7.48)最大的 c k c_k ck作为 x \boldsymbol{x} x分类,即实现了贝叶斯最优分类器(7.1 贝叶斯决策论中式(7.13)),分类可视为一种特殊的查询。

贝叶斯网络推断

确定了贝叶斯网络 B B B后,就可用于上述“查询”,现在进一步扩展“查询”,查询一组结点而不只是一个结点,称为“推断”,

在有限的时间内,通常使用“近似推断”,常用吉布斯采样进行“近似推断”,【西瓜书图7.5】描述了吉布斯采样算法,这里再对它的重点、难点加以说明。

(1)以前待预测样本表示为 ( x , y ) (\boldsymbol{x},y) (x,y) ( x 1 , x 2 , ⋯   , x d , y ) (x_1,x_2,\cdots,x_d,y) (x1,x2,,xd,y),其中,属性 x i , ( i = 1 , 2 , ⋯   , d ) x_i,(i=1,2,\cdots,d) xi,(i=1,2,,d)已知,求标记 y = y= y=?现在将 ( x 1 , x 2 , ⋯   , x d , y ) (x_1,x_2,\cdots,x_d,y) (x1,x2,,xd,y)中全视为变量,有的变量已知(证据),有的变量未知(待查询),将证据变量和待查询变量分开,各自排列,即样本为
( E 1 , E 2 , ⋯   , E k , Q 1 , Q 2 , ⋯   , Q n ) (E_1,E_2,\cdots,E_k,Q_1,Q_2,\cdots,Q_n) (E1,E2,,Ek,Q1,Q2,,Qn)
其中, E i E_i Ei为证据变量, Q j Q_j Qj为待查询变量,写成集合形式则为 ( E , Q ) (\boldsymbol{E},\boldsymbol{Q}) (E,Q)

(2)以大写字母表示变量,小写字母表示变量的值,粗体表示对应的向量。 则查询问题可以表述为: 证据为 x \boldsymbol{x} x,查询出现 q \boldsymbol{q} q的概率为多少(如,阴天(证据)下雨(查询)的概率多大)?即求 P ( Q = q   ∣   E = x ) P(\boldsymbol{Q}=\boldsymbol{q}\,|\,\boldsymbol{E}=\boldsymbol{x}) P(Q=qE=x)

(3)通过频率估计上述概率,而频率又是通过采样后计数来获得,求 P ( Q = q   ∣   E = x ) P(\boldsymbol{Q}=\boldsymbol{q}\,|\,\boldsymbol{E}=\boldsymbol{x}) P(Q=qE=x)只需要在条件 ( E = x ) (\boldsymbol{E}=\boldsymbol{x}) (E=x)下采样,设采样总数为 T T T,其中 Q = q \boldsymbol{Q}=\boldsymbol{q} Q=q的样本数为 n Q = q n_{\boldsymbol{Q}=\boldsymbol{q}} nQ=q个,则
P ^ ( Q = q   ∣   E = x ) = n Q = q T \begin{align} \hat{P}(\boldsymbol{Q}=\boldsymbol{q}\,|\,\boldsymbol{E}=\boldsymbol{x})=\frac{n_{\boldsymbol{Q}=\boldsymbol{q}}}{T} \tag{7.49} \end{align} P^(Q=qE=x)=TnQ=q(7.49)

(4)在哪儿去采样?容易想到在数据集 D D D中去采样,或者直接将数据集 D D D视为采样集,统计其中满足条件 ( E = x ) (\boldsymbol{E}=\boldsymbol{x}) (E=x) T T T n Q = q n_{\boldsymbol{Q}=\boldsymbol{q}} nQ=q,如果数据集 D D D超大,你当然可以这样做。 现在,我们换个思路来考虑,通过数据集 D D D已训练出一个贝叶斯网 B = ⟨ G , Θ ⟩ B=\langle G,\Theta \rangle B=G,Θ,转化到在贝叶斯网 B B B上采样,然而,贝叶斯网 B B B并不是样本空间(或样本集)如何在其上采样?贝叶斯网 B B B有个神奇的功能:指定结点 x i x_i xi,在固定其他所有结点值的情况下,可以求出指定结点的条件概率分布 P ( x i   ∣   x ‾ 1 , x ‾ 2 , ⋯   , x ‾ i − 1 , x ‾ i + 1 , ⋯   , x ‾ d ) P(x_i\,|\,\overline{x}_1, \overline{x}_2,\cdots,\overline{x}_{i-1},\overline{x}_{i+1},\cdots,\overline{x}_d) P(xix1,x2,,xi1,xi+1,,xd),即式(7.47)的“查询”功能,由该概率即可“采样”出该结点的值,该值与其他所有结点的值共同组成一个样本,将其视为采样得到的样本,它实际上,是借助贝叶斯网 B B B通过局部 x i x_i xi采样而“生成”一个样本 x \boldsymbol{x} x。 这就是吉布斯采样算法【西瓜书图7.5】中的第7、第8句。

(5)【西瓜书图7.5】吉布斯采样算法由两层循环来 描述:外层for循环(第3句)产生“一组样本”,内层for循环(第4至第10句)产生样本(产生“一组属性”),即对 Q i , ( i = 1 , 2 , ⋯   , n ) Q_i,(i=1,2,\cdots,n) Qi,(i=1,2,,n)循环。

(6)【西瓜书图7.5】算法中第8句涉及到已知概率分布,如何进行采样的问题。 这里以离散随机变量进行说明:例如,随机变量 A A A可取值为 a 1 , a 2 , a 3 a_1,a_2,a_3 a1,a2,a3,已知 P ( A ) P(A) P(A)是指 A A A取每个值的概率已知,如, P ( A = a 1 ) = 1 10 , P ( A = a 2 ) = 2 5 , P ( A = a 3 ) = 1 2 P(A=a_1)=\frac{1}{10},P(A=a_2)=\frac{2}{5},P(A=a_3)=\frac{1}{2} P(A=a1)=101,P(A=a2)=52,P(A=a3)=21

现在以 P ( A ) P(A) P(A)为已知的概率分布,要求采样1000个样本,先解决一个样本的采样问题,再用for循环可以得到任意多个样本。

采一个样本方法:

  • 将区间 [ 0 , 1 ] [0,1] [0,1]分为三段: T 1 = [ 0 , 1 10 ) , T 2 = [ 1 10 , 5 10 ) , T 1 = [ 5 10 , 10 10 ] T_1=[0,\frac{1}{10}),T_2=[\frac{1}{10},\frac{5}{10}),T_1=[\frac{5}{10},\frac{10}{10}] T1=[0,101),T2=[101,105),T1=[105,1010]

  • 计算机中随机数发生器产生的随机数是均匀分布的,即可用程序产生区间 [ 0 , 1 ] [0,1] [0,1]中均匀分布的随机数 r r r,如: r = r a n d o m ( s e e d ) r=\mathrm{random}(seed) r=random(seed)

  • 判断随机数 r r r所在的区间段:若落入 T 1 T_1 T1,则取样本 A = a 1 A=a_1 A=a1;若落入 T 2 T_2 T2,则取样本 A = a 2 A=a_2 A=a2;若落入 T 3 T_3 T3,则取样本 A = a 3 A=a_3 A=a3

(7)吉布斯采样算法是从已有的 q t − 1 \boldsymbol{q}^{t-1} qt1出发采出 q   t \boldsymbol{q}^{\,t} qt,然而开始时没有这个“已有”,而是胡乱地初始化一个 q 0 \boldsymbol{q}^0 q0作为“已有”,即【西瓜书图7.5】算法中第2句,那么,问题来了:这个 q 0 \boldsymbol{q}^0 q0是否合适?首先,这个 q 0 \boldsymbol{q}^0 q0应该是在 Q \boldsymbol{Q} Q的取值范围内的,其次是要能“取到”该值,这个不能保证,因为该值有可能是“小概率事件”。 好在数学上证明了不需要保证这一点,这就是【西瓜书p.161】所说的采样形成的“马尔可夫链”收敛于平稳分布。 因此,【西瓜书图7.5】算法中对采样计数(第3句)应该改造一下:斩掉一段不太平稳的“链”头再开始计数。

(8)吉布斯采样算法既可以采样一个样本(用于预测),又可以采样一组样本(用于查询),我们通过一段对话来理解:

Q:“根据今天的天气状况,你觉得明天是晴还是雨?”——今天的天气状况【证据】,明天是晴还是雨【预测】。

J:“我觉得明天是晴天. ”——J用吉布斯采样算法采了一个样本,发现该样本是晴【预测结果】。

Q:“你预报的准确性如何?”

J:“让我再想想. ”——J用吉布斯采样算法采出一组样本,计算明天是晴还是雨各自的频率【近似估算后验概率】。

Q:“其实,我想知道明天是雨天的可能性有多大,因为我明天要举办露天婚礼。 ”——明天是雨天的可能性【查询】。

J:“明天是雨天的概率是60%. ”——根据刚计算出的频率作出近似推断【查询结果】。

综上,近似推断有如下步骤:

(1)从现实物理世界中采样得到训练集 D D D

(2)以评价函数最小化为目标即 min ⁡ s ( B   ∣   D ) \min s(B\,|\,D) mins(BD),搜索得到一个贝叶斯网络 B = ⟨ G , Θ ⟩ B=\langle G,\Theta \rangle B=G,Θ

(3)从 B B B及证据出发,使用吉布斯算法采样,得到一个样本集。注:这里与其说是“采样”,不如说是用“样本制造机”来“制造”样本,“样本制造机”有多种多样,但它应保证“制造”出的“样本集”是反映样本空间的特性(即统计频率能反映样本空间中的概率),这里的“样本制造机”为训练好的贝叶斯网及吉布斯算法。

(4)对产生(采样)得到的样本集进行分门别类“计数”,得到待查询值的概率(近似值),即式(7.49)。

其中,(1)与(2)可以视为生产一个产品 B B B,(3)与(4)视为使用产品 B B B,显然,产品可以发布给许多用户使用。

本文为原创,您可以:

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

上一篇:7.6 贝叶斯网(也称信念网)结构(网络结构也是“超参数”)、贝叶斯图络学习(两级搜索法)
下一篇:7.8 再谈极大似然(对数边际似然)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值