机器学习,信号检测都会涉及到和贝叶斯有关的很多方法,很容易混乱抓不住本质,最近学习贝叶斯分类器,需要贝叶斯决策论做基础,特此记录梳理。
顾名思义,贝叶斯决策论是利用概率来进行决策,是概率框架下的方法。它属于机器学习的分支——统计机器学习。
本文探讨的是贝叶斯决策的思路,思想,通过逐点推导,让你知道它到底基于什么,目的又是什么。

<>(一)以多分类任务为例

本文以多分类任务为例,讲解到底怎么用概率做出决策(分类)。

假设有N种类别标记,即 y∈{c1,c2,…,cN}y\in\left\{c_1,c_2,\ldots,c_N \right\}y∈{c1​,c2​,…,cN
​};
λij\lambda_{ij}λij​ 是将一个真实标记为cjc_jcj​的样本误分类为cic_ici​所产生的损失;
基于后验概率p(ci∣x)p(c_i|x)p(ci​∣x),可得将样本?分类为cic_ici​所产生的期望损失(expected
loss),即在样本?上的“条件风险”( conditional risk) :

(1)R(ci∣x)=∑j=1Nλijp(cj∣x)R(c_i|x)=\sum_{j=1}^N\lambda_{ij}p(c_j|x)\tag1R(ci​∣x
)=j=1∑N​λij​p(cj​∣x)(1)

x属于第j类的概率乘以把第j类误判为第i类的风险,对所有j取期望,就是把x分类为i的条件风险了。

和贝叶斯有关的方法都喜欢把损失称作风险,其实是一个东西,都是越小越好,优化目的都是去最小化风险/损失。

学过随机过程都知道,(1)只是条件期望,要求无条件的期望还得再对条件期望求一次期望(我也觉得这么说很讨打······)。

(1)对j来了一次统计平均(期望),得到了样本x的条件风险,下面我们再对所有样本做统计平均,以得到总体贝叶斯决策风险:
(2)R(h)=Ex[R(h(x)∣x)]R(h)=E_x[R(h(x)|x)]\tag2R(h)=Ex​[R(h(x)∣x)](2)

其中h就是我们要去求解的判定准则,即映射h:X→yh:X\to yh:X→y,X为样本集,y是类别集。

我发现涉及概率,期望的公式给别人解释起来很难表达清楚,但实际上如果你明白后验,似然,条件均值这些很基本的知识和思想的话,(1)(2)特别简单好理解,但同时也很让人钦佩。

(2)更多是理论指导意义。毕竟对所有样本求统计平均不好实现,就是把每个样本出现的概率乘上它的条件风险,对所有样本求和。
要最小化总体风险,实际上我们只需要让每个样本的条件风险最小即可。

所以问题就变为,找一个判决准则h,使得R(h(x)∣x)R(h(x)|x)R(h(x)∣x)最小化:
min⁡hR(h(x)∣x)\min_h R(h(x)|x)hmin​R(h(x)∣x)

那当然就是直接选择条件风险最小的那个类别不就好了!

所以判决准则h就是:直接选择条件风险最小的那个类别:
(3)h∗=arg⁡min⁡c∈yR(c∣x)h^*=\arg\min_{c\in y}R(c|x)\tag3h∗=argc∈ymin​R(c∣x)(3)

这个判决器h∗h^*h∗就是贝叶斯最优分类器Bayes optimal
classifier。最优体现在它使得每个样本的条件风险最小,也就使得所有样本的总体风险最小,就是总损失最小。

之前最小二乘,SVM等模型,求解模型的思路也是去最小化损失,但最小二乘用的损失是均方误差和,SVM是基于最大化间隔margin的思路,而这里用的是条件概率(准确说这里用的后验概率)去充当损失,是完全不同的思路。

更进一步,我们把最开始说的分类错误损失λij\lambda_{ij}λij​具体化,如果训练和学习的目的是最小化分类的错误率,那么可以这么定义λij
\lambda_{ij}λij​:
(4)λij={0,i=j1,otherwise\lambda_{ij}=\left\{ \begin{aligned} 0&,i=j\\
1&,otherwise\\ \end{aligned} \right.\tag4λij​={01​,i=j,otherwise​(4)

代入(1),可以发现:

R(ci∣x)=1−p(ci∣x)R(c_i|x)=1-p(c_i|x)R(ci​∣x)=1−p(ci​∣x)
因为∑j=1Np(cj∣x)=1\sum_{j=1}^Np(c_j|x)=1∑j=1N​p(cj​∣x)=1.

即,x的条件风险就是1减去后验概率。(仅限于判决错误损失是(4)哈)

所以,问题进一步*从最小化条件风险转化为最大化后验概率。

判决准则h也就具体化为最大化后验概率。
h∗=arg⁡max⁡c∈yp(c∣x)h^*=\arg\max_{c\in y}p(c|x)h∗=argc∈ymax​p(c∣x)
因此,对于测试阶段新来的样本,我们只要把它分为后验概率最大的那个类别就能保证分类错误率最低啦。

总结来说,贝叶斯决策论是的初衷是用后验概率和判决错误损失一起表示每个样本的决策风险,然后它基于要最小化总体决策风险的大局观去思考,发现这等同于最小化每个样本的条件风险,那么每个样本的条件风险在数学上具体表达是什么呢,这需要具象化判决损失才能得到,以最简单的(4)做判决损失的话,得到的最小化条件风险进一步变成了最大化每个样本的后验概率。于是经过这么一系列的思路变迁,得到了在这种判决损失下的最优判决准则——为每个样本选择后验概率最大的类别标记。

<>(二)怎么得到P(c|x)?

第一节仔仔细细把来龙去脉说清楚了,最后得到一个简单的结论:把新样本分为后验概率最大的那个类别。

新问题又来了,我怎么计算新样本的后验概率呢?怎么通过有限的训练样本集学习到能尽可能准确地估计出后验概率的模型
呢?这并不是一个简单的问题。由此就产生了两大阵营:判别式和生成式。

* 判别式模型,discriminative models:直接建模后验概率p(c∣x)p(c|x)p(c∣x)
* 生成式模型,generative models:建模联合概率p(c,x)p(c,x)p(c,x),再得到后验p(c∣x)p(c|x)p(c∣x)

技术
©2020 ioDraw All rights reserved
PTA快速排序SK海力士全球首发DDR5内存:频率冲上5600MHz、容量可达256GB鸿蒙系统基于Linux打造,其本质还是安卓系统?LeetCode快速入门① ——数组系列上(面试常问,建议收藏)特征工程【评论】华为的鸿蒙系统会开源吗?ETL工具kettle与datax的对比测试案例之Oracle to Oraclespark.sql.shuffle.partitions 和 spark.default.parallelism 的区别华为鸿蒙系统能否与安卓、苹果分庭抗礼?centos7部署springboot jar包