第7章 为什么需要计算模型¶
学习目标¶
- 理解理论、理论模型与计算模型的区别
- 掌握计算模型的核心成分
- 理解计算模型的价值与应用场景
关键概念¶
- 理论:用自然语言描述现象的解释
- 理论模型:用数学语言结构化地表达理论
- 计算模型:用计算方法实现理论模型,让数据进行定量检验
- 模型的四大成分:输出、变量、参数、算法
- 需要厘清的概念:函数、符号(变量)与值
正文¶
从理论到计算模型¶
1. 理论 (Theory)¶
定义:用一种想法来描述、解释某种现象
例子: - "人们会根据期望效用来做决策" - "强化与惩罚塑造了行为" - "人脑通过贝叶斯推理来更新信念"
特点: - 用自然语言表达,具有某种模糊性 - 可以启发研究,但本身无法被数据检验(太模糊了) - 同样的理论可能有多种不同的实现方式
2. 理论模型 (Theoretical Model)¶
定义:把理论结构化、规范化地用数学表达
例子: - 期望效用模型:\(U = \sum p_i \cdot v(x_i)\) - \(U\) 是期望效用 - \(p_i\) 是每个结果的概率 - \(v(x_i)\) 是结果 \(x_i\) 的价值函数
- 强化学习模型:\(Q_t(a) = Q_{t-1}(a) + \alpha[R_t - Q_{t-1}(a)]\)
- \(Q_t(a)\) 是动作 \(a\) 的价值
- \(\alpha\) 是学习率
- \(R_t\) 是反馈
特点: - 消除了理论中的模糊性,使其可以进行数学推导 - 但理论模型本身不能被数据检验,因为模型中的参数(如 \(\alpha\)、\(v(x)\) 的具体形式)还没有确定 - 理论模型是可以预测现象的,但无法在不同的竞争性假设间进行量化比较
3. 计算模型 (Computational Model)¶
定义:实现理论模型的计算方法,指定具体的参数值,用数据进行定量检验
例子:
理论模型:U = w(p)·v(x)
(w(p) 是概率权重,v(x) 是价值函数)
计算模型的具体形式:
- w(p) = p^γ(权力函数,γ 是权重参数)
- v(x) = x^α(幂函数,α 是敏感度参数)
- 决策概率:P(选A) = softmax(U_A, U_B)
给定参数值(如 γ=0.71, α=0.88),这个模型可以:
1. 预测被试在不同赌博选项下的选择
2. 与真实被试的选择进行比较
3. 计算模型的拟合度
4. 与其他竞争性模型进行比较
计算模型可以进行以下操作: - ✓ 定量预测与观察数据的比较 - ✓ 模型拟合度的量化评估 - ✓ 不同模型之间的定量比较 - ✓ 参数的统计推断
特点: - 是理论模型的具体实现 - 有明确的参数,可以从数据中估计这些参数 - 可以定量地与真实数据进行比较
计算模型的四大成分¶
任何计算模型都由以下四个部分组成:
1. 输出 (Output)¶
定义:模型最终预测输出什么?
类型: - 连续输出:如反应时、脑激活强度、评分 - 例:强化学习模型输出"判断这个选项值多少分"
- 离散输出:如分类、选择、是/否
-
例:决策模型输出"被试会选A还是选B"
-
概率输出:如选择概率、预测正确的概率
- 例:机制识别模型输出"被试选A的概率"
2. 变量 (Variables)¶
定义:实验中被提出来、被改变的因素和被测量的结果
类型: - 自变量 (IV, Independent Variables):实验者操控的因素 - 例:赌博任务中的赔率、收益大小
- 因变量 (DV, Dependent Variables):被试表现,被测量的结果
-
例:选择哪个选项、反应时
-
状态变量:体现个体当前状态的变量
- 例:强化学习中的"当前累积的奖赏"
3. 参数 (Parameters)¶
定义:量化模型中各个因素的影响程度
特点: - 每个参数通常对应一个有心理学意义的构念 - 不同个体的参数可能不同 - 参数通常需要从数据中估计得到
常见参数及其心理学含义:
| 参数 | 常见含义 | 应用场景 |
|---|---|---|
| \(\alpha\) | 学习率 | 强化学习模型 |
| \(\beta\) | 逆温度/决策噪声 | 决策、强化学习 |
| \(\gamma\)、\(\delta\) | 折扣系数 | 延迟折扣、时间折扣 |
| \(w\)、\(v\) | 权重、价值函数参数 | 效用理论、期望值计算 |
| \(a\) | 决策阈限 | 证据积累模型 |
| \(v\) | 漂移率 | 证据积累模型 |
4. 算法 (Algorithm)¶
定义:数据按照什么样的规则进行组合、计算,得出模型的预测
步骤: 1. 输入:给定自变量(实验设计中的因素)和参数值 2. 计算逻辑:按照模型的数学规则进行计算 3. 输出:生成对因变量的预测
例子:强化学习模型的算法
输入: - 被试在试次 \(t\) 做了动作 \(a\) - 得到了反馈 \(R_t\)
计算逻辑: 1. 用当前的 \(Q\) 值和反馈更新 \(Q\) 值:\(Q(a) ← Q(a) + α[R - Q(a)]\) 2. 基于更新后的 \(Q\) 值,下一次做出选择的概率为: $\(P(选a) = \exp(\beta·Q(a)) / \sum \exp(\beta·Q(a'))\)$
输出: - 对下一次动作选择的预测概率 - 或者,给定新的 \(Q\) 值后修改后的决策
需要厘清的概念¶
函数:“函数”可以也理解为一种最简单的模型。想象一个一元一次函数\(y=f(x)=ax+b\),其中\(y\)是函数的输出,\(x\)是函数的输入,\(ax+b\)是函数的算法,\(a\)和\(b\)是函数的参数。“函数”不只是数学概念,它很多时候以“黑箱子”的形式出现在各种地方。所谓“黑箱子”,就是你只需要关注输入什么、输出什么,而不用关心输入是怎么变成输出的:
- 完成小组作业时,你向组员分配了一个任务。任务是函数的输入,组员给你的反馈是函数的输出。只要输出符合你的需要,你不必过问他是怎么做出来的。
- 写代码时,调用了一些工具包。工具包有内置的函数,比如df <- read_csv('data.csv')。你不需要知道输入的'data.csv'怎么就变成了输出的df,只需要知道这个函数可以实现这个功能。
符号:符号只是一个名字,一个代词,一个虚指;比如\(f(x)\)中的\(x\),意味着对于函数\(f\),输入的东西被称作、被记为、被定义成\(x\)。此时\(x\)只代表了这个函数的输入变量,没有任何具体的东西。在代码里,它的表现形式是“变量”。
值:值是那个具体的东西。假设\(a=1, b=1\),此时函数输入的\(x\)需要一个具体的值,才能确定到底会输出什么。在数学上,它是数字;在代码里,它是一个数组,一个字符串,一个文件头,等等等等。
赋值:让一个符号拥有值的过程和操作,让变量拥有、指向一个具体的值。比如a=1就是一个赋值操作,让变量(参数)a的值为1。没有经过赋值的变量没有任何实际意义,只是个名字。
Tom是一个名字,在这个名字指向一个具体的人之前,它没有实际意义。- 小明对你说:“那个谁在找你。”如果小明没有告诉你
那个谁到底是哪个人,这句话就没有实践意义。你没法找到那个在找你的人。
为什么需要计算模型¶
问题1:理论往往太模糊¶
场景:两个研究者都说"奖赏会影响学习",但具体怎么影响?
A研究者:奖赏通过强化学习机制产生的速度是指数衰减的,\(Q(a) \leftarrow Q(a) + \alpha \cdot R\)(恒定学习率)
B研究者:不对,奖赏的影响应该随着学习次数而衰减,早期学习快,后期学习慢,\((1-\alpha)\) 应该随学习次数递增
单纯从"理论"的层面,无法判断谁对! 但如果两人都给出具体的计算模型,我们就可以用数据来检验,看谁的模型预测更准。
问题2:定量地比较竞争性假设¶
场景:一个实验可能有多种解释 - 假设A:"被试错误的原因是认知能力不足" - 假设B:"被试错误的原因是决策标准太严格" - 假设C:"被试犯错误的原因是注意力分散"
纯描述统计无法区分:三个假设都可能导致"错误率升高"
计算模型可以:通过不同模型对数据的预测准确性,量化地判断哪个假设最优
问题3:参数有心理学意义¶
计算模型中的参数往往不是"无意义的统计数字",而是对应真实心理过程的量化。
例子:强化学习模型中的学习率参数 \(\alpha\) - \(\alpha\) 接近0:说明被试学习慢,对新反馈反应不敏感 - \(\alpha\) 接近1:说明被试学习快,对新反馈反应敏感 - 通过比较不同被试或不同条件的 \(\alpha\),我们可以问:"哪个群体的学习更快?"
这比单纯说"A组的学习错误率更低"更有信息量。
问题4:预测与解释¶
计算模型可以进行超越当前数据的预测: - 用前50次试次的数据拟合参数 - 用拟合的参数预测后50次试次的表现 - 如果预测与实际吻合,说明模型捕捉到了真实的心理过程
这比简单的"事后解释"(参照日志偏差)提供了更强的证据。
什么时候应该用计算模型¶
最适合用计算模型的情况:¶
- 有多个竞争性的理论假设
- 不同模型对同一现象有不同解释
- 需要定量地判断哪个更优
-
✓ 计算模型是最好的工具
-
需要理解心理过程而不仅仅是效应
- 题目不仅关心"是否存在效应",还关心"怎样产生的"
-
✓ 计算模型的参数可以回答这个问题
-
数据是逐试次的(trial-by-trial)
- 有详细的单次行为数据或反应时数据
-
✓ 计算模型特别适合这类数据
-
需要进行超越样本的预测
- 想验证模型是否真正捕捉到了心理过程
- ✓ 用参数恢复、交叉验证等方法进行检验
不必用计算模型的情况:¶
- 只关心"有没有效应"
- 例:不同药物是否影响学习速度(用t检验就够了)
-
注:有了计算模型后,发现没有效应也很有价值!
-
数据很少、无法拟合
- 拟合计算模型需要足够的数据点
-
如果只有5个被试,计算模型没有意义
-
理论本身很清晰、没有竞争性假设
- 但这种情况在现实中很罕见
本章小结¶
计算模型是从模糊的理论思想到可检验的科学假设的桥梁。它提供了: - 对理论的精确表达 - 对竞争性假设的定量比较 - 对心理过程的量化描述 - 超越样本数据的预测能力
小结¶
- 理论→理论模型→计算模型:三者逐步从模糊到精确
- 四大成分:输出、变量、参数、算法构成完整的计算模型
- 核心价值:将定性的假设转化为可定量检验的模型
练习与思考¶
- 选择你所在领域的一个理论,尝试用数学形式(不需要严格)写出这个理论的理论模型。例如:"学习速度与反馈时间成反比"可以写成 \(\text{速度} = k / t\)
- 思考你的研究问题中可能有哪些竞争性假设。这些假设有什么本质的不同?
- 浏览一篇使用计算模型的心理学论文(推荐搜索"computational model"),看看这篇论文的模型有哪四大成分?