概率、统计、最大似然估计、最大后验估计、贝叶斯定理、朴素贝叶斯、贝叶斯网络

概率和统计是一个东西吗?

概率(probabilty)和统计(statistics)看似两个相近的概念,其实研究的问题刚好相反。

  • 概率研究的问题是,已知一个模型和参数,怎么去预测这个模型产生的结果的特性(例如均值,方差,协方差等等)。
    举个例子,我想研究怎么养猪(模型是猪),我选好了想养的品种、喂养方式、猪棚的设计等等(选择参数),我想知道我养出来的猪大概能有多肥,肉质怎么样(预测结果)。

  • 统计是,有一堆数据,要利用这堆数据去预测模型和参数。
    仍以猪为例。现在我买到了一堆肉,通过观察和判断,我确定这是猪肉(这就确定了模型。在实际研究中,也是通过观察数据推测模型是/像高斯分布的、指数分布的、拉普拉斯分布的等等),然后,可以进一步研究,判定这猪的品种、这是圈养猪还是跑山猪还是网易猪,等等(推测模型参数)。

一句话总结:概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。

显然,本文解释的MLE(最大似然估计)和MAP(最大后验估计)都是统计领域的问题。它们都是用来推测参数的方法(不是推测模型,模型必须预先指定或假设好)。
为什么会存在着两种不同方法呢? 这需要理解贝叶斯思想。我们来看看贝叶斯公式。

概率函数与似然函数

似然(likelihood)这个词其实和概率(probability)是差不多的意思,Colins字典这么解释:The likelihood of something happening is how likely it is to happen. 你把likelihood换成probability,这解释也读得通。但是在统计里面,似然函数和概率函数却是两个不同的概念(其实也很相近就是了)。

对于这个函数:

P ( x θ ) P(x|θ) ----公式(1)
输入有两个: x x 表示某一个具体的数据; θ θ 表示模型的参数。

  • 概率函数:对于公式1,如果 θ θ 是已知确定的, x x 是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点x,其出现概率是多少。

  • 似然函数:对于公式1,如果 x x 是已知确定的, θ θ 是变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现x这个样本点的概率是多少。

这有点像“一菜两吃”的意思。其实这样的形式我们以前也不是没遇到过。例如, f ( x , y ) = x y f(x,y)=x^y , 即 x x y y 次方。如果x是已知确定的(例如x=2),这就是f(y)=2^y, 这是指数函数。
如果y是已知确定的(例如y=2),这就是f(x)=x^2,这是二次函数。同一个数学形式,从不同的变量角度观察,可以有不同的名字。

最大似然估计(MLE)

假设有一个造币厂生产某种硬币,现在我们拿到了一枚这种硬币,想试试这硬币是不是均匀的。即想知道抛这枚硬币,正面出现的概率(记为θ)各是多少?
这是一个统计问题,回想一下,解决统计问题需要什么? 数据!

于是我们拿这枚硬币抛了10次,得到的数据( x 0 x_0 )是:反正正正正反正正正反。

  • 模型:假设是二项分布;
  • 参数:我们想求的正面概率θ是模型参数。

那么,出现实验结果 x 0 x_0 (即反正正正正反正正正反)的似然函数是多少呢?
f ( x 0 θ ) = ( 1 θ ) × θ × θ × θ × θ × ( 1 θ ) × θ × θ × θ × ( 1 θ ) = θ 7 ( 1 θ ) 3 = f ( θ ) f(x_0|θ)=(1−θ)×θ×θ×θ×θ×(1−θ)×θ×θ×θ×(1−θ)=θ^7(1−θ)^3=f(θ)

注意,这是个只关于θ的函数。
最大似然估计,顾名思义,就是要最大化这个似然函数。
我们可以画出f(θ)的图像:
在这里插入图片描述
可以看出,在θ=0.7时,似然函数取得最大值。

