通过蒙特卡洛树搜索(MCTS)结合价值与策略神经网络,AlphaGo 实现了一种高效的学习范式。它通过自我对弈和搜索,为每一步棋生成更优的训练标签,从而不断提升自身能力。这种“逐步改标”的方法,相比当前大型语言模型(LLM)强化学习中依赖整段轨迹奖励的模式,更高效、稳定,也更接近人类的学习方式。然而,由于语言模型的行为空间巨大且开放,MCTS 的搜索机制难以直接迁移。目前,自动化 AI 研究在执行实验和优化参数方面表现出色,但在提出正确的研究问题和跳出思维定式上仍有不足。
AlphaGo 的核心思想:用搜索指导学习
AlphaGo 解决围棋这个对于纯暴力搜索而言“难以处理”的问题,其核心在于用神经网络让庞大的搜索树变得易于管理。它将搜索的广度和深度两大难题,通过两个巧妙的工具来缩减。
- 广度问题:棋盘上可行的下法太多。策略网络 (Policy Network) 在此发挥作用,它能快速判断哪些下法“看起来”更有希望,从而将搜索集中在少数有潜力的分支上。
- 深度问题:一盘棋可能长达数百步,无法搜索到底。价值网络 (Value Network) 在此发挥作用,它能评估当前棋盘局势,直接预测“谁会赢”,从而让我们不必穷尽所有后续变化就能对一个分支的好坏做出判断。
这种方法最深刻的一点是,一个仅有十层左右的神经网络,竟然能够近似并摊销一个几乎无法处理的搜索问题。这表明我们可能需要重新思考那些理论上“困难”的问题在实践中是否真的那么难以解决。
蒙特卡洛树搜索 (MCTS) 的运作机制
MCTS 是 AlphaGo 做出决策的搜索算法,它在每一步棋都会重新运行。这个过程并非盲目搜索,而是遵循一个“选择-扩展-评估-反向传播”的四步循环,在探索新下法和利用已知好下法之间取得平衡。
选择 (Selection):从根节点(当前棋盘)开始,根据一个名为 PUCT 的公式,选择一条路径向下探索。这个公式会倾向于选择那些 平均回报高(利用) 且 探索次数少(探索) 的分支。
扩展 (Expansion):当走到一个之前未探索过的“叶子节点”时,使用策略网络来预测这个节点下有哪些值得尝试的后续着法,从而扩展搜索树。
评估 (Evaluation):对于新扩展出的叶子节点,使用价值网络来快速“猜测”当前局势的胜率。这个胜率估值充当了一个简化的“搜索到底”的结果。
反向传播 (Backup):将评估阶段得到的胜率(或游戏最终的真实结果)沿着路径传回至根节点,更新路径上所有节点的平均回报值和访问次数。
经过数千次这样的模拟后,AI 会选择那个在模拟中被访问次数最多的着法,因为它最经得起考验。
自我对弈:AI 如何自我进化
AlphaGo 变得越来越强的秘诀在于自我对弈和策略提升。这个过程极其巧妙,它将强化学习变成了一个稳定高效的监督学习问题。
生成更好的标签:在自我对弈的每一步中,AI 首先会有一个来自策略网络的初步“直觉”判断。然后,它会花费大量计算资源进行 MCTS 搜索。搜索结束后产生的访问次数分布,实际上是一个比原始直觉更精确、更强大的策略。
用新标签重新训练:训练的核心就是让原始的策略网络去学习模仿 MCTS 搜索后的结果。
这就是 AlphaGo 学习算法的优雅之处。它不依赖于对整个对局的模糊奖励进行“信用分配”,而是为棋盘上的每一步棋都提供了一个明确、更优的改进目标。你不是在奖励最终胜利的那盘棋,而是在告诉它:“无论输赢,你在这一步本可以下得更好。”
这种方法极大地降低了学习信号的方差,使得训练过程非常稳定和高效。
为何 MCTS 难以直接用于语言模型?
尽管 MCTS 在围棋上取得了巨大成功,但将其直接应用于大型语言模型(LLM)却面临根本性挑战。
- 巨大的分支因子:围棋的每一步只有几百种选择,而语言模型的词汇表有数万个,导致搜索树的宽度难以控制。
- 开放式的状态空间:在围棋中,相同的棋局状态会反复出现,MCTS 可以合并这些路径。但在语言中,几乎不可能生成完全相同的思考路径或句子序列,这使得基于“访问次数”的探索策略失效。
- 缺乏有效的价值函数:在语言任务(如写代码或文章)中,很难像围棋那样在中间步骤就得到一个可靠的“价值”评估。你通常需要完成整个任务才能判断其好坏。
简单来说,MCTS 的成功依赖于一个有界、离散且可以反复访问的行动空间,而语言的创造性和开放性恰恰打破了这些前提。
自动化 AI 研究的现状
将 AI 用于自动化科学研究,目前展现出了一些清晰的能力边界。
AI 的强项:
- 执行实验:AI 能够出色地执行定义清晰的实验流程、收集数据并生成图表。
- 超参数优化:AI 可以在一个更开放的空间中进行优化,不仅调整数字,甚至可以修改代码、增加数据增强方法来提升性能。
AI 的弱项:
- 提出正确的问题:目前的 AI 难以进行“横向思维”,即当一条研究路径陷入死胡同时,它无法跳出来,从根本上重新审视问题或目标。
- 诊断根本原因:它能发现性能差异,但通常需要人类提示才能找到问题的根源,比如一个底层的代码错误或数据加载问题。
AI 就像一个能力极强的研究助理,擅长在既定轨道上“死磕”一个指标,但仍然需要人类研究员来设定方向、识别瓶颈和进行创造性的问题定义。