生成式模型(零):条件概率

作者: tgbaggio | 来源:发表于2018-09-22 21:06 被阅读11次

    一、生成式模型

    这个系列将讨论人工智能领域非常重要、也十分被看好的一类模型:生成式模型(generative model)。因为这类模型不但能根据特征预测结果,还能“理解”数据是如何产生的,并以此为基础“创造”数据,这才是“真正意义上”的人工智能。而且正如费曼[1]所说的“What I cannot create, I do not understand(我不能创造的东西,我就不了解)”,生成式模型在某种意义上是真正理解了数据。

    生成式模型会大量用到概率这个数学工具,特别是条件概率和贝叶斯定理。这篇文章将主要讨论这些数学知识。

    二、概率:量化随机

    概率是量化事物随机性或者可能性的数学工具,在很多领域都有广泛的应用。但遗憾的是,概率或者随机本身是数学里人类理解最差的分支。在通常情况下,可以将概率从直观上理解为事件发生的比例。如图1所示,向图中的方形框随机投掷小球,那么小球落入圆圈的概率就等于圆圈的面积除以方形框的面积。

    图1

    概率对数据科学尤其重要,举两个常见的例子:在搭建模型时,带有一些随机性的模型和算法往往预测效果会好于完全确定性的模型和算法;在异常检测时,理解概率能帮助我们区分真正的异常和正常情况下的随机扰动。
    本节将着重介绍数据科学中常用到的概率知识,帮助读者在之后的章节里更好地掌握与概率相关的模型。

    三、定义概率:事件和概率空间

    我们首先从掷骰子这个常见的例子中引出概率的定义。假设我们连续随机地掷两次骰子,并计算两次所得点数的和。记第一次掷骰子得到的点数为X_1,第二次的点数为X_2,两次点数之和为XX = X_1 + X_2。容易得到可能的取值为2~12。将XX = i记为事件E_i。但其实上面列举的事件还可以划分为更加细小的随机样本,比如XX = 3对应的事件E_3可以分解为两个事件,一是第一次点数是1,第二次点数是2,记为(1,2);二是第一次点数是2,第二次点数是1,记为(2,1)。整个过程如图2所示。将事件E_i发生的概率记为P(E_i),则

    P(E_3) = P((1, 2) \cup (2, 1)) = P((1, 2)) + P((2, 1)) = 1 / 18 \tag{1}

    对于其他结果也类似地定义它们发生的概率。

    图2

    将上面例子中的方法推广到一般情况,给出概率的定义[2]

    将所有不能再分的随机结果,记为w,放在一起组成一个可数的非空集合,这个集合就叫作样本空间(sample space),记为S。样本空间里的子集被称为事件。而概率是一个定义在样本空间上的实数函数,记为P,它满足下面两个条件:

    • P(w) >= 0,对于所有的w都成立
    • \sum_w P(w) = 1

    对于一个事件E,对应的概率为P(E) = \sum_{w \in E} P(w)。一个样本空间加上在其基础上定义的概率就成为一个概率空间。根据概率的定义,可以得到如下的公式,其中A, B均为随机事件,而A^c表示事件A的补集。

    P(A^c) = 1 - P(A) \\ P(A \cup B) = P(A) + P(B) - P(A \cap B) \tag{2}

    四、条件概率:信息的价值

    上面讨论了单个事件和多个事件发生一个的概率。现在将讨论两个或多个事件同时发生的概率。假设事件AB是两个不同的事件,它们俩同时发生的概率为P(A \cap B)。这个概率与两个事件单独发生的概率有什么联系吗?

    为了解答这个问题,我们定义随机事件的条件概率如公式(3)所示。其中P(A | B)表示在事件B发生的情况下,事件A发生的可能性,称为条件概率。P(B | A)的含义类似。

    P(A | B) = \frac{P(A \cap B)}{P(B)} \\ P(B | A) = \frac{P(A \cap B)}{P(A)} \tag{3}

    将公式(3)中的两个条件概率结合起来,就可以得到所谓的贝叶斯定理:

    P(B | A) = \frac{P(A | B)P(B)}{P(A)} \tag{4}

    举一个简单的例子来直观地感受条件概率这个概念。假设在一个大学的班级里:

    • 来自重庆的学生比例为10%,而这批学生中喜欢吃辣的比例为90%
    • 剩下的来自其他地区的学生占比90%,他们当中喜欢吃辣的比例为30%

    为了表述清楚,用A表示某学生来自重庆,B表示该学生喜欢吃辣。根据上面的描述,在没有任何其他信息的条件下,一个学生来自重庆的概率为10%,即P(A) = 0.1。但如果我们知道了这个学生喜欢吃辣,那么显然他来自重庆的比例会上升,因为重庆人更喜欢吃辣。也就是说,喜欢吃辣这条信息对判断他是否来自重庆是有价值的,但应该如何量化它呢?我们可以通过条件概率来量化吃辣这条信息的价值。具体地,根据贝叶斯定理可以得到P(A|B) = 0.25,如图3所示。通俗来讲就是,知道这个学生喜欢吃辣后,他来自重庆的概率从10%上升到了25%。这就是从信息中得到的价值。

    图3

    上面的例子告诉我们,条件概率P(A | B)和事件原本概率P(A)之间的差异体现了发生事件这条信息对事件是否发生的价值,也是生成式模型最为经常的部分。

    如果条件概率等于原本的概率,即P(A | B) = P(A)(在这种条件下,很容易推出P(B | A) = P(B)),则称事件A, B相互独立。换句话说,事件B与事件A毫无联系,前者发生与否不会影响后者的发生。

    当两个事件相互独立时,可以推出P(A \cap B) = P(A)P(B)。在此基础上,定义任意多个相互独立的事件:假设是一系列随机事件A_1, A_2, ..., A_n,这些事件都是相互独立的当且仅当对其任一有限子集A_{i1}, A_{i2}, ..., A_{ik},都满足P(A_{i1} \cap A_{i2} \cap... A_{ik}) = P(A_{i1})P(A_{i2})...P(A_{ik})

    五、广告时间

    这篇文章的大部分内容参考自我的新书《精通数据科学:从线性回归到深度学习》

    李国杰院士和韩家炜教授在读过此书后,亲自为其作序,欢迎大家购买。


    1. 理查德·菲利普斯·费曼(Richard Phillips Feynman),美国理论物理学家,量子电动力学创始人,曾被评选为有史以来最伟大的十位物理学家之一

    2. 正文中给出的定义并不是严格意义上的公理化的定义。概率严格定义为,它是定义在概率空间上一种度量,也就是从样本事件到实数的函数。这个函数满足所谓的柯尔莫果洛夫公理(Kolmogorov Axioms),具体的细节在此就不展开了。

    相关文章

      网友评论

        本文标题:生成式模型(零):条件概率

        本文链接:https://www.haomeiwen.com/subject/fhwxoftx.html