生成过程与反向推断
在现实生活中,我们会观察到各种各样的现象,而现象的背后又包含着各种各样的原因。比如,突然下起了大雨,所以行人会被淋湿,而如果看到一个浑身湿透的人,我们也会推测外面可能下雨了。上述这个例子包含了心理学研究中的两种常见思路,一种是,我们可以提出假设,并认为在这个假设下应该会产生怎样的实验数据。另一种是,在实验过后,我们获得了数据,基于这些数据,我们会思考这些数据更支持哪一种假设。由原因生成观察数据,这被称为生成过程(Generative Process); 由观察数据反推原因,这被称为反向推断(Reverse Inference) , 接下来我们将详细介绍这两个过程以及其中涉及到的关键概念。
条件概率分布
首先,我们来了解生成过程。我们还是以下雨为例,并且把观察数据定为家门口是否有水,针对这类观察数据,可能获得的结果有两种:有水与无水。
并且,导致家门口有水产生的原因除了下雨,还有洒水车经过等等。那么,我们可以用条件概率的形式将原因和观察数据表示出来。
我们用符号对原因和观察数据进行表示:
1. O1: 家门口有水 2. O2: 家门口没有水
1. C1 :下雨 2. C2 : 洒水车经过 3. C3 : 晴天
把这些原因和数据详细地列表,表A中的每一行都代表一种条件概率分布
🕵️♀️这些条件概率(即每个单元格内的数字)是怎么得来的?
我们以条件概率分布 p(O∣C1) 为例,其他的条件概率分布,如接下来的p(O∣C2)、p(O∣C3) 都可以以此类推
假设,在过去的无数日子里,我分别记录了下雨的天数N和下雨之后家门口有水的天数f,则有:
p(O1∣C1)=f/N
p(O2∣C1)=1−f/N
根据这个表,我们可以总结条件概率分布的一个重要性质:
以第一行为例,在已知下雨的情况下,观察到家门口有水的概率是0.8,观察到家门口没水的概率是0.2
p(O1∣C1)+p(O2∣C1)=1 这两者相加的和一定为 1
似然函数
离散分布的似然函数
如果此时我们观察到家门口有水,那么最有可能发生的事情是发生了什么?我们会回答:下雨。为什么呢,锁定第一列,我们比较不同原因下出现有水的概率
p(O1∣C1)=0.8>p(O1∣C2)=0.6>p(O1∣C3)=0.2
在上述这个过程中,我们由观察数据对背后的原因进行推断,即反向推断。表格中的一列包含了一种数据在不同原因下出现的条件概率,我们将这一系列条件概率组合称为似然函数。
这也正是似然函数告诉我们的,它允许我们去比较当前数据在不同假设下发生的相对可能性。而这个朴素的直觉背后就是接下来即将要介绍的 极大似然估计法。
同样地,我们将第一列的所有值相加,p(O1∣C1)+p(O1∣C2)+p(O1∣C3)=1.6,这三个条件概率相加的总和并不一定为 1。
条件概率分布与似然函数对比
现在,我们对条件概率分布与似然函数做一个对比:
在条件概率分布p(O∣C)中,C的取值是固定的,比如C=C1,而O则是变化的,如果取遍所有的O,必然有:
∫p(O∣C)dO=1 而似然函数则是一个函数,并不是一种概率分布,在似然函数f(C)=p(O∣C)中,O的取值是固定的,比如O=O1,C则是变化的,如果取遍所有的C,似然函数可以表示为:
∫p(O∣C)dC其结果并不一定等于1. 连续分布下的似然函数
刚刚我们介绍了离散分布下的似然函数,更进一步的,我们来看看连续分布下的似然函数该如何表示。
假定我们有一系列的数据D=[d1,d2,...di],且这些数据均来自于正态分布N(μ,σ2) ,我们定义均值μ 和标准差 σ都是未知参数,即我们获得了这些数据,但是我们不知道这些数据来自于怎样的分布。
我们以其中一个数据点di为例,并将(μ,σ)定义为二维参数θ,那么在正态分布下 取到该数据点 di的可能性可以这样表示:
f(μ,σ)=p(di∣μ,σ)=p(di∣θ)=2πσ21exp(−2σ2(di−u)2) 假定不同的数据彼此独立,则在正态分布中取得这一连串数据的可能性可以写为(进行连乘):
p(d1,d2,...di)=p(d1∣θ)∗p(d2∣θ)∗...p(di∣θ)=i=1∏np(di∣θ) 注意,在上面这个式子中,di是已知的数据,θ则是需要推断的
我们将L(θ)=i=1∏np(di∣θ) 定义为基于数据D=[d1,d2,...di]的似然函数