CompModCogPsy
  • 全书介绍和写作计划
  • 第一章 计算认知科学导论
    • 前言
    • 1.1 交叉学科三角
    • 1.2 认知科学的特点
    • 1.3 认知科学的发展历史
    • 1.4 我们为什么需要计算认知
      • 1.4.1 认知科学的基础假设:信息处理理论
      • 1.4.2 挑战与“诞生”
      • 1.4.3 计算认知的必要性
  • 第二章 计算模型基础
    • 2.1 什么是计算模型?
    • 2.2 模型选择
    • 2.3 模型拟合
    • 2.4 模型准确度
    • 2.5 模型可信度
  • 第三章 概率推断和贝叶斯理论
    • 3.1 概率基础
    • 3.2 概率推断
      • 3.2.1 似然函数
      • 3.2.2 最大似然估计
    • 3.3 贝叶斯理论
    • 3.4 拓展阅读:p值
    • 3.5 编程练习-最大似然估计
  • 第四章 心理物理学和信号检测论
    • 心理物理学基础
    • 心理物理曲线
      • 几种常见的心理物理曲线
      • 拟合心理物理曲线
    • 信号检测论
      • dprime
      • 决策标准
      • receiver operating curve (ROC)曲线和area under curve (AUC)
      • dprime和AUC的关系
      • 2AFC的应用
      • Page
    • 展望
  • 第五章 近似推断
    • 马尔科夫链蒙特卡洛采样
      • Metropolis-Hasting算法
    • 变分推断
    • 展望
  • 第六章 知觉决策
    • 模拟一个简单知觉决策
    • 模拟决策和反应时
    • 权衡反应时和正确率
    • 6.4 经典漂移扩散模型
    • 漂移扩散模型的应用
      • 基于价值的决策
      • 精神疾病的应用
      • 社会认知
    • 展望
  • 第七章 价值决策
    • 人类决策基础
    • 前景理论
    • 风险决策
    • 展望
  • 第八章 强化学习
    • 机器学习强化学习基础
      • 动态规划
      • 时间差分学习
      • 基于模型和无模型强化学习
    • 心理学的强化学习
    • 强化学习的交叉关系
    • 强化学习模型和参数估计
    • Rescorlar-wagner模型
    • 二阶段任务
    • 展望
  • 第九章 社会决策和社会学习
    • 社会决策
    • 社会学习
    • 展望
  • 第十章 神经网络
    • 神经网络和心理学引言
    • 神经网络基础
      • 多层感知机
      • 卷积神经网络
      • 循环神经网络
    • 神经网络和人脑加工的关系
      • 感知觉的编解码
      • 工作记忆
      • 长时记忆
      • 学习和决策
    • 展望
由 GitBook 提供支持
在本页
  • 生成过程与反向推断
  • 条件概率分布
  • 似然函数
  • 离散分布的似然函数
  • 条件概率分布与似然函数对比
  • 连续分布下的似然函数
  1. 第三章 概率推断和贝叶斯理论
  2. 3.2 概率推断

3.2.1 似然函数

最后更新于10个月前

生成过程与反向推断

在现实生活中,我们会观察到各种各样的现象,而现象的背后又包含着各种各样的原因。比如,突然下起了大雨,所以行人会被淋湿,而如果看到一个浑身湿透的人,我们也会推测外面可能下雨了。上述这个例子包含了心理学研究中的两种常见思路,一种是,我们可以提出假设,并认为在这个假设下应该会产生怎样的实验数据。另一种是,在实验过后,我们获得了数据,基于这些数据,我们会思考这些数据更支持哪一种假设。由原因生成观察数据,这被称为生成过程(Generative Process); 由观察数据反推原因,这被称为反向推断(Reverse Inference) , 接下来我们将详细介绍这两个过程以及其中涉及到的关键概念。

条件概率分布

首先,我们来了解生成过程。我们还是以下雨为例,并且把观察数据定为家门口是否有水,针对这类观察数据,可能获得的结果有两种:有水与无水。

并且,导致家门口有水产生的原因除了下雨,还有洒水车经过等等。那么,我们可以用条件概率的形式将原因和观察数据表示出来。

我们用符号对原因和观察数据进行表示:

  • OOO (observation)

1. O1O_1O1​: 家门口有水 2. O2O_2O2​: 家门口没有水

  • CC C (cause)

1. C1C_1C1​ :下雨 2. C2C_2C2​ : 洒水车经过 3. C3C_3C3​ : 晴天

把这些原因和数据详细地列表,表A中的每一行都代表一种条件概率分布

🕵️‍♀️这些条件概率(即每个单元格内的数字)是怎么得来的?

我们以条件概率分布 p(O∣C1) p (O|C_1)p(O∣C1​) 为例,其他的条件概率分布,如接下来的p(O∣C2)、p(O∣C3) p (O|C_2)、 p (O|C_3) p(O∣C2​)、p(O∣C3​) 都可以以此类推

