​ 从事AI行业有一段时间了,对这一块的内容也了解了不少,但是总感觉是一些零散的知识点,没有把内容全部串起来。因此重新把行业里面一些较为经典的书再重新看一遍,接着这个机会把所有的知识点串一串。先从周志华老师的《机器学习》这本书开始。
因为这本书的阅读门槛对于一般程序员来说还是有点高的,因此,计划在自己看书的过程中,把自己的理解用相对通俗易懂的语言来写一下,对自己也是一个提高的过程,希望能以这种以教为学的方式来提高自己。
水平有限,有理解不对的地方还请指正。

贝叶斯公式是机器学习里面最重要的公式之一。这里面理解起来有点点绕,写这篇文章希望能用通俗易懂的语言来描述这个过程,需要严谨的证明过程的朋友可以去翻概率论的教材。

​ 贝叶斯公式是利用观测数据及先验概率来计算后验概率的公式,先祭出公式:
P(Y∣X)=P(X∣Y)P(Y)P(X) P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)} P(Y∣X)=P(X)P(X∣Y)P(Y)​
​ 我们来拆分一下这个公式中的几个概念,尽量用通俗易懂的语言来描述:

  1. X和Y都是随机变量,随机变量用于描述某个随机事件,比如一个硬币掉地上那一面朝上就可以用一个随机变量X来表示。

  2. P(x)为随机变量x的概率。

  3. P(x|y)和 Pr(y|x)为条件概率。条件概率的意思是说在某个事件已经发生的情况下,另一事件发生的概率。那么P(x|y)则表示随机事件y已经发生的情况下,x发生的概率。

  4. 这里面还有两个概念:先验概率与后验概率。

    ​ 先验概率是指“从因推果”,我自己的理解是某个随机事件发生的概率。比如地铁晚点(事件X)的概率为P(X),天气暴雨(事件Y)的概率为P(Y)。

    ​ 后验概率是指“从果推因”,在后验概率里都会有两个事件:“因” & “果”。所以后验概率都是以条件概率的形式出现。比如地铁晚点( 因 )和天气原因( 因 )都会导致迟到( 果 ),两者导致迟到的概率是不一样的。那么已知某人迟到了,计算是地铁的晚点的原因还是天气的原因导致就是计算后验概率。

​ 这里我引入一道题目来进一步解释这个公式。

​ 口袋里装有两枚硬币。第一枚硬币是公平的,所以正面向上的概率是0.5。第二枚硬币是不公平的,正面向上的概率是0.8,。将手伸入口袋,随机选取一枚硬币。选取任何一枚硬币的先验概率是相同的。投掷所选硬币观察到正面向上,利用贝叶斯公式计算选取的硬币是第二枚硬币的后验概率?

​ 我们看梳理一下,看看怎么利用这个贝叶斯公式来进行计算:

  1. 确定事件和随机变量。

    设事件X = “取得是第N枚硬币”,根据题目,选取任意一枚硬币的概率是相同的,那么第一枚第二枚的概率都是0.5。

    那么随机变量Y的两种取值是:
    P(X)={X1=1,P(X1)=0.5X2=2,P(X2)=0.5 P(X) = \begin{cases} X_1 = 1, P(X_1) = 0.5 \\ X_2 = 2, P(X_2) = 0.5 \end{cases} P(X)={X1​=1,P(X1​)=0.5X2​=2,P(X2​)=0.5​

    设事件Y = “硬币的某一面朝上”,改事件有两种情况:正面朝上与反面朝上。因为题目中提到两枚硬币的公平性是不一样的,所以这个事件Y的概率就依赖于事件X的概率,需要使用到全概率公式进行计算P(Y),这个公式我们等下在列。先设:
    P(Y)={Y1=“正面朝上”Y2=“反面朝上” P(Y) = \begin{cases} Y_1 = “正面朝上” \\ Y_2 = “反面朝上” \end{cases} P(Y)={Y1​=“正面朝上”Y2​=“反面朝上”​

    那么我们的问题是:已知正面朝上,需要计算第二枚硬币的概率。那么我们可以得出,我们需要计算的后验概率为:
    P(X∣Y=Y1) P(X|Y=Y_1) P(X∣Y=Y1​)

  2. 利用贝叶斯公式我们可以得知:
    P(X=X2∣Y=Y1)=P(Y=Y1∣X=X2)P(X=X2)P(Y1) P(X=X_2|Y=Y_1) = \frac{P(Y = Y_1|X = X_2)P(X = X_2)}{P(Y_1)} P(X=X2​∣Y=Y1​)=P(Y1​)P(Y=Y1​∣X=X2​)P(X=X2​)​
    我们来一项一项计算等号右边的值。

  3. P(X)是指取得是第N枚硬币的概率,这个很容易计算得出P(X) = 0.5。

  4. P(Y = Y_1|X = X_2)则表示第二枚硬币向上的概率,题目中提到了是0.8。

  5. 麻烦一点的在于P(Y)的计算,这里需要用到全概率公式:
    P(B)=∑i=1nP(Ai)P(B∣Ai) P(B) = \sum_{i=1}^{n} P(A_i)P(B|A_i) P(B)=i=1∑n​P(Ai​)P(B∣Ai​)
    我的理解是,两个相关联随机变量中,如果需要计算某个随机变量的先验概率,就是等于另外一个随机变量的先验概率与条件概率的乘积之和。拿之前的迟到的事情来举个栗子的话就是:假设下中雨的概率为0.1,下中雨导致迟到的概率为0.2;下大雨的概率为0.3,下大雨导致迟到的概率为0.4。那么我们可以计算迟到的概率就是:
    P(B)=P(A1)(0.1)∗P(B∣A1)(0.2)+P(A2)(0.3)∗P(B∣A2)(0.4)=0.14 P(B) = P(A_1)(0.1) * P(B|A_1)(0.2) + P(A_2)(0.3) * P(B|A_2)(0.4) = 0.14 P(B)=P(A1​)(0.1)∗P(B∣A1​)(0.2)+P(A2​)(0.3)∗P(B∣A2​)(0.4)=0.14
    换到这个题目中来看的话,P(Y)表示正面向上的概率,这个概率需要考虑第一枚硬币向上的概率和第二枚硬币向上的概率,那么可以通过公式:
    P(Y1)=P(X1)∗P(Y1∣X1)+P(X2)P(Y1∣X2)=0.5∗0.5+0.5∗0.8=0.65 P(Y_1) = P(X_1) * P(Y_1|X_1) + P(X_2)P(Y_1|X_2) = 0.5*0.5+0.5*0.8 = 0.65 P(Y1​)=P(X1​)∗P(Y1​∣X1​)+P(X2​)P(Y1​∣X2​)=0.5∗0.5+0.5∗0.8=0.65

  6. 几个值都算出来了,最终我们可以得到:
    P(X=X2∣Y=Y1)=0.8∗0.50.65=0.61 P(X=X_2|Y=Y_1) = \frac {0.8 * 0.5}{0.65} = 0.61 P(X=X2​∣Y=Y1​)=0.650.8∗0.5​=0.61

对于全概率公式,这里还有一个变形,上述提到的是离散型的随机变量,如果随机变量是连续的,比如描述温度变化的随机变量,那么全概率公式会变化为(求积分):
P(B)=∫12P(Ai)P(B∣Ai)dx P(B) = \int_{1}^{2}{P(A_i)P(B|A_i)}dx P(B)=∫12​P(Ai​)P(B∣Ai​)dx
有兴趣的朋友可以去了解一下。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