这样,我们已经完成了对θ的最大似然估计。即,抛10次硬币,发现7次硬币正面向上,最大似然估计认为正面向上的概率是0.7。(ummm…这非常直观合理,对吧?)

  • 贝叶斯思想:
    且慢,一些人可能会说,硬币一般都是均匀的啊! 就算你做实验发现结果是“反正正正正反正正正反”,我也不信θ=0.7。
    这里就包含了贝叶斯学派的思想了——要考虑先验概率。 为此,引入了最大后验概率估计。

最大后验概率估计

  • 最大似然估计是求参数θ, 使似然函数 P ( x 0 θ ) P(x_0|θ) 最大。
  • 最大后验概率估计则是想求θ使 P ( x 0 θ ) P ( θ ) P(x_0|θ)P(θ) 最大。求得的θ不单单让似然函数大,θ自己出现的先验概率也得大。 (这有点像正则化里加惩罚项的思想,不过正则化里是利用加法,而MAP里是利用乘法)
  • MAP其实是在最大化 P ( θ x 0 ) = P ( x 0 θ ) P ( θ ) P ( x 0 ) P(θ|x0)=\frac{P(x_0|θ)P(θ)}{P(x_0)} , 不过因为 x 0 x_0 是确定的(即投出的“反正正正正反正正正反”), P ( x 0 ) P(x_0) 是一个已知值,所以去掉了分母 P ( x 0 ) P(x_0) .
    P ( x 0 ) P(x_0) 的求法:
(假设“投10次硬币”是一次实验,实验做了1000次,“反正正正正反正正正反”出现了n次,
则P(x0)=n/1000P(x0)=n/1000。总之,这是一个可以由数据集得到的值)。
  • 最大化 P ( θ x 0 ) P(θ|x_0) 的意义: x 0 x_0 已经出现了,要求θ取什么值使 P ( θ x 0 ) P(θ|x_0) 最大。顺带一提, P ( θ x 0 ) P(θ|x_0) 即后验概率,这就是“最大后验概率估计”名字的由来。

最大后验估计的例子

对于投硬币的例子来看,我们认为(”先验地知道“)θ取0.5的概率很大,取其他值的概率小一些。我们用一个高斯分布来具体描述我们掌握的这个先验知识,例如假设P(θ)为均值0.5,方差0.1的高斯函数,如下图:
在这里插入图片描述
θ的先验概率:高斯分布

θ的先验概率P(θ):高斯分布

对于投币10次的硬币实验,实验结果 x 0 x_0 (即反正正正正反正正正反)的似然函数是:
f ( x 0 θ ) = ( 1 θ ) × θ × θ × θ × θ × ( 1 θ ) × θ × θ × θ × ( 1 θ ) = θ 7 ( 1 θ ) 3 f(x_0|θ)=(1−θ)×θ×θ×θ×θ×(1−θ)×θ×θ×θ×(1−θ)=θ^7(1−θ)^3
P ( x 0 θ ) P ( θ ) P(x_0|θ)P(θ) 的函数图像为:
在这里插入图片描述

P(x0|θ)P(θ)的图像

注意,此时函数取最大值时,θ取值已向左偏移,不再是0.7。实际上,在θ=0.558时函数取得了最大值。即,用最大后验概率估计,得到θ=0.558

最后,那要怎样才能说服一个贝叶斯派相信θ=0.7呢?你得多做点实验。实验做得多,似然函数P(x0|θ)的重要性就增加,而先验概率P(θ)的影响就变小了
如果做了1000次实验,其中700次都是正面向上,这时似然函数为: f ( x 0 θ ) = = θ 700 ( 1 θ ) 300 f(x_0|θ)==θ^{700}(1−θ)^{300} ,而P(θ)还是那个高斯函数。此时,似然函数图像如下:
在这里插入图片描述
如果仍然假设P(θ)为均值0.5,方差0.1的高斯函数,P(x0|θ)P(θ)的函数图像为:
在这里插入图片描述
在θ=0.696处,P(x0|θ)P(θ)取得最大值。
这样,就算一个考虑了先验概率的贝叶斯派,也不得不承认得把θ估计在0.7附近了。

贝叶斯派观点 VS 频率派观点

