贝叶斯模型

Posted on Wed, Mar 30, 2022 📖Note ML

贝叶斯决策论

基础知识

条件概率:描述两个有因果关系的随机事件之间的概率关系,p(ba)p(b|a)定义为在事件aa发生的前提下事件bb发生的概率。

贝叶斯公式:两个随机事件之间的关系 p(ba)=p(ab)p(b)p(a)p(b|a)=\dfrac{p(a|b)p(b)}{p(a)}

分类问题:特征向量取值x\boldsymbol{x}与样本所属类型yy有因果关系。因为样本属于类型yy,所以具有特征值x\boldsymbol{x}.

分类器:已知样本的特征向量x\boldsymbol{x}的条件下反推样本所属的类别。根据贝叶斯公式有 p(yx)=p(xy)p(y)p(x)p(y|\boldsymbol{x})=\dfrac{p(\boldsymbol{x}|y)p(y)}{p(\boldsymbol{x})}.

最小化分类错误率的贝叶斯最优分类器 h(x)=arg maxcYP(cx)h^*(x)=\underset{c \in \mathcal{Y}}{\argmax}P(c|\boldsymbol{x}) 对于每个样本x\boldsymbol{x},选择使后验概率P(cx)P(c|\boldsymbol{x})最大的类别标记。(P(cx)P(c|\boldsymbol{x})现实中难以直接获得)

判别模型与生成模型

机器学习所要实现的是基于有限的训练样本尽可能准确地估计出后验概率

两种基本策略:

假设有4个samples:

生成模型:P(x,y)=1\sum P(x,y)=1

判别模型:yP(yx)=1\sum_yP(y|x)=1

朴素贝叶斯分类器

条件独立假设

给定类标号yy,朴素贝叶斯分类器在估计类条件概率时假设属性之间条件独立

条件独立假设可以形式化的表达如下:

P(XY=y)=i=1nP(xiY=y)P(X\,|\,Y=y)=\prod_{i=1}^nP(x_i\,|\,Y=y)

其中每个训练样本可用一个属性向量X=(x1,x2,x3,,xn)X=(x_1,x_2,x_3,\dots,x_n)表示,各个属性之间条件独立。

有了条件独立假设,就不必计算XXYY的每一种组合的类条件概率,只需对给定的YY,计算每个xix_i的条件概率。不需要很大的训练集就能获得较好的概率估计,更实用。

P(xiY=y)P(x_i\,|\,Y=y)一般根据类别yy下包含属性xix_i的实例的比例来估计

朴素贝叶斯分类器表达式

由于对所有类别来说P(x)P(\boldsymbol{x})相同,因此有朴素贝叶斯分类器的表达式

hnb(x)=arg maxcY  P(c)i=1dP(xic)h_{nb}(\boldsymbol{x})=\underset{c\in\mathcal{Y}}{\argmax}\;P(c)\prod_{i=1}^dP(x_i\,|\,c)

显然,朴素贝叶斯分类器的训练过程就是基于训练集DD来估计类先验概率P(c)P(c),并为每个属性估计条件概率P(xic)P(x_i\,|\,c).

DcD_c表示训练集DD中第cc类样本组成的集合,若有充足的独立同分布样本,则可容易地估计出类先验概率:P(c)=DcDP(c)=\dfrac{|D_c|}{|D|}.

估计每个属性的条件概率P(xic)P(x_i\,|\,c)

离散:P(xic)=Dc,xiDcP(x_i\,|\,c)=\dfrac{|D_{c,x_i}|}{|D_c|}

连续:P(xic)=12πσc,iexp((xiμc,i)22σc,i2)P(x_i\,|\,c)=\dfrac{1}{\sqrt{2\pi}\sigma_{c,i}}\exp\Big(-\dfrac{(x_i-\mu_{c,i})^2}{2\sigma_{c,i}^2}\Big)

拉普拉斯修正

若某个属性值在训练集中没有与某个类同时出现过,则直接计算连乘式的概率值为0,导致分类结果显然不合理。为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”,在估计概率值时通常要进行“拉普拉斯修正”

NN表示数据集DD中可能的类别数,NiN_i表示第ii个属性可能的取值数,则

P^(c)=Dc+1D+NP^(xic)=Dc,xi+1Dc+Ni\begin{aligned} \hat{P}(c) &= \frac{|D_c|+1}{|D|+N} \\ \hat{P}(x_i\,|\,c) &= \frac{|D_{c,x_i}|+1}{|D_c|+N_i} \end{aligned}

(拉普拉斯修正,实际上是假设了属性与类别均匀分布)

半朴素贝叶斯分类器

对属性条件独立假设进行一定程度的放松,由此产生了一类称为“半朴素贝叶斯分类器”

