别抄 AlphaGo 的 490 万局,抄它花预算的方式:一套人类版 MCTS 学习法

MCTS 靠海量模拟称霸围棋,但"海量试错就能变强"这个结论对人不成立:人的稀缺资源是注意力,不是算力。真正值得抄的是 MCTS 的预算分配策略——选择、扩展、模拟、回传四个零件各自回答一个"有限预算花在哪"的问题,而人类学习最常见的四种失败(舒适区打转、浅尝辄止、流畅错觉、知识孤岛),恰好各缺其中一个零件。附一张诊断表和一张行动卡片。

MCTS 不懂棋理、不懂围棋文化,只会统计一件事:“从这个局面随机下完一整局,赢的频率是多少?”就靠这个,它十年内把计算机围棋从业余水平推到职业水平。从这里很容易得出一个励志结论——海量试错就能变强。很多学习者真的在这么干:今天刷一篇论文、明天跑一个 demo、后天收藏五个教程,美其名曰”多探索”。可惜这个结论抄错了地方。MCTS 值钱的从来不是”海量模拟”——那只是算力便宜的副产品;值钱的是另一半:在模拟次数有限的前提下,每一次模拟该花在哪个分支上。而”预算有限,该花在哪”,恰好就是学习者的真问题。

一句话主线

不要照搬 MCTS 的”海量模拟”——那是为算力便宜的机器设计的;要照搬它的预算分配策略。MCTS 的四个零件(选择、扩展、模拟、回传)各自回答一个预算问题,而人类学习最常见的四种失败,恰好对应缺了其中一个零件。

本文只依赖 MCTS 的直觉,不重复推导。如果你还不知道 MCTS 是什么,先读零基础那篇,那里把大数定律、UCB1 公式和四步循环从头装了一遍。

先算一笔账:你为什么抄不起”海量”

AlphaGo Zero 训练期间生成了约 490 万局自我对弈,用时 3 天,每步棋跑 1600 次模拟(Silver et al., 2017, Nature)。

换算到人:假设你每天认真学 2 小时,坚持 10 年,总预算约 7300 小时。一次像样的”学习模拟”——读懂一节内容再自测一遍——就算只花 1 小时,你一辈子的模拟次数也就是几千次的量级。机器一天百万局,你十年几千次。抄”海量”,你连零头都凑不齐。

量级只是表面,底下还有三个更根本的差别:

  1. 稀缺资源不同。 机器的算力便宜且可以并行;人的注意力昂贵且严格串行——你没法同时深读两篇论文。
  2. 垃圾样本的代价不同。 机器模拟完一局,失败分支直接丢弃,内存清空,零残留;人读错、理解错,错误认知会留在记忆里,以后还要花额外成本去纠正。机器不怕垃圾样本,人怕。
  3. 信号可靠性不同。 围棋模拟到终局,胜负判定不会骗人;而人学完之后那句”我感觉我懂了”,是一个高噪声信号——后面会看到,它经常是错的。

所以直接照抄机器策略的下场是确定的:漫无目的地东刷一篇、西试一个,大量模拟没有返回值,知识一盘散沙。要抄,得抄对部位。

四个零件,四个预算问题

MCTS 每次迭代走四步:选择、扩展、模拟、回传。每一步都是一个预算分配器。逐个翻译。

零件一 · 选择:探索项会自己衰减,别永远舒适,也别永远流浪

MCTS 在树里往下走时,每个分支的吸引力由 UCB1 公式给出:

xˉi利用:这条路的历史胜率+clnNni探索:这条路被冷落的程度\underbrace{\bar{x}_i}_{\text{利用:这条路的历史胜率}} + \underbrace{c\sqrt{\frac{\ln N}{n_i}}}_{\text{探索:这条路被冷落的程度}}

关键性质在第二项:探索加成随该分支被访问次数 nin_i 的增长自动衰减