先简单总结下频率派与贝叶斯派各自不同的思考方式:

  • 频率派把需要推断的参数θ看做是固定的未知常数,即概率虽然是未知的,但最起码是确定的一个值,同时,样本X 是随机的,所以频率派重点研究样本空间,大部分的概率计算都是针对样本X 的分布;
    最大似然估计 P ( x 0 θ ) P(x_0|\theta) 本质上就是频率派思维,认为模型参数θ虽然未知但是固定的,通过最大似然来估计θ。
  • 贝叶斯派的观点则截然相反,他们认为参数是随机变量,而样本X 是固定的,由于样本是固定的,所以他们重点研究的是参数的分布。
    最大后验估计本质上是贝叶斯派思维。贝叶斯派既然把θ看做是一个随机变量,所以要计算P(θ|x0)的分布,便得事先知道θ的无条件分布,即在有样本之前(或观察到X之前),θ有着怎样的分布。

贝叶斯定理

在引出贝叶斯定理之前,先学习几个定义:

  • 条件概率(又称后验概率)就是事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B条件下A的概率”。其定义为:
    P ( A B ) = P ( A B ) P ( B ) P(A|B) =\frac{P(A\cap B)}{P(B)}

  • 联合概率表示两个事件共同发生的概率。A与B的联合概率表示为 P ( A B ) P(A\cap B)

  • 边缘概率(又称先验概率)是某个事件发生的概率。
    通过联合概率求边缘概率:在联合概率中,把最终结果中那些不需要的事件通过合并成它们的全概率,而消去它们(对离散随机变量用求和得全概率,对连续随机变量用积分得全概率),这称为边缘化(marginalization),比如A的边缘概率表示为P(A),B的边缘概率表示为P(B)。

接着,考虑一个问题:P(A|B)是在B发生的情况下A发生的可能性。

  • 首先,事件B发生之前,我们对事件A的发生有一个基本的概率判断,称为A的先验概率,用P(A)表示;
  • 其次,事件B发生之后,我们对事件A的发生概率重新评估,称为A的后验概率,用P(A|B)表示;
  • 类似的,事件A发生之前,我们对事件B的发生有一个基本的概率判断,称为B的先验概率,用P(B)表示;
  • 同样,事件A发生之后,我们对事件B的发生概率重新评估,称为B的后验概率,用P(B|A)表示。

贝叶斯定理便是基于下述贝叶斯公式:
P ( A B ) = P ( B A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A)P(A)}{P(B)}
贝叶斯公式可以直接根据条件概率的定义直接推出。

朴素贝叶斯分类器

带你彻彻底底搞懂朴素贝叶斯公式
一. 朴素贝叶斯
朴素贝叶斯用于分类,是一种分类器,根据观察到的特征来判别类型。
朴素贝叶斯中的朴素一词的来源就是假设各特征之间相互独立(注意:是特征之间独立,不是特征与类别之间独立,如果是后者那么通过特征来推断类别就没有意义了)。这一假设使得朴素贝叶斯算法变得简单,但有时会牺牲一定的分类准确率。

  • 贝叶斯公式:
    P ( A B ) = P ( B A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A)P(A)}{P(B)}

  • 在分类任务中,我们的目的是要根据观察到的特征,来实现分类任务,即求出p(类别|特征)。
    将贝叶斯公式应用到分类任务:
    P ( ) = P ( ) P ( ) P ( ) P(类别|特征) =\frac{P(特征|类别)P(类别)}{P(特征)}

  • 朴素贝叶斯:通常的分类任务中,特征有许多个,如果假设各个特征之间相互独立,那么就变成了朴素贝叶斯:
    其中, c k c_k 表示第k类, x ( j ) x^{(j)} 表示第j个特征
    在这里插入图片描述

  • 朴素贝叶斯公式不求分母,只求分子,最后求各个分子之间的相对比值,就可得出各个类别的概率。

  • 什么情况下适用朴素贝叶斯?
    当特征(X)有多个,又可以假设各个特征之间条件独立。因为特征(X)有多个,所以P(类别 | 多个特征的组合)不好求解,而P(单个特征 | 类别)是可以根据观察结果计算出来的,P(多个特征组合|类别) = P(特征0|类别)xP(特征1|类别)…xP(特征n|类别)

  • 朴素贝叶斯的优缺点
    优点:
    (1) 算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化即可!)
    (2)分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)
    缺点:
    朴素贝叶斯假设属性之间相互独立,这种假设在实际过程中往往是不成立的。在属性之间相关性越大,分类误差也就越大。

