机器学习基础 (1). 极大似然估计、最大后验概率

看了很多次极大似然估计与最大后验概率估计的区别,还是会经常忘记,此处记录一下。

概述

  • 在说极大似然估计(Maximum Likelihood Estimate)与最大后验概率估计(Maximum A Posteriori estimation)之前,不得不说对于概率看法不同的两大派别: 频率学派与贝叶斯派。
  • ① 频率学派
      频率学派认为事物是确定的。他们直接为事物本身建模,在多次重复实验中结果会趋于一个稳定的值,这个值被认为是该事件的概率。
      频率学派认为模型参数是个定值,可以通过类似解方程的方式从实验结果中得到最大概率对应的参数。这就是频率学派使用的参数估计方法-极大似然估计(MLE)。
      这种方法往往在大数据量的情况下可以很好的还原模型的真实情况。当缺乏数据时MLE可能会产生严重的偏差,如抛一枚硬币10次,10次正面朝上,MLE认为抛硬币正面的概率 θ=1
  • ② 贝叶斯派
      贝叶斯派认为事物具有不确定性,人们对事件的概率先有一个预先的估计,然后通过获取的信息来不断调整之,最终找到这个事件最优的概率或概率分布
      贝叶斯派认为模型参数具有潜在分布,希望可以从数据中推测出来。对于数据的观测方式不同或者假设不同,那么推知的该参数也会因此而存在差异。这就是贝叶斯派视角下用来估计参数的常用方法-最大后验概率估计(MAP)。
      这种方法在先验假设比较靠谱的情况下效果显著,随着数据量的增加,先验假设对于模型参数的主导作用会逐渐削弱,真实的数据样例会大大占据有利地位。

   

1、条件概率

   条件概率是指 事件A 在另外一个 事件B 已经发生条件下的发生概率,条件概率表示为:P(A|B) ,读作"在B的条件下A的概率"。条件概率可通过下面公式计算:
P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B) = \dfrac{P(AB)}{P(B)} P(AB)=P(B)P(AB)
   条件概率只在 P(A)>0 时有定义。


2、先验概率、后验概率

   [1]先验概率(prior probability): 是指根据以往经验和分析得到的概率,它往往作为"由因求果"问题中的"因"出现的概率。
  [2] 后验概率(posterior probability ): 是指在得到“结果”的信息后重新修正的概率,是“执果寻因”问题中的"果"。先验概率与后验概率有不可分割的联系,后验概率的计算要以先验概率为基础。

例:男人占中国总人口的52%,女人人数占48%。

  • 根据上述信息,我们得到一个陌生人性别的概率分别为: P(X=male)=0.52; P(X=female)=0.48;
  • 这个概率是统计得到的,或者你自身依据经验(根据历史规律确定原因 )给出的,我们称其为先验概率
  • 我们得到信息中国成年男性平均身高170.6cm,女性:155.8cm。而某个陌生人的身高为180cm,判断其性别:
  • 因此我们猜测这个人很大可能是男性。这种得到“结果”的信息后重新修正的概率的概率分布即 后验概率

3、贝叶斯公式

   我们经常会需要在已知 P(B|A) 时计算 P(A|B),幸运的是,如果还知道P(A), 我们可以通过贝叶斯公式(Thomas Bayes)来实现这一目的,贝叶斯公式如下所示。
P ( A ∣ B ) = P ( B ∣ A ) ∗ P ( A ) P ( B ) P(A|B) = \dfrac{P(B|A)*P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)

  • 两个例子:

   例1:一座别墅在过去的 20 年里一共发生过 2 次被盗,别墅的主人有一条狗,狗平均每周晚上叫 3 次,在盗贼入侵时狗叫的概率被估计为 0.9,问题是:在狗叫的时候发生入侵的概率是多少?

   解: 我们假设 A事件为狗在晚上叫,B 为盗贼入侵,则以天为单位统计,