翻译成人话:一个方向你钻研得越深,继续加码的理由就必须越来越多地来自”它真的有产出”(第一项),而不是”它还新鲜”(第二项)。反过来,一个你从没碰过的领域,nin_i 接近零,探索加成巨大——哪怕它眼下”胜率”看起来平平,也值得先投几次小额预算摸摸底。

这里最实用的洞察是:探索/利用的比例不该是一个拍脑袋的固定值,它应该随熟悉度自动退火。入门期广撒网,每个方向都便宜地试几次;中期收敛到两三条高产出主线;后期仍然留一小笔预算给完全陌生的分支——UCB1 的探索项永远不会归零,就是为了防止你在一个局部最优上待到天荒地老。如果你一定要一个可操作的起点:七成时间巩固主线,三成碰新东西,然后随阶段自己调。

零件二 · 扩展:一次只在边界上长一个节点

标准 MCTS 每次迭代只扩展一个新节点,而且只扩展在已访问路径的边缘——它从不在离根十万八千里的地方凭空造节点。

人的对应:新概念要挂在已有知识的边界上,一次挂一个。一个概念做到”能用自己的话讲出来、能举个类比、能和旧知识挂上钩”,这个节点才算真正长出来,才有资格谈下一个。教育心理学里这件事有个成名已久的名字——最近发展区(Vygotsky):学习发生在”现有能力边界再往外一步”的地方,而不是往外十步。

同时啃五个大主题的问题不是贪心,是那五个节点谁都不在你这棵树的边缘——一个都挂不上,五个都白读。

零件三 · 模拟:不自测的阅读,等于没有 rollout 的树

MCTS 扩展出新节点后必须做一次模拟:把局面随机推演到终局,拿回一个真实的胜负信号。没有这一步,树上全是没有统计值的空节点,后续的”选择”就无从谈起。

人的模拟 = 检索练习:合上材料,自己出题自己答。读完 MCTS,自问三个问题——它和思维链推理的区别是什么?它的稀缺资源是什么?为什么 DeepSeek-R1 放弃了它、rStar-Math 又把它捡了回来?答得出来,这次模拟才有返回值;答不出来,答不出的地方就是返回值。

这不是鸡汤,是认知科学里复现最扎实的效应之一。Roediger & Karpicke (2006) 的经典实验:学完 5 分钟后测,重读组成绩更好;一周后再测,自测组显著胜出——而学生们的自我预测恰好相反,他们普遍以为重读更有效。重读制造流畅的错觉,检索才产生长期记忆。只读不测,相当于 MCTS 只扩展不模拟:树看着在长大,但每个节点的统计值是空的,你对”自己懂不懂”的估计没有任何真实信号支撑。

零件四 · 回传:更新的不是叶子,是整条路径

MCTS 最容易被忽略的一步:模拟结束后,结果不是只记在叶节点上,而是沿着来路回传,更新路径上每一个祖先的统计值。深处一个节点的输赢,会改变根节点附近的选择倾向。

人的对应:每学到一个新东西,强制问一句——这个新知识,让我对哪个旧认知的信心变了?学了 GRPO,回传到”我原以为策略优化必须配一个价值网络”这个旧节点;学了 R1 的纯强化学习涌现,回传到”推理能力必须靠人类示范教出来”这个旧信念。新知识不回传,旧的错误估值就继续留在树上,下次”选择”时照旧把预算引向错的分支。

这也解释了为什么孤立刷知识点学了就忘:不是记忆力差,是那个节点从来没和树连上——回传无路可走,学了等于模拟完不更新统计。

反着看:四种学习失败,各缺一个零件

把四个零件逐个拆掉,你会得到四种谁都见过的失败模式:

缺的零件失败模式典型症状
缺探索(只利用)舒适区打转所谓十年经验,是一年经验重复了十次
缺利用(只探索)浅尝辄止收藏夹一千篇,每个领域都停在第一章
缺模拟(只扩展)流畅错觉”都看懂了”,合上书一问就倒
缺回传(孤立学习)知识孤岛学过的东西从不改变任何一个旧判断,自然也想不起来

