模式识别与机器学习笔记专栏之贝叶斯分类决策(一)

这是模式识别与机器学习笔记专栏的第一篇,我会持续更新。

在所有的生活场景中,我们无时无刻不在进行着模式识别。比如你看见迎面走来一个人,根据他的长相来辨认出他好像是你一年前某个活动小组的组长,然后你开始决策要不要和他打个招呼。或者你走进水果店,把西瓜拍了个遍来决定最后买哪一个。或者你突然被捂上眼睛,听着背后人的声音来辨别是不是你的亲爱的。

模式(pattern) 可以理解成某种特征,也就是你可以获取到的某种原始数据,而 模式识别(pattern recognition) 就是根据输入原始数据来判断其类别并采取相应行为的能力。它对我们至关重要,但我们常常希望可以有机器帮我们来做这个工作,让机器执行预定的程序来进行分类从而决策。比如一个短信拦截系统,帮我们分辨哪些是骚扰短信,哪些是有用的信息。

在这个问题上,贝叶斯决策理论是最最经典而基本的分类方法了。那么,何为贝叶斯分类决策?

1. 贝叶斯公式

首先,我们熟悉的贝叶斯公式

\[P(\omega_i|x)=\frac{p(x|\omega_i)P(\omega_i)}{p(x)} \]

在模式识别问题中,用 \(d\) 维向量 \(x\) 来表示希望分类对象的特征,它一般是从传感器获取,并且抽象化出来。\(\omega\) 来表示可能分类的类别。\(\omega_i\) 对应着第 \(i\) 类,如果是一个两类问题,\(i=1,2\) ,如果是 \(c\) 类问题,则 \(i=1,2,...,c\)

\(P(\omega_i|x)\) 是由特征 \(x\) 预测的结果,也就是后验概率,\(p(x|\omega_i)\) 是类条件概率,或者叫似然概率,就是特征 \(x\) 这个随机变量分布情况,它是取决于类别 \(\omega\) 的状态的。\(P(\omega_i)\)是类先验信息,是根据先前知识经验给定的,并且因为总共就c类,所以很容易得到\(\sum^{c}_{j=1}P(\omega_j)=1\)\(p(x)\)是归一化因子,并不重要:

\[p(x)=\sum^{c}_{j=1}p(x|\omega_j)P(\omega_j) \]

目的就是使得所有后验概率之和为1。

贝叶斯公式提供了一个后验概率的重要计算依据:从似然概率和先验概率得到。

2. 最小错误率贝叶斯决策

首先简化问题为二分类问题,比如短信分类问题,\(\omega=\omega_1\) 是将短信分为有用短信,\(\omega=\omega_2\) 是将短信分类为垃圾短信。假设我们现在对这两类的先验概率和特征 \(x\) 的类条件概率分布都知道了。那么通过一个短信提取到的特征 \(x\) ,就可以利用贝叶斯公式计算后验概率,也就是对可能的两类做出的概率判断。

\[P(\omega_1|x)=p(x|\omega_1)P(\omega_1)\\ P(\omega_2|x)=p(x|\omega_2)P(\omega_2) \]

很自然的来比较后验概率来进行决策,哪一类的后验概率大,就判定为哪一类,先验是给定的,归一化因子不重要,实质上比的就是类条件概率分布。

  • 现在引入一个错误率 \(P(error|x)\) 的概念,对一个\(x\) ,算出了 \(P(\omega_1|x)\)\(P(\omega_2|x)\),假如我们让\(\omega=\omega_1\),也就是判定为第一类,把这条短信判断成有用的,那么我们判断正确的概率就是 \(P(\omega_1|x)\) ,而判断错误的概率就是\(P(\omega_2|x)\)。写成公式:

\[P(error|x)= \begin{cases} P(\omega_1|x)& \text{如果判定为}\omega_2 \\ P(\omega_2|x)& \text{如果判定为}\omega_1 \end{cases} \]

  • 我们希望我们判断的错误率更小,因此我们得到判决规则:

如果\(P(\omega_1|x)>P(\omega_2|x)\),判定为 \(\omega_1\);否则判定为 \(\omega_2\)

——这就是最小错误率贝叶斯决策,也就是哪一类后验概率大,判为哪一类

  • 写成似然概率和先验概率的形式:

如果\(p(x|\omega_1)P(\omega_1)>p(x|\omega_2)P(\omega_2)\),判定为 \(\omega_1\);否则判定为 \(\omega_2\)

3. 最小风险贝叶斯决策

下面把判决规则升级一下。

再回想一下短信分类的问题。假如预测成有用短信和骚扰短信的后验概率接近的时候,这时候误判的可能性还是比较高的。如果误判,可能会把有用的分成垃圾,把垃圾短信分成有用的。可以想象这两者的错误率是此消彼长的,但对哪种的错误率容忍度更高呢?把有用的分成垃圾的看起来更加难以接受。这时候可能就希望那种模棱两可的情况还是判定成有用的好。那么如何来体现这种对错误率容忍度的不同呢?下面就引入损失函数。