P ( A ) = 3 / 7 ; P ( B ) = 2 / ( 20 ∗ 365 ) = 2 / 7300 ; P ( A ∣ B ) = 0.9 ; \begin{aligned} &P(A) = 3/7;\\ &P(B) = 2/(20*365) = 2/7300;\\ &P(A|B) = 0.9; \end{aligned} P(A)=3/7;P(B)=2/(20365)=2/7300;P(AB)=0.9;    按照公式很容易得出结果:
P ( B ∣ A ) = 0.9 ∗ ( 2 / 7300 ) / ( 3 / 7 ) = 0.00058 P(B|A) = 0.9*(2/7300) / (3/7) = 0.00058 P(BA)=0.9(2/7300)/(3/7)=0.00058

   例2: 现分别有 A、B 两个容器,在容器 A 里分别有 7 个红球和 3 个白球,在容器 B 里有 1 个红球和 9 个白球,现已知从这两个容器里任意抽出了一个红球,问这个球来自容器 A 的概率是多少?

   解: 假设已经抽出红球为事件 B,选中容器 A 为事件 A,则有:
P ( B ) = 8 / 20 ; P ( A ) = 1 / 2 ; P ( B ∣ A ) = 7 / 10 ; \begin{aligned} &P(B) = 8/20;\\ &P(A) = 1/2;\\ &P(B|A) = 7/10; \end{aligned} P(B)=8/20;P(A)=1/2;P(BA)=7/10;    按照公式很容易得出结果:
P ( A ∣ B ) = ( 7 / 10 ) ∗ ( 1 / 2 ) / ( 8 / 20 ) = 0.875 P(A|B) = (7/10)*(1/2) / (8/20) = 0.875 P(AB)=(7/10)(1/2)/(8/20)=0.875


4、极大似然估计、最大后验概率估计

4.1 似然函数

   似然函数(Likelihood function ) 在教科书中,似然常常被用作“概率”的同义词。

   似然函数公式如下所示,其含义为给定参数θ后,变量X的概率。:

L ( θ ∣ x ) = P ( X = x ∣ θ ) L(θ|x) = P(X=x|θ) L(θx)=P(X=xθ)

   其中x表示某一个具体的数据,θ表示模型的参数。

  •   似然函数 与 概率函数的区别:
  •   如果概率θ是已知的,x是变量,这个函数叫做概率函数,它描述对于不同的样本点x,其出现概率是多少。
  •   如果x是已知的,θ是变量,这个函数叫做似然函数,它描述对于当前输出的结果x,该模型是什么样子的。

   例:
  投掷一枚硬币的实验,通常来说,正反面的概率都是0.5,投两次都是正面朝上(正面记为事件A)的概率是0.25。用条件概率表示:
P ( A A ∣ θ = 0.5 ) = 0.5 × 0.5 = 0.25 P(AA|θ=0.5) = 0.5×0.5 =0.25 P(AAθ=0.5)=0.5×0.5=0.25
  用似然函数表示(当先验概率正面的概率为θ=0.5时):
L ( θ = 0.5 ∣ A A ) = 0.5 × 0.5 = 0.25 L(θ=0.5|AA) = 0.5×0.5 =0.25 L(θ=0.5AA)=0.5×0.5=0.25
  当我们考虑θ=0.7时:
L ( θ = 0.5 ∣ A A ) = 0.7 × 0.7 = 0.49 L(θ=0.5|AA) = 0.7×0.7 =0.49 L(θ=0.5AA)=0.7×0.7=0.49
  可以看出,对同一个似然函数,如果存在一个参数值,使得它的函数值达到最大的话,那么这个值就是最为“合理”的参数值。

4.2 极大似然估计

   极大似然估计 (Maximum Likelihood Estimate,MLE ) 根据似然估计函数以及样本结果。找出模型概率最大时的 θ 取值,即: a r g m a x θ P ( x ∣ θ ) argmax_θ P(x|θ) argmaxθP(xθ)

  “一枚正反对称的硬币上抛十次”这种事件,我们可以问硬币落地时十次都是正面向上的“概率”是多少;而对于“一枚硬币上抛十次”,我们则可以问,这枚硬币正反面对称的“似然”程度是多少。

  假设有一个造币厂生产某种硬币,现在我们拿到了一枚这种硬币,想试试这硬币是不是均匀的。即想知道抛这枚硬币,正反面出现的概率(记为θ)各是多少?

   我们拿这枚硬币抛了10次,得到的数据是:反正正正正反正正正反。我们想求的正面的概率θ是模型参数,而抛硬币模型我们可以假设是二项分布。

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

   这是个只关于θ的函数。而最大似然估计,顾名思义,就是要最大化这个函数。我们可以画出f(θ)的图像:
