赞
踩
1.了解贝叶斯公式。
2.了解贝叶斯去决策相关函数和过程。
3.根据例子理解朴素贝叶斯分类器在离散变量和连续变量中的设计。
1.贝叶斯公式(Bayes function)的公式如下所示:
其中,A为类别,B为输入,Ai是第i个类别。贝叶斯公式的推导过程也十分简单:
2.那么,贝叶斯公式显然只是套用了一下条件概率公式和全概率公式,进行了一下变换。是为何能应用到实际分类中呢?首先,公式左边是我们的目标,翻译成白话是:在输入B的情况下,将其分为Ai类别的概率。同理,我们可以计算所有类别的概率。然后,公式右边是我们的依据,P(B|A)与P(A)是可以根据我们的训练数据获得的,P(B|Ai)是在Ai类别下的B的出现率,P(Ai)是Ai类别的出现率。
1.粗俗地说,贝叶斯决策是一个道理,将输入B变成输入x,类别Ai换成ωi。如下图所示:
2.接下来,通过观测公式,可以发现等式右边的分母部分是一个不影响判断的数据,称为evidence,我们就可以认为,我们做决策,或者做分类的依据,只看分子部分就可以,即:
3.那么,如果我们只进行二分类的话,我们就有:
4.将贝叶斯公式再抽象,转化,可以得到类别相似性函数:
5.最后g函数变成对数相加,这就方便我们后面的决策计算,即进行加减比较,而非乘除比较:
6.至此,贝叶斯的决策过程就讲明白了。由于贝叶斯决策仅根据统计数据来预测,并不像一些高级的机器学习方法需要设置损失函数,仅需要统计数据,设计决策函数,分类即可。
1.使用朴素贝叶斯分类器有一个比较大的条件,也可以称是其最大的约束:属性条件独立性假设。说人话就是,对于输入x,x是一个向量,要求x的每个元素关系相互独立,举个例子,为了区分西瓜是否是好瓜,我们可以去看西瓜的许多属性,如色泽、纹理、触感等等,而属性条件独立性假设说的就是假设这些属性是相互独立、互不影响的。
2.拉普拉斯平滑:由于我们在准备训练集时总会可能存在样本不充分的问题,导致某些分类或者某些情况并非出现,从而导致概率估计值为0。这会导致后面计算总概率值时出错。于是设计的拉普拉斯平滑:
3.朴素贝叶斯分类器(离散情况、半离散情况):以分辨西瓜好坏为例,我们有以下数据:
离散值是指西瓜的色泽、根蒂、敲声、纹理、脐部、触感这些属性,而密度、含糖率是连续值。这是一个半离散的情况。(1)第一步:由于我们只分两类(好瓜,坏瓜),先对这两个进行统计,即类别先验估计:
(2)第二步,我们的目标是:现在来了一个新瓜,我们如何根据他的数据去判别其是否是好瓜。
统计各属性占两个的分类的比例,即类别条件概率估计,例如西瓜乌黑占好瓜的几分之几,占坏瓜的几分之几。此时还需要区分离散值属性和连续值属性。
其中,离散部分比较好理解,连续部分是将该属性假设成一个正态分布,正态分布只需要两个数值去确定,均值和方差。显然,我们可以统计对应属性的均值和方差再代入到正态分布公式即可。这样,我们就可以计算测试数据各个属性的类别条件概率:
ps.可能有同学发现了一个问题,那就是连续值属性中得到的概率为什么会大于1,这是因为计算得出的是正态分布的函数值,该函数值需要乘上一个趋近于0的Δx才能得到真正的概率值。那么这个值会不会影响最后的区分呢?可能会,也可能不会。但毕竟朴素贝叶斯是很古老的东西了,进行深究的必要性就很小了。
(3)贝叶斯决策,根据前两步计算出来的概率估计,根据贝叶斯公式进行计算:
至此,朴素贝叶斯对于离散型、半离散型的情况就结束了。
4.朴素贝叶斯分类器(全连续型情况)
全连续型的情况是比较常见的,特别在控制机器人的运动中。由于所有属性都是连续型的,与其每个属性都设计一个正态分布进行拟合,不如将所有属性看成一个整体,对输入x(一个向量)进行正态分布拟合。
与离散型情况还有一点不同:在离散型中,我们最后只需要计算两个类别的概率值即可。但在连续值中,我们可以将测试数据x*代入两个分布中分别计算概率值,但是这样不方便,可以寻找一个临界面,临界面以内为一类,面以外为另一类。于是,问题从分类问题变成寻找临界面问题,这个临界面被我们称为决策界。
为了方便计算,先将贝叶斯公式取对数,在代入正态分布,得到类别相似性函数为(1)公式。
然后再确定决策函数和决策界:
接下来,我们主要讨论三种情况:
(1)其包含两个条件,(a)两个类别的协方差矩阵相等,(b)协方差矩阵是一个对角矩阵。(a)能让我们计算比较方便,可以抵消某些数据。(b)表明正态分布没有倾斜,属性之间还是没有互相影响,还可以用朴素贝叶斯。(如果有相关,就不能用朴素贝叶斯了)我们先计算gi(x)和gj(x)。
对于红色圆圈部分,也可以这样理解:由于我们后面要计算gi(x)-gj(x),这部分是会抵消的,故这里直接去掉就行。计算gi(x)-gj(x)之后,可以得到x0,就是我们的决策界。
x0其分为两大部分,第一大部分为黄色,其表示是两个分布均值点的中点。第二大部分为灰、红、绿三部分组成,其整体表示为决策界根据先验概率估计进行的平移调整。灰色为一个正值,其意义不用太多理解;绿色部分为界的方向,μi-μj则表示界的正方向是从μj指向μi,红色部分为先验概率估计的比值,如果i的数据更多,那么决策界会向μi远离,属于i的区域更大。
(1.sp)再特殊点,如果类别先验相等,则x0的第二大部分为0:
(2)同样包含两个条件:(1)两个类别协方差相等,(2)协方差矩阵是任意矩阵,即第1行第2列会有数值,说明这时候属性之间有相关,但我们依旧使用朴素贝叶斯来估计,(理论上应该用别的原理,但我们在实验时可以先用朴素贝叶斯来看看结果怎么样)先计算类别相似性函数:
然后计算决策界:
与上一个例子不同点仅在于灰色部分,实际上就是协方差矩阵变化的缘故。其意义还是没必要理解。
(2.sp)同(1.sp)的道理:
(3)当两个类别协方差矩阵是任意时,那么就需要具体情况具体分析了:
(4)一个简单的例子:
1.定义:参数估计问题,即在机器学习中,我们在设计模型时,如何调整模型的参数以符合我们的数据,从而得到一个较好的预测结果。而贝叶斯学习作用于参数估计,并不是说贝叶斯公式是我们的模型,而是用贝叶斯公式的理论,去调整我们的模型参数。
2.贝叶斯公式在参数估计中的参数:除去P(D)不需要关注后,剩下的部分其实就是贝叶斯公式的三个成员P(D|M)为似然概率分布,P(M)是先验概率分布,P(M|D)是后验概率分布。首先需要明确一点,M可以认为是模型,但最好还是称其为模型参数,就是我们调整的目标。而P(D|M)和P(M|D)才是我们的模型。
3.我们还是以一个简单的例子来讲解其中过程吧:
这是一个随机变量只有两种取值的问题,相当于抛硬币的问题,猜下一次出现正面的概率大,还是反面的概率大。(请不要yy:抛硬币不就50%:50%的概率嘛。所有的理论都必须实践之后才知道)
显然,我们可以先假定下次出现正面的概率为θ,那么反面的概率就是1-θ。这一步很简单,然后写成概率公式:
然后把上面的公式整合起来,就得到一个出名的分布:贝努利分布。当x=1时,函数等于θ,当x=0时,函数等于1-θ。非常的完美。
那么请问,这个分布有什么用呢?这个就是我们的关于这个问题的似然概率分布P(D|M),x是D的变量,M对应θ。统计D所有的数据x,即有:
似然概率分布得到后,接下来考虑的是先验概率分布P(M),在实际实验中,先验概率分布是人为设计(似然概率分布也是,毕竟两个都是模型的内容),至于设计怎样的先验概率分布,依据主要有两点:数据的特点,与似然概率分布成共轭函数。
对于抛硬币的问题,我们可以找到这样一个先验概率分布(怎么找到的我们就不管了,反正依据就是上面两条,前人也设计了许多先验分布)Beta先验分布:
其中α1与α2是超参数,用于调整整个分布的样子,黄色部分为对两超参的归一化调整,只要知道是一个数值就行(不懂超参数的可以将其类比成正态分布中的均值和方差,均值可以调节正态分布的中心位置,方差调整正态分布的高低胖瘦)。α1与α2对先验分布的影响如下展示:
最后,有了似然分布和先验分布,我们就可以通过贝叶斯公式计算出后验概率分布:
我们惊奇地发现,后验概率分布也是一个Beta分布,其实,这就是先验概率分布是似然概率分布的共轭函数的功劳。千万不要忘记我们的目标了,我们的目标是求出θ
在机器学习中,我们有两种方法来求θ,极大似然估计和最大后验估计。既然上面都算出后验概率分布了,我们就从最大后验估计开讲:
其实就是对后验概率分布求梯度=0,黄色部分是整个后验概率分布,绿色部分则是忽略贝叶斯公式分母部分,对二者求梯度=0,实际上等价。再回看我们的后验概率分布公式:
相关求梯度的过程就不详谈了,反正最后算出最优结果(黑框),代入我们数据,得:
绿色部分确定α1与α2都设为5,黄色部分计算出θ的最终结果。也就是说下次抛硬币的正面概率是19/33,反面就是14/33。(结束)
然后再说极大似然估计的过程,先说为什么用极大似然估计,这是因为是实验中,如果我们的似然概率分布太过复杂,是很难找到一个共轭的先验概率估计与他相乘的,如果找一个不是共轭的,最后计算出的后验概率分布求梯度=0也会很难。于是我们就不考虑先验概率了,直接对似然概率求最大就行了。写成公式如下:
对P(D|θ)先取对数,再求梯度=0,得到:
代入题目数据,得到具体数值:
于是,我们发现一个很离谱的事:我们从建模、设公式、计算一套流程下来,最后得到的概率竟然就是统计出来,正面出现了多少次,那么正面的概率就是多少,反面出现了多少次,反面的概率就是多少。不知道多少同学开始骂扑街了。虽然极大似然估计的结果确实是这样的,但整套过程也是拥有其数学根据的,是讲科学的过程,不然别人问你为什么统计出“正面出现了多少次,那么正面的概率就是多少”的依据是啥,你讲不出来,你再把这套理论说出来,嗯,很牛逼。
最后将ML(极大似然估计)和MAP(最大后验估计)的结果来比较:
那么哪个更合理呢?直接讲答案吧,MAP更合理,对比一下,MAP就是比ML多一个先验概率分布,而先验概率分布是人为设计的分布,可以粗浅地认为先验概率分布是人通过观察数据后,感觉到数据服从某种规则,从而设计的模型,所以MAP更合理。显然通过这道题的结果,也可以看出二者的优劣,ML结果就是统计数据的结果,存在太大的不确定性。
1.贝叶斯决策准则
2.贝叶斯分类器
3.贝叶斯学习与参数估计问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。