这张表的用法是诊断:感觉学习没效果的时候,先别加时长——时长是模拟次数,而你的问题多半不在次数,在四个零件缺了哪个。

这个类比在哪里失效(必须讲清)

任何跨域类比都有边界,这个也不例外。三处失效,每一处都对应一条额外的纪律:

一、人不能 reset。MCTS 每次模拟都从当前局面的干净副本出发,模拟得再烂也不污染真实棋局;人的每一次”模拟”都写进同一份记忆,错误理解会留下来。推论:入门阶段,一手信源的质量远比数量重要——论文原文、官方文档、能跑通的代码,它们扮演的角色相当于围棋终局那个不会骗人的胜负判定。二手转述读十篇,不如原始材料啃一篇。

二、人的奖励信号是高噪声的。围棋推演到底就知道输赢,而”我感觉我懂了”经常是错的(见上文流畅错觉)。所以人需要把评分外置:讲给别人听、写下来、让代码跑起来——让世界给你打分,而不是自己给自己打分。

三、目标根本不同。机器只要统计,不要理解:MCTS 跑完 490 万局也不懂棋理,它只有一堆胜率。人恰好反过来——搜索策略只是手段,最终要的是一棵有逻辑的知识树:你要能说出”为什么这条路赢、那条路会输”,而不是只报一个胜率数字。借它的搜索策略,不借它的终点。

门外汉能靠这个变成内行吗

先把”内行”拆成两种,答案不一样:

  • 底层理论专家:推公式、发论文、做算法创新。这需要多年数理训练,预算分配策略帮不了你跳过它——它能帮你把前置数学链补得更高效,但补链本身没有捷径。
  • 工程应用专家:懂各类方法的动机、优缺点、适用场景与取舍;看得懂开源实现;能判断什么工具解决什么痛点。工业界绝大多数岗位要的是这种。

对第二种,答案是明确的:可以,而且这套预算分配比”堆时长”快得多。因为工程判断力的本质,恰好就是一棵挂满了”什么时候用 A、什么时候用 B”的决策树——而这正是四个零件反复迭代长出来的东西。

还有一条 MCTS 送你的宽慰:它从不遍历搜索空间,专家也不需要全知。做 Agent 应用不需要精通底层算子实现,但要懂 KV-Cache、批处理、各种采样策略分别解决什么痛点。专家不等于样样精通,等于一棵在关键分支上统计充分的树。

行动卡片

每学一个新概念,把四个零件走成一次完整迭代:

  1. :今天的预算给主线还是新分支?(主线为主;定期小额探索,比例随熟悉度自己退火)
  2. :这个概念挂在我已有的哪个节点旁边?挂不上,说明跳级了,先补中间节点。
  3. :合上材料,自己出三个问题自己答。答不出的地方,就是这次模拟的返回值。
  4. :它让我对哪个旧认知的信心变了?用大白话复述一遍,找一个类比,连上一到两个旧概念。

不要模仿机器无限乱飞,模仿它花预算的方式。假以时日,树会自己长。


参考文献

  • Silver, D., et al. (2017). Mastering the game of Go without human knowledge. Nature, 550, 354–359.(AlphaGo Zero:490 万局自我对弈、每步 1600 次模拟)
  • Kocsis, L., & Szepesvári, C. (2006). Bandit based Monte-Carlo Planning. ECML 2006.(UCT:把 UCB1 用到树搜索上)
  • Auer, P., Cesa-Bianchi, N., & Fischer, P. (2002). Finite-time Analysis of the Multiarmed Bandit Problem. Machine Learning, 47, 235–256.(UCB1 公式的出处)
  • Roediger, H. L., & Karpicke, J. D. (2006). Test-Enhanced Learning: Taking Memory Tests Improves Long-Term Retention. Psychological Science, 17(3), 249–255.(检索练习 vs 重读的经典实验)
  • 本站前篇:零基础读懂蒙特卡洛树搜索(MCTS)