朴素贝叶斯分类器实例

首先,给出数据如下:
在这里插入图片描述
现在给我们的问题是,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?

这是典型的二分类问题,按照朴素贝叶斯的求解,转换为求
1)P(嫁|不帅、性格不好、矮、不上进)的概率
2)P(不嫁|不帅、性格不好、矮、不上进)的概率。

这里我们根据贝特斯公式:
在这里插入图片描述
在根据朴素贝叶斯假设(特征之间独立):
在这里插入图片描述
我们的目标是求解为不同的类别,贝叶斯公式的分母总是相同的。所以,只求解分子即可。

  • 第一步,求各个特征的概率值和条件概率值的方法:从观察数据中统计
    对原始数据表进行统计可得:
    P(嫁)=1/2、P(不帅|嫁)=1/2、P(性格不好|嫁)=1/6、P(矮|嫁)=1/6、P(不上进|嫁)=1/6。
    P(不嫁)=1/2、P(不帅|不嫁)=1/3、P(性格不好|不嫁)=1/2、P(矮|不嫁)=1、P(不上进|不嫁)=2/3

  • 第二步,求朴素贝叶斯公式的分子
    于是,对于类别“嫁”的贝叶斯分子为:P(嫁)P(不帅|嫁)P(性格不好|嫁)P(矮|嫁)P(不上进|嫁)=1/2 * 1/2 * 1/6 * 1/6 * 1/6=1/864
    对于类别“不嫁”的贝叶斯分子为:P(不嫁)P(不帅|不嫁)P(性格不好|不嫁)P(矮|不嫁)P(不上进|不嫁)=1/2 * 1/3 * 1/2 * 1* 2/3=1/18。

  • 第三步,求分子之间的相对比值,得出各个类别的概率。
    朴素贝叶斯公式不求分母,只求分子,最后求各个分子之间的相对比值,就可得出各个类别的概率。

P(嫁|不帅、性格不好、矮、不上进)=(1/864) / (1/864+1/18)=1/49=2.04%
P(不嫁|不帅、性格不好、矮、不上进)=(1/18) / (1/864+1/18)=48/49=97.96%

贝叶斯网络

贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical model),是一种概率图模型,于1985年由Judea Pearl首先提出。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。
在这里插入图片描述
贝叶斯网络的有向无环图中的节点表示随机变量{X1,X2,…,Xn}

它们可以是可观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用箭头来连接。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。

例如,假设节点E直接影响到节点H,即E→H,则用从E指向H的箭头建立结点E到结点H的有向弧(E,H),权值(即连接强度)用条件概率P(H|E)来表示,如下图所示:
在这里插入图片描述
简言之,把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。其主要用来描述随机变量之间的条件依赖,用圈表示随机变量(random variables),用箭头表示条件依赖(conditional dependencies)。
此外,对于任意的随机变量,其联合概率可由各自的局部条件概率分布相乘而得出:
P ( x 1 , . . . x k ) = P ( x k x 1 . . . x k 1 ) . . . P ( x 2 x 1 ) P ( x 1 ) P(x_1,...x_k) = P(x_k|x_1...x_{k-1})...P(x_2|x_1)P(x_1)

贝叶斯网络定义: 令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有向连接线段的集合,且令X = (Xi)i ∈ I为有向无环图中的某一节点i所代表的随机变量,若节点X的联合概率可以表示成:
在这里插入图片描述
则称X为相对于有向无环图G 的贝叶斯网络,其中,pa(i)表示节点i之“因”,或称pa(i)是i的parents(父母)。

此外,对于任意的随机变量,其联合概率可由各自的局部条件概率分布相乘而得出:
在这里插入图片描述
如下图所示,便是一个简单的贝叶斯网络:
在这里插入图片描述
有p(a,b,c)=p(c|a,b)p(b|a)p(a)

