贝叶斯定理

贝叶斯定理

由联合概率的乘法交换律得到

P(H,D)=P(D,H)P(H)P(DH)=P(D)P(HD)P(HD)=P(H)P(DH)P(D)P(HiD)=P(Hi)P(DHi)iP(Hi)P(DHi)\begin{aligned} P(H,D) &= P(D,H)\\ P(H)P(D|H) &= P(D)P(H|D)\\ P(H|D) &= \frac{P(H)P(D|H)}{P(D)}\\ P(H_i|D) &= \frac{P(H_i)P(D|H_i)}{\sum_i P(H_i)P(D|H_i)} \end{aligned}

其中

  • P(H)P(H) 为先验概率,即在得到新数据前的某一假设

  • P(HD)P(H|D) 为后验概率,即在看到新数据后,我们待求解的该假设的概率

  • P(DH)P(D|H) 称为似然度,是该假设下得到这一数据的概率

  • P(D)P(D) 称为标准化常量,是在任何假设下得到这一数据的概率

DD 变成样本 xx,将 HH 变成连续的参数 θ\theta,有贝叶斯公式

π(θix)=f(xθi)π(θi)Θf(xθi)π(θi)\pi(\theta_i|x)=\frac{f(x|\theta_i)\pi(\theta_i)}{\int_\Theta f(x|\theta_i)\pi(\theta_i)}

其中

  • π(θ)\pi(\theta) 为先验分布,可设为 0-1 均匀分布
  • π(θx)\pi(\theta|x) 为后验分布
  • f(xθ)f(x|\theta) 为似然函数,即我们观测到的样本分布

累计分布函数 CDF FX(x)F_X(x),也叫分布函数,有 FX(x)=P(Xx)F_X(x) = P(X \le x),是非降、有界、有连续的函数。

概率密度函数 PDF fXf_X,有 FX(x)=infxfX(t)dtF_X(x)=\int_{-\inf}^x f_X(t)dt,是有界、单调、右连续的函数。

求解参数 θ\theta,可以用矩估计法或极大似然估计法

argmaxθMLE(θ)=if(xiθ)\arg \max_{\theta} \text{MLE}(\theta)=\prod_i f(x_i | \theta)

贝叶斯分类器

贝叶斯决策论

假设样本分类空间 Y=c1,c2,...,cn\mathcal{Y}={c_1,c_2,...,c_n} , 样本 xx 上的条件风险定义

R(cix)=j=1NλijP(cjx)R(c_i|x) = \sum_{j=1}^{N} \lambda_{ij} P(c_j|x)

其中 λij\lambda_{ij} 是误分 jjii 类产生的损失

寻找一个判定准则 h:XYh:X \leftarrow Y 以最小化风险

R(h)=E[R(h(x)x)]R(h) = \mathbb{E} [R(h(x)|x)]

贝叶斯准则: 为最小化总体风险, 只需在每个样本上选择那个能使条件风险 R(cx)R(c|x) 最小化的类别标记, 即

h(x)=argmincYR(cx)h^*(x)= \arg \min_{c \in \mathcal{Y}} R(c|x)

其中, 1R(h)1 - R(h^*) 反应了分类器所能达到的最优性能, 即通过机器学习所能产生的模型精度的最上限.

此时 hh^{*} 称为贝叶斯最优分类器

与之对应的总体风险称为 R(h)R(h^*) 称为贝叶斯风险.

当最小化分类错误错误分类率时, λi,j\lambda_{i,j} 定义为

λi,j=I(i==j)\lambda_{i,j}=I(i==j)

此时条件风险

R(cx)=1P(cx)R(c|x)=1-P(c|x)

于是最小化分类错误率的贝叶斯最优分类器为

h(x)=argmaxxYP(cx)h^* (x)= \arg \max_{x \in \mathcal{Y}} P(c|x)

不难看出, 要使用贝叶斯判定准则来最小化决策风险, 首先要获得后验概率 P(cx)P(c|x) , 但是在现实任务中很难. 问题可以转化为贝叶斯公式

P(cx)=P(x,c)P(x)=P(c)P(xc)P(x)P(c|x)=\frac{P(x,c)}{P(x)}=\frac{P(c)P(x|c)}{P(x)}

其中, P(c)P(c) 是类先验概率, P(xc)P(x|c) 是样本 x 相对于标记 c 的累条件概率, 或者成为似然, P(x)P(x) 是用于归一化的证据因子. 对给定样本 x, 证据因子和累标记无关. 因此累估计 P(cx)P(c|x) 的问题就转化为如何基于训练数据集 TT 来估计先验 P(c)P(c) 和似然 P(xc)P(x|c)