半朴素贝叶斯分类器最常用的一种策略:“独依赖估计” (One-Dependent Estimator, ODE) ,假设每个属性在类别之外最多仅依赖一个其他属性,即

P(cx)P(c)i=1dP(xic,pai)P(c\,|\,\boldsymbol{x})\propto P(c)\prod_{i=1}^dP(x_i\,|\,c,{pa}_i)

其中pai{pa}_i为属性xix_i所依赖的属性,称为xix_i的父属性。

问题关键转化为如何确定每个属性的父属性。常见方法有:

贝叶斯网络

把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。

贝叶斯网络 (Bayesian Network) ,是有向无环图模型,也是一种概率图模型,借由有向无环图DAG得知一组随机变量{X1,X2,,Xn}\{X_1,X_2,\dots,X_n\}及其nn条件概率分布的性质。

一般而言,贝叶斯网络的有向无环图中的结点表示随机变量,它们是可观察到的变量,或隐变量、未知参数等。连接两个结点的箭头代表此两个随机变量是具有因果关系(或非条件独立)。若两个结点间以一个单箭头连接在一起,表示其中一个结点是“因 (parents)”,另一个是“果 (children)”,两结点就会产生一个条件概率值。

每个结点在给定其直接前驱时,条件独立于其非后继。

概率图模型:用图来表示变量概率依赖关系的理论 - 贝叶斯网络 (Bayesian Network) :有向图结构表示 - 马尔可夫网络 (Markov Network) :无向图结构表示 概率图模型包括朴素贝叶斯模型、最大熵模型、隐马尔可夫模型、条件随机场、主题模型等。

p(a,b,c)=p(ca,b)p(ba)p(a)p(a,b,c)=p(c|a,b)p(b|a)p(a)

  • 正常的贝叶斯网络:直观上有些边缺失
    • x1x_1x2x_2独立
    • x6x_6x7x_7x4x_4给定的条件下独立
    • x1,x2,,x7x_1,x_2,\dots,x_7的联合分布:

      p(x1)p(x2)p(x3)p(x4x1,x2,x3)p(x5x1,x3)p(x6x4)p(x7x4,x5)p(x_1)p(x_2)p(x_3)p(x_4|x_1,x_2,x_3)p(x_5|x_1,x_3)p(x_6|x_4)p(x_7|x_4,x_5)

贝叶斯网络的结构形式

  • head-to-head

    p(a,b,c)=p(a)p(b)p(ca,b)p(a,b,c)=p(a)p(b)p(c|a,b)成立,即在cc未知的条件下,a,ba,b被阻断 (blocked) ,是独立的,称之为head-to-head条件独立。

  • tail-to-tail
    • cc未知的条件下:p(a,b,c)=p(c)p(ac)p(bc)p(a,b,c)=p(c)p(a|c)p(b|c),此时,无法得出p(a,b)=p(a)p(b)p(a,b)=p(a)p(b),即cc未知时,a,ba,b不独立;
    • cc已知的条件下:p(a,bc)=p(a,b,c)p(c)p(a,b|c)=\frac{p(a,b,c)}{p(c)},将p(a,b,c)=p(c)p(ac)p(bc)p(a,b,c)=p(c)p(a|c)p(b|c)带入式子得到:p(a,bc)=p(ac)p(bc)p(a,b|c)=p(a|c)p(b|c),即cc已知时,a,ba,b独立。
  • head-to-tail
    • cc未知时:p(a,b,c)=p(a)p(ca)p(bc)p(a,b,c)=p(a)p(c|a)p(b|c),此时,无法得出p(a,b)=p(a)p(b)p(a,b)=p(a)p(b),即cc未知时,a,ba,b不独立;
    • cc已知时:

      p(a,bc)=p(a,b,c)p(c)p(a,b|c)=\frac{p(a,b,c)}{p(c)},且根据p(a,c)=p(a)p(ca)=p(c)p(ac)p(a,c)=p(a)p(c|a)=p(c)p(a|c),可得到:

      p(a,bc)=p(a,b,c)p(c)=p(a)p(ca)p(bc)p(c)=p(a,c)p(bc)p(c)=p(ac)p(bc)p(a,b|c)=\frac{p(a,b,c)}{p(c)}=\frac{p(a)p(c|a)p(b|c)}{p(c)}=\frac{p(a,c)p(b|c)}{p(c)}=p(a|c)p(b|c)

      cc给定的条件下,a,ba,b被阻断 (blocked) ,是独立的,称之为head-to-tail条件独立。

    head-to-tail是一个链式网络,在xix_i给定的条件下,xi+1x_{i+1}的分布和x1,x2,,xi1x_1,x_2,\dots,x_{i-1}条件独立。

    xi+1x_{i+1}的分布状态只和xix_i有关,和其他变量条件独立。

    当前状态只跟上一状态有关,跟上上或上上之前的状态无关——马尔科夫链 (Markov chain)