贝叶斯网络的结构形式

  • 形式一: head-to-head
    在这里插入图片描述
    依上图,所以有:P(a,b,c) = P(a)P(b)P(c|a,b)成立,即在c未知的条件下,a、b被阻断(blocked),是独立的,称之为head-to-head条件独立。
  • 形式二: tail-to -tail
    在这里插入图片描述
    考虑c未知,跟c已知这两种情况:

在c未知的时候,有:P(a,b,c)=P©P(a|c)P(b|c),此时,没法得出P(a,b) = P(a)P(b),即c未知时,a、b不独立。
在c已知的时候(c已知时的条件概率),有:P(a,b|c)=P(a,b,c)/P©,然后将P(a,b,c)=P©P(a|c)P(b|c)带入式子中,得到:P(a,b|c)=P(a,b,c) /P( c) = P( c)P(a|c)P(b|c) / P( c) = P(a|c)*P(b|c),即c已知时,a、b独立。

  • 形式三:head-to-tail
    在这里插入图片描述
    还是分c未知跟c已知这两种情况:

c未知时,有:P(a,b,c)=P(a)P(c|a)P(b|c),但无法推出P(a,b) = P(a)P(b),即c未知时,a、b不独立。

c已知时,有: P ( a , b c ) = P ( a , b , c ) / P ( c ) P(a,b|c)=P(a,b,c)/P(c) ,且根据 P ( a , c ) = P ( a ) P ( c a ) = P ( c ) P ( a c ) P(a,c) = P(a)P(c|a) = P(c)P(a|c) ,可化简得到:
P ( a , b c ) = P ( a , b , c ) / P ( c ) = P ( a ) P ( c a ) P ( b c ) / P ( c ) = P ( a c ) P ( b c ) P(a,b|c) = P(a,b,c)/P(c)= P(a)*P(c|a)*P(b|c)/P(c) = P(a|c)*P(b|c)
所以,在c给定的条件下,a,b被阻断(blocked),是独立的,称之为head-to-tail条件独立。

这个head-to-tail其实就是一个链式网络,如下图所示:
在这里插入图片描述
根据之前对head-to-tail的讲解,我们已经知道,在xi给定的条件下,xi+1的分布和x1,x2…xi-1条件独立。意味着啥呢?意味着:xi+1的分布状态只和xi有关,和其他变量条件独立。通俗点说,当前状态只跟上一状态有关,跟上上或上上之前的状态无关。这种顺次演变的随机过程,就叫做马尔科夫链(Markov chain)。

因子图

wikipedia上是这样定义因子图的:将一个具有多变量的全局函数因子分解,得到几个局部函数的乘积,以此为基础得到的一个双向图叫做因子图(Factor Graph)。

通俗来讲,所谓因子图就是对函数进行因子分解得到的一种概率图。一般内含两种节点:变量节点和函数节点。我们知道,一个全局函数通过因式分解能够分解为多个局部函数的乘积,这些局部函数和对应的变量关系就体现在因子图上。

举个例子,现在有一个全局函数,其因式分解方程为:
在这里插入图片描述
其中fA,fB,fC,fD,fE为各函数,表示变量之间的关系,可以是条件概率也可以是其他关系。其对应的因子图为:
在这里插入图片描述

在这里插入图片描述
在概率图中,求某个变量的边缘分布是常见的问题。这问题有很多求解方法,其中之一就是把贝叶斯网络或马尔科夫随机场转换成因子图,然后用sum-product算法求解。换言之,基于因子图可以用sum-product 算法高效的求各个变量的边缘分布。

从贝叶斯网络来观察朴素贝叶斯

朴素贝叶斯可以看做是贝叶斯网络的特殊情况:即该网络中无边,各个节点都是独立的

朴素贝叶斯朴素在哪里呢? —— 两个假设:

  • 一个特征出现的概率与其他特征(条件)独立;
  • 每个特征同等重要。
发布了180 篇原创文章 · 获赞 309 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/xys430381_1/article/details/103937412
今日推荐