其中 P(xc)P(x|c) 的频率学派估计方法, 假定参数是客观存在的固定值, 通过优化似然函数等准则来确定参数值. Bayesian 学派认为, 参数是为观察到的随机变量, 它本身也可有分布, 因此可以假定参数服从一个先验分布, 然后基于观测到的数据来计算参数的后验分布.

频率学派的 MLE 方法: 令 DcD_c 表示训练集中第 cc 类样本组成的集合, 假设这些样本是独立同分布的, 则参数 θc\theta_c 对于数据集 DcD_c 的似然是

P(Dcθc)=xDcP(xθc)P(D_c|\theta_c) = \prod_{x \in D_c}{P(x|\theta_c)}

通常用对数似然, 避免上式连乘操作的下溢

LL(θc)=logP(Dcθc)=xDclogP(xθc)LL(\theta_c)=\log P(D_c|\theta_c)=\sum_{x\in D_c} \log P(x|\theta_c)

朴素贝叶斯分类器

贝叶斯公式估计后验概率 P(cx)P(c|x) 的困难在于 P(xc)P(x|c) 是所有属性上的联合概率, 难以从有限的样本直接估计而得. 为解决这个问题, 朴素贝叶斯分类器采用了 “属性条件独立性假设”: 对已知类别, 假设所有属性相互独立. 那么有

P(cx)=P(c)P(xc)P(x)=P(c)P(x)i=1dP(xic)P(c|x)=\frac{P(c)P(x|c)}{P(x)} = \frac{P(c)}{P(x)} \prod_{i=1}^{d} P(x_i|c)

其中 dd 为属性的数目, xix_ixx 在第 ii 个属性上的取值

对所有类别 P(x)P(x) 相同, 因此贝叶斯判定准则有

hnb(x)=argmaxcYP(c)i=1dP(xic)h_{nb}(x) = \arg \max_{c\in \mathcal{Y}} P(c) \prod_{i=1}^{d} P(x_i|c)

这就是朴素贝叶斯分类器的表达式, 其中

P(c)=DcDP(xic)=Dc,xiDc\begin{aligned} P(c)=\frac{|D_c|}{|D|}\\ P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} \end{aligned}

半朴素贝叶斯分类器

推导 wiki

One-Depedent Estimator, ODE, 独依赖估计, 假设每个属性在类别之外最多仅依赖一个其他属性, 可以推导出

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

TODO

贝叶斯网

也叫信念网, belief network, 借助无环图, Directed Acyclic Graph, DAG 来刻画属性之间的依赖关系, 并使用条件概率表 CPT 来描述属性的联合概率分布

TODO

EM 算法

在训练集中, 有时会有未观测到的变量, 即隐变量. 令 XX 表示已观测变量集合, ZZ 表示隐变量集, Θ\Theta 表示模型参数. 若想对 Θ\Theta 做极大似然估计, 则应最大化对数似然函数

LL(ΘX,Z)=lnP(X,ZΘ)LL(\Theta|X,Z)=\ln {P(X,Z|\Theta)}

由于 ZZ 是隐变量, 无法直接求解. 我们可以用梯度下降方法估计隐变量, 但是求和项数会随着隐变量的数目指数增加, 给梯度计算带来麻烦. 或者可用 EM 方法 (非梯度优化方法), 通过对 ZZ 计算期望, 来最大化已观测数据的对数边际似然 marginal likelyhood

LL(ΘX)=ln(P(XΘ))=lnZP(X,ZΘ)LL(\Theta|X)=ln(P(X|\Theta))=ln \sum_{Z} P(X,Z|\Theta)

Expectation Maximization 算法, 是常用的估计参数隐变量的方法, 其基本想法是: 若参数 Θ\Theta 已知, 则可根据训练数据推断初最优隐变量 ZZ 的值 (E步); 反之, 若 ZZ 的值已知, 则可方便地对参数 Θ\Theta 做极大似然估计 (M 步). 交替 E 步, M 步直到收敛到局部最优解.

Expetation 步: 若当前参数 Θt\Theta^t 推断隐变量分布 P(ZX,Θt)P(Z|X,\Theta^t) 并计算对数似然 LL(ΘX,Z)LL(\Theta|X,Z) 关于 Z 的期望,

Q(ΘΘt)=EZX,ΘtLL(ΘX,Z)Q(\Theta|\Theta^t)=\mathbb{E}_{Z|X,\Theta^t} LL(\Theta|X,Z)

Maximization 步: 寻找参数最大化的期望似然

Θt+1=argmaxQ(ΘΘt)\Theta^{t+1}=\arg \max Q(\Theta|\Theta^t)

参考

《统计学习方法》,李航

《贝叶斯思维——统计建模的 Python 学习法》,Allen B. Downey

https://www.zhihu.com/question/21134457

本文有帮助?