假设,在过去的无数日子里,我分别记录了下雨的天数NNN和下雨之后家门口有水的天数fff,则有:

  • p(O1∣C1)=f/Np(O_1|C_1) = f/Np(O1​∣C1​)=f/N

  • p(O2∣C1)=1−f/Np(O_2|C_1) = 1 - f/Np(O2​∣C1​)=1−f/N

根据这个表,我们可以总结条件概率分布的一个重要性质:

以第一行为例,在已知下雨的情况下,观察到家门口有水的概率是0.8,观察到家门口没水的概率是0.2

p(O1∣C1)+p(O2∣C1)=1p(O_1|C_1) + p(O_2|C_1) = 1p(O1​∣C1​)+p(O2​∣C1​)=1 这两者相加的和一定为 1

似然函数

离散分布的似然函数

如果此时我们观察到家门口有水,那么最有可能发生的事情是发生了什么?我们会回答:下雨。为什么呢,锁定第一列,我们比较不同原因下出现有水的概率

p(O1∣C1)=0.8>p(O1∣C2)=0.6>p(O1∣C3)=0.2p(O_1|C_1) =0.8 > p(O_1|C_2) =0.6 > p(O_1|C_3) =0.2 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.6p(O_1|C_1) + p(O_1|C_2) + p(O_1|C_3) = 1.6p(O1​∣C1​)+p(O1​∣C2​)+p(O1​∣C3​)=1.6,这三个条件概率相加的总和并不一定为 1。

条件概率分布与似然函数对比

现在,我们对条件概率分布与似然函数做一个对比:

在条件概率分布p(O∣C)p(O|C)p(O∣C)中,CCC的取值是固定的,比如C=C1C = C_1C=C1​,而OOO则是变化的,如果取遍所有的OOO,必然有:

∫p(O∣C)dO=1\int p(O|C)dO = 1 ∫p(O∣C)dO=1

而似然函数则是一个函数,并不是一种概率分布,在似然函数f(C)=p(O∣C)f(C) =p(O|C)f(C)=p(O∣C)中,OOO的取值是固定的,比如O=O1O = O_1O=O1​,CCC则是变化的,如果取遍所有的CCC,似然函数可以表示为:

∫p(O∣C)dC其结果并不一定等于1.\int p(O|C)dC \\其结果并不一定等于1.∫p(O∣C)dC其结果并不一定等于1.

连续分布下的似然函数

刚刚我们介绍了离散分布下的似然函数,更进一步的,我们来看看连续分布下的似然函数该如何表示。

假定我们有一系列的数据D=[d1,d2,...di]D = [d_1,d_2,...d_i]D=[d1​,d2​,...di​],且这些数据均来自于正态分布N(μ,σ2)N(\mu , \sigma^2)N(μ,σ2) ,我们定义均值μ\muμ 和标准差 σ\sigmaσ都是未知参数,即我们获得了这些数据,但是我们不知道这些数据来自于怎样的分布。

我们以其中一个数据点did_idi​为例,并将(μ,σ)(\mu, \sigma)(μ,σ)定义为二维参数θ\thetaθ,那么在正态分布下 取到该数据点 did_idi​的可能性可以这样表示:

f(μ,σ)=p(di∣μ,σ)=p(di∣θ)=12πσ2exp(−(di−u)22σ2) f(\mu,\sigma ) = p(d_i|\mu,\sigma) = p(d_i|\theta) = \frac{1}{\sqrt{2\pi\sigma^2}}exp(-\frac{(d_i-u)^2}{2\sigma^2})f(μ,σ)=p(di​∣μ,σ)=p(di​∣θ)=2πσ2​1​exp(−2σ2(di​−u)2​)

假定不同的数据彼此独立,则在正态分布中取得这一连串数据的可能性可以写为(进行连乘):

p(d1,d2,...di)=p(d1∣θ)∗p(d2∣θ)∗...p(di∣θ)=∏i=1np(di∣θ)p(d_1,d_2,...d_i) = p(d_1|\theta) * p(d_2|\theta)*...p(d_i|\theta) = \prod\limits_{i=1}^{n}p(d_i|\theta)p(d1​,d2​,...di​)=p(d1​∣θ)∗p(d2​∣θ)∗...p(di​∣θ)=i=1∏n​p(di​∣θ)

注意,在上面这个式子中,did_idi​是已知的数据,θ\thetaθ则是需要推断的

我们将L(θ)=∏i=1np(di∣θ)L(\theta) = \prod\limits_{i=1}^{n}p(d_i|\theta)L(θ)=i=1∏n​p(di​∣θ) 定义为基于数据D=[d1,d2,...di]D = [d_1,d_2,...d_i]D=[d1​,d2​,...di​]的似然函数