对每一种判断以及真实情况定义一个损失函数\(\lambda(\alpha_i|\omega_j)\),以下面的两类问题为例

\(\lambda(\alpha_i\vert\omega_j)\) \(\omega_1\) \(\omega_2\)
\(\alpha_1\) 0 1
\(\alpha_2\) 2 0

\(\omega_j\) 表示要分类对象的真实类别是 \(\omega_j\)\(\alpha_i\) 表示要采取的行为,即判定为 \(\omega_i\)

以短信分类为例,假如真实是\(\omega_1\) ,有用短信,采取\(\alpha_1\) ,判断为有用,也就是判断正确了,可以定义损失就是0。假如真实是\(\omega_2\) ,垃圾短信,采取\(\alpha_1\) ,判断为有用,也就是判断错误了,可以定义损失函数为1。假如真实是\(\omega_1\) ,有用短信,采取\(\alpha_2\) ,判断为垃圾,同样是判断错误了,而这种错误我们的容忍度更低,那么可以定义损失函数为2。

  • 损失函数乘以对应的后验概率\(P(\omega_j|x)\) 并求和,得到风险函数\(R(\alpha_i|x)\)

\[R(\alpha_1|x)=\lambda(\alpha_1|\omega_1)P(\omega_1|x) +\lambda(\alpha_1|\omega_2)P(\omega_2|x)\\ R(\alpha_2|x)=\lambda(\alpha_2|\omega_1)P(\omega_1|x) + \lambda(\alpha_2|\omega_2)P(\omega_2|x) \]

理解起来就是:\(\alpha_i\)行为的风险=每种 \(\omega\) 情况下采取\(\alpha_i\)行为的损失x是这种 \(\omega\) 的后验概率

  • 与最小错误率贝叶斯决策相对应的,这时候使得风险函数最小就行了,判决规则写成:

如果\(R(\alpha_1|x) < R(\omega_2|x)\),采取行为\(\alpha_1\) ,也就是判定为 \(\omega_1\);否则采取行为\(\alpha_2\) ,也就是判定为 \(\omega_2\)

因此决策的方式就是采取风险\(R(\alpha_i|x)\)最小的行为\(\alpha_i\)——这是最小风险贝叶斯决策

  • \(\lambda(\alpha_i|\omega_j)\) 简写成\(\lambda_{ij}\) ,并把类条件概率和先验概率代入,得到判决规则:

如果\((\lambda_{11}-\lambda_{21})p(x|\omega_1)P(\omega_1) < (\lambda_{22}-\lambda_{12})p(x|\omega_2)P(\omega_2)\),采取行为\(\alpha_1\) ,也就是判定为 \(\omega_1\);否则采取行为\(\alpha_2\) ,也就是判定为 \(\omega_2\)

  • 还可以写成似然比的形式:

如果\(\frac{p(x|\omega_1)}{p(x|\omega_2)}<\frac{(\lambda_{22}-\lambda_{12})}{(\lambda_{11}-\lambda_{21})}\frac{P(\omega_2)}{P(\omega_1)}\) ,采取行为\(\alpha_1\) ,也就是判定为 \(\omega_1\);否则采取行为\(\alpha_2\) ,也就是判定为 \(\omega_2\)

这样写的好处是,不等式右边的损失函数和先验概率都是给定的,是一个常数,左边就是似然概率之比,所以只需要算出似然概率之比就可以进行分类预测

  • 另外,如果采用如下0-1损失函数的时候,最小风险贝叶斯决策就会退化成最小错误率贝叶斯决策
\(\lambda(\alpha_i\vert\omega_j)\) \(\omega_1\) \(\omega_2\)
\(\alpha_1\) 0 1
\(\alpha_2\) 1 0

\[R(\alpha_1|x)=\lambda(\alpha_1|\omega_1)P(\omega_1|x)+\lambda(\alpha_1|\omega_2)P(\omega_2|x)=P(\omega_2|x)\\ R(\alpha_2|x)=\lambda(\alpha_2|\omega_1)P(\omega_1|x) + \lambda(\alpha_2|\omega_2)P(\omega_2|x)=P(\omega_1|x) \]

  • 如果是多类情况

\[R(\alpha_i|x)=\sum^c_{j=1}\lambda(\alpha_i|\omega_j)P(\omega_j|x) \]

决策行为\(\alpha^*=argminR(\alpha_i|x)\) ,也就是采取的行为\(\alpha_i\) 是使得风险\(R(\alpha_i|x)\) 最小的那个\(\alpha_i\)

posted @ 2020-06-17 17:04  zolich  阅读(826)  评论(0编辑  收藏  举报