5D Library › 学习的85%最优错误率定律、髓鞘化动力学与刻意练习 · English

第五章 交错与集中:必要难度

练习时的表现不是学习

比约克在 1994 年提出了一个影响深远的区分:练习当时的表现,与经过一段时间之后、在新情境中仍然能表现出来的学习,是两回事;某些让练习当时变得更困难、表现更差的条件,反而会让长期的保持与迁移更好,他称之为必要难度(desirable difficulties)(Bjork 1994)。比约克夫妇后来把它与记忆的两种强度联系起来:「存储强度」表示一项知识与其他知识联结得多牢固,「提取强度」表示它此刻有多容易被想起;当提取强度高时(刚学过、一看就会),再练一遍对存储强度的提高很少;正是在提取变得有些困难时,成功的提取对长期学习帮助最大 (Bjork and Bjork 2011)。间隔、检索练习、变化练习条件和交错,都是这类难度的例子。

「必要」两个字很重要:这些难度只有在学习者能够成功应对时才有益。太难,学习者根本无法提取或理解,就不再是「必要难度」,而只是难度。这与第一章「刚好够难」的思想相通,但两者测量的东西不同:85% 法则关心每次试次的学习速度,必要难度关心练习时的表现与长期学习之间的背离。

交错练习:罗勒与泰勒的实验

数学课本的习题通常是集中安排的:学完一种方法,做一组只需要这种方法的题。交错安排则把不同类型的题混在一起,学生每做一道题都要先判断「这是哪一类、该用什么方法」。

证据

罗勒与泰勒 2007,实验二。 大学生学习计算四种不常见几何体的体积。集中组按几何体分组练习,交错组做同样的题目,但顺序打乱,每组四题各含一种几何体。两组各做两次练习,间隔一周,再在一周后测验 (Rohrer and Taylor 2007)。练习中,集中组的平均正确率为 89%,交错组为 60%;一周后的测验中,交错组为 63%,集中组只有 20%。这项实验的样本很小(完成全部环节的只有 18 人),但它的模式后来在许多研究中以不同形式出现。同一篇论文的实验一(60 人)还比较了间隔与集中:一周后测验,间隔组 74%,集中组 49%。

证据

交错效应依材料而异。 布伦迈尔与里希特 2019 年的元分析汇总了 59 项研究(238 个效应量,8,466 名参与者),交错学习的总体效应量为 g = 0.42 (Brunmair and Richter 2019)。效应在不同材料上差别很大:辨认画家风格的绘画学习最大(g = 0.67),自然照片约 0.35,数学任务约 0.34;说明文没有显著的总体效应;以词语为材料的少数研究中,集中反而更好(g = −0.39)。类别之间越相似,交错的好处越大;同一类别内部的样例越相似,好处越小。作者据此认为,交错的作用主要在于帮助学习者注意到区分不同类别的特征。运动技能中的「情境干扰」研究因学习标准不同,未纳入这项元分析。

在科内尔与比约克的绘画实验中,交错学习的效果更好,但多数参与者在实验后认为集中学习更有效 (Kornell and Bjork 2008)。这与上一章重读组对自己记忆最有信心的结果一样:练习时的流畅感,是一个不可靠的学习指标。

一个线索竞争的模型

为什么集中练习「练习时好看、考试时吃亏」?一个可能的解释是:在集中练习中,学习者不需要看题目本身就知道该用什么方法——上一道题用的是什么,这一道多半也是。这个表面线索几乎总能给出正确答案,于是题目本身的深层结构得不到足够的学习。到了混合在一起的测验中,表面线索失效,学习者就不知道该用哪种方法。

四类问题,每类有一个由 12 个二元特征构成的原型,具体题目在原型上随机翻转 15% 的特征;「共享」的特征越多,四类越相似。练习中有两种线索:表面线索(上一道题需要的方法)与深层线索(题目自己的特征)。比较两种学习者:理想贝叶斯学习者按类别统计特征(朴素贝叶斯),它的后验与题目顺序无关;误差驱动学习者用同一个预测误差同时更新两种线索的权重(德尔塔规则),因此两种线索会「竞争」解释答案。练习 64 题(每类 16 题,集中成 8 题一组或完全打乱),然后做 40 道混合测验。这是作者构造的模型,参数为示意值。

推导