图3-1
   可以看出,在θ=0.7时,似然函数取得最大值。这样,我们已经完成了对θ的最大似然估计,最大似然估计认为正面向上的概率是0.7。

4.3 最大后验概率

   最大后验概率 (maximum a posteriori probability, MAP ) 是贝叶斯派模型参数估计的常用方法。

   最大后验概率 与 极大似然估计的区别:

  • 最大似然估计是求参数θ,使似然函数P(x0|θ)值最大。
  • 最大后验概率估计则是求参数θ,使P(θ|x0)值最大。
  • 顾名思义:最大后验概率就是最大化在给定数据样本的情况下模型参数的后验概率
  • MAP认为,θ是一个随机变量,其先验概率密度函数是已知的,为P(θ),所以其目标为:

P ( θ ∣ x 0 ) = a r g m a x θ P ( x 0 ∣ θ ) P ( θ ) P ( x 0 ) = a r g m a x θ P ( x 0 ∣ θ ) P ( θ ) P(θ|x0) = argmax_θ \dfrac{P(x0|θ)P(θ)}{P(x0)} = argmax_θ P(x0|θ)P(θ) P(θx0)=argmaxθP(x0)P(x0θ)P(θ)=argmaxθP(x0θ)P(θ)

  1. 上式使用了贝叶斯公式。由于实验结果已知,故上式分母P(x0)为定值,所以在优化过程中不起作用,故去除。
  2. 对于上述公式,其中 P(x0|θ) 就是之前讲的似然函数。P(θ)是先验概率,是指在没有任何实验数据的时候对参数θ的经验判断,对于一个正规的硬币,正面的概率为0.5的可能性最大。

  • 在这里举个掷硬币的例子: 抛一枚硬币10次,有10次正面朝上,0次反面朝上。问正面朝上的概率 θ
       在频率学派来看,利用极大似然估计可以得到 θ: 10 / 10 = 1.0。显然当缺乏数据时MLE可能会产生严重的偏差。
       如果我们利用极大后验概率估计来看这件事,先验认为大概率下这个硬币是均匀的 (例如P(θ)为均值0.5,方差0.1的高斯函数),那么P(θ|x0) 是一个分布,最大值会介于0.5~1之间,而不是武断的给出θ= 1

  • 均值0.5,方差0.1的高斯函数概率密度分布图如下:
    在这里插入图片描述

  • P(x0|θ)P(θ)=θ^7×(1-θ)^3×N(0.5,0.1)(θ)的函数图像为:

在这里插入图片描述

  • 可以看出,此时函数在θ=0.558时函数取得了最大值。θ取值已向左偏移,不再是0.7。实际上,即,用最大后验概率估计,得到θ=0.558
  • 如果事实上θ的真值在0.7,那么当我们增大样本量,做了1000次实验,其中700次都是正面向上,这时似然函数的图像为:

在这里插入图片描述

  • 若此时,我们仍然认为θ的先验概率P(θ)为均值0.5,方差0.1的高斯函数,那么,P(x0|θ)P(θ)的函数图像为:

在这里插入图片描述

  • θ=69587处,P(x0|θ)P(θ)取得最大值,即最大后验概率在θ=69587处取得最大值,可以看出,随着数据量的增加,参数分布会更倾向于向数据靠拢,先验假设的影响会越来越小。
  • 在MAP中我们应注意的是: MAPMLE最大区别是MAP中加入了模型参数本身的概率分布,或者说。MLE中认为模型参数本身的概率的是均匀的,即该概率为一个固定值。
  • 最后再贴上MAPMLE的函数。
    M L E = a r g m a x θ P ( x 0 ∣ θ ) M A P = a r g m a x θ P ( x 0 ∣ θ ) P ( θ ) \begin{aligned} &MLE =argmax_θ P(x0|θ)\\ &MAP = argmax_θ P(x0|θ)P(θ) \end{aligned} MLE=argmaxθP(x0θ)MAP=argmaxθP(x0θ)P(θ)

参考

[1] https://zhuanlan.zhihu.com/p/32480810
[2] https://blog.csdn.net/u011508640/article/details/72815981
[3] https://zhuanlan.zhihu.com/p/40024110
[4] https://baike.baidu.com/item/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%85%AC%E5%BC%8F/9683982?fr=aladdin

猜你喜欢

转载自blog.csdn.net/u013271656/article/details/112893600