# Blocked vs interleaved (author's model, illustrative). 4 types x 12-feature prototypes, 15 %
# flips; "shared" features make types alike. Surface cue = previous problem's type. Ideal Bayes
# (naive Bayes) vs error-driven delta rule where cues compete. 64 practice, 40 test problems.
import math, random

K, T, FLIP, ETA = 12, 4, 0.15, 0.25

def prototypes(shared, rng):
    base = [rng.randint(0, 1) for _ in range(K)]
    return [[b ^ (j >= shared and (j - shared) % T == k) for j, b in enumerate(base)]
            for k in range(T)]

def problem(protos, k, rng):
    return [b ^ (rng.random() < FLIP) for b in protos[k]]

def softmax(z):
    m = max(z)
    e = [math.exp(v - m) for v in z]
    return [v / sum(e) for v in e]

def bayes_probs(counts, x):
    return softmax([sum(math.log((c[j] + 1) / (n + 2) if b else 1 - (c[j] + 1) / (n + 2))
                        for j, b in enumerate(x)) for n, c in counts])

def inputs(prev, x):
    return [1.0 if prev == k else 0.0 for k in range(T)] + [1.0 if b else -1.0 for b in x]

def session(order, protos, rng, learner, train=True):
    hits, prev = 0, None
    for k in order:
        x = problem(protos, k, rng)
        if learner["kind"] == "bayes":
            p = bayes_probs(learner["counts"], x)
        else:
            u = inputs(prev, x)
            p = softmax([sum(w * v for w, v in zip(W, u)) for W in learner["W"]])
        hits += max(range(T), key=lambda j: p[j]) == k
        if train and learner["kind"] == "bayes":
            n, c = learner["counts"][k]
            learner["counts"][k] = (n + 1, [cj + b for cj, b in zip(c, x)])
        elif train:
            for j in range(T):
                err = (j == k) - p[j]
                learner["W"][j] = [w + ETA * err * v for w, v in zip(learner["W"][j], u)]
        prev = k
    return hits / len(order)

def run(blocked, shared, seed):
    rng = random.Random(seed)
    protos = prototypes(shared, rng)
    order = [k for k in range(T) for _ in range(8)] * 2
    if not blocked:
        rng.shuffle(order)
    test = [rng.randrange(T) for _ in range(40)]
    out = []
    for kind in ("bayes", "delta"):
        L = {"kind": kind, "counts": [(0, [0] * K) for _ in range(T)],
             "W": [[0.0] * (T + K) for _ in range(T)]}
        out += [session(order, protos, rng, L), session(test, protos, rng, L, train=False)]
    return out

if __name__ == "__main__":
    print("400 simulated learners per cell; P = practice accuracy, T = test accuracy;")
    print("B = blocked, M = mixed (interleaved) practice")
    print("shared  |      ideal Bayes B: P / T  M: P / T |     error-driven B: P / T  M: P / T")
    for shared in (0, 4, 8):
        res = {b: [0.0] * 4 for b in (True, False)}
        for s in range(400):
            for b in (True, False):
                res[b] = [a + v / 400 for a, v in zip(res[b], run(b, shared, s))]
        B, M = res[True], res[False]
        print(f"{shared:2d}/12   |             {B[0]:4.0%} / {B[1]:4.0%}   {M[0]:4.0%} / "
              f"{M[1]:4.0%} |              {B[2]:4.0%} / {B[3]:4.0%}   {M[2]:4.0%} / {M[3]:4.0%}")
# 400 simulated learners per cell; P = practice accuracy, T = test accuracy;
# B = blocked, M = mixed (interleaved) practice
# shared  |      ideal Bayes B: P / T  M: P / T |     error-driven B: P / T  M: P / T
#  0/12   |              92% /  93%    88% /  93% |               90% /  90%    84% /  91%
#  4/12   |              84% /  86%    80% /  86% |               84% /  77%    74% /  82%
#  8/12   |              68% /  70%    63% /  69% |               79% /  52%    56% /  65%
左:罗勒与泰勒 2007 实验二公布的平均数,集中组练习时 89%、一周后 20%,交错组练习时 60%、一周后 63%。右:误差驱动模型(12 个特征中共享 8 个)的练习与测验正确率。

结果分成两半。理想贝叶斯学习者在测验上完全不受练习顺序的影响(例如共享 8 个特征时,集中 70%、交错 69%,差别只是随机误差):对它来说,信息就是信息,什么顺序来都一样。这与威尔逊等人对贝叶斯学习者的评论一致。误差驱动学习者则重现了实验中的反差:练习时集中更好,测验时交错更好;而且类别越相似,反差越大。四类完全不共享特征时,两种安排在测验上几乎没有差别(90% 对 91%);共享 4 个特征时,测验 77% 对 82%;共享 8 个特征时,集中组练习时 79%、测验时只有 52%,交错组练习时 56%、测验时 65%。类别越相似、交错越有利,这与布伦迈尔和里希特发现的「类别间相似性越高、交错效应越大」方向一致。

这个模型的机制来自联想学习中经典的线索竞争:当一个线索已经能预测结果时,同时出现的另一个线索得到的学习就少,这是雷斯科拉—瓦格纳模型的核心特征 (Rescorla and Wagner 1972)。交错练习拿走了表面线索的预测力,迫使学习从题目本身的特征中进行。

注

模型说明了什么,没有说明什么。 第一,模型显示,交错效应不是一切学习者的必然性质:一个理想的贝叶斯学习者不会有这种效应,它出现在依靠误差驱动、线索相互竞争的学习者身上。第二,模型只模拟了「辨别该用哪种方法」这一个环节,没有模拟方法本身的执行;在需要先熟练掌握一种新方法的初学阶段,适度的集中练习可能仍然必要,这也是许多教学建议采用「先集中、后交错」的原因。第三,模型是作者为说明机制而构造的,参数是示意的,不能用来预测某门课的效应量。

什么时候交错

交错对需要辨别的材料最有帮助:不同类型的数学题、容易混淆的概念、风格相似的画家;类别差别明显或材料是需要顺序理解的说明文时,好处不明显甚至可能有害。交错会让练习时的正确率下降,与「维持约 85%」有张力;一种折中是以交错条件下的正确率为准调节单题难度,而不是放弃交错。第八章的试验采用这种组合,并说明它不能分离两者各自的贡献。

本章小结

比约克的「必要难度」区分了练习时的表现与长期的学习。罗勒与泰勒的小样本实验中,集中练习时 89% 对交错 60%,一周后却是 20% 对 63%。元分析显示交错学习的总体效应为 g = 0.42,但依材料而异:绘画最大,数学中等,词语上集中反而更好;类别越相似,交错越有利。线索竞争模型显示,交错效应出现在误差驱动的学习者身上,不出现在理想贝叶斯学习者身上。下一章讨论练习的另一个要素:反馈的时机与粒度。

参考文献

Bjork, Elizabeth L., and Robert A. Bjork. 2011. “Making Things Hard on Yourself, but in a Good Way: Creating Desirable Difficulties to Enhance Learning.” In Psychology and the Real World: Essays Illustrating Fundamental Contributions to Society, edited by Morton Ann Gernsbacher, Richard W. Pew, Leaetta M. Hough, and James R. Pomerantz. Worth Publishers.
Bjork, Robert A. 1994. “Memory and Metamemory Considerations in the Training of Human Beings.” In Metacognition: Knowing about Knowing, edited by Janet Metcalfe and Arthur P. Shimamura. MIT Press.
Brunmair, Matthias, and Tobias Richter. 2019. “Similarity Matters: A Meta-Analysis of Interleaved Learning and Its Moderators.” Psychological Bulletin 145 (11): 1029–52. https://doi.org/10.1037/bul0000209.
Kornell, Nate, and Robert A. Bjork. 2008. “Learning Concepts and Categories: Is Spacing the ‘Enemy of Induction’?” Psychological Science 19 (6): 585–92. https://doi.org/10.1111/j.1467-9280.2008.02127.x.
Rescorla, Robert A., and Allan R. Wagner. 1972. “A Theory of Pavlovian Conditioning: Variations in the Effectiveness of Reinforcement and Nonreinforcement.” In Classical Conditioning II: Current Research and Theory, edited by Abraham H. Black and William F. Prokasy. Appleton-Century-Crofts.
Rohrer, Doug, and Kelli Taylor. 2007. “The Shuffling of Mathematics Problems Improves Learning.” Instructional Science 35 (6): 481–98. https://doi.org/10.1007/s11251-007-9015-8.

Fan, Y. (2026). The 85% Rule for Optimal Learning, Myelination Kinetics and Deliberate Practice: From Stochastic Gradient Descent and the Zone of Proximal Development to Spaced Repetition, Read Beside Classical Chinese Learning Theory [学习的85%最优错误率定律、髓鞘化动力学与刻意练习] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23761339 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).