阿伦森神谕

Hacker News Top 新闻

摘要

一篇讲述「阿伦森神谕」的长文,回溯 1950 年代 Bell Labs 中 David Hagelbarger 的 SEER 与 Claude Shannon 的机器如何通过预测对手的模式,在匹配硬币等博弈中取胜,并延伸到当代关于可预测性的实验。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/14 13:03

# Aaronson 预言机 来源:https://aaronsonoracle.com/ 故事 ## 贝尔实验室走廊里的两台机器 这个实验已有七十年历史,它最初由继电器搭建,后来才被写成软件。 **约1951年** 贝尔电话实验室,新泽西州默里山 20世纪50年代初的某个时候,在贝尔实验室,一位名叫 David Hagelbarger 的工程师造了一台机器,用来和他的同事玩"猜硬币"游戏。两名玩家各自秘密选择正面或反面;如果选择相同一方获胜,选择不同则另一方获胜。如果对手真正不可预测,这个游戏就只是一次抛硬币而已。Hagelbarger 称这台机器为 SEER,即 SEquence Extrapolating Robot(序列外推机器人)。[^2] SEER 并没有以任何深入的方式模拟你。它只追踪上两轮的三个事实:它在前前一轮是赢了还是输了,它是出的相同还是不同,以及它在上一轮是赢了还是输了。三个是/否的事实给出八种可能的情况,对于这八种情况中的每一种,机器都记住"出相同"是否一直有效。它在一个小的可逆计数器上记录这一点,计数器在正三和负三处停止,Hagelbarger 用一句值得记住的话来描述:这些停止"实际上让机器忘掉了远古的历史"。[^2] 前前轮是否赢了 → 出相同 → 上一轮是否赢了 → 计数器 N N N | N N N | N | N N N N | Y | N | N | N Y | N N | N | N Y | N | Y | N Y | Y | N Y | Y | Y **图版**SEER 的全部记忆。上两轮的三个是/否事实给出八种情况,每种情况保留一个小计数器,记录"出相同"是否一直有效。正三和负三处的停止,就是 Hagelbarger 所说的让机器忘掉远古历史。 在隔壁办公室工作的 Claude Shannon 注意到了这个装置,并造了一台自己的。他1953年3月18日的备忘录开头明确归功于 Hagelbarger,然后做了一个对比,恰好说明了这是什么类型的机器: > 博弈论告诉你玩猜硬币的正确方式:在脑子里抛硬币,做到真正的随机,长期下来没有人能打败你。而爱伦·坡的侦探做的事情完全不同。他研究对手,猜什么样的人会做出什么样的选择。Shannon 造的是侦探,因为侦探会赢。不是打败理想中的玩家,而是打败真实的玩家。 这就是全部的想法,一句话。博弈论告诉你玩猜硬币的正确方式:在脑子里抛一枚硬币,做到真正的随机,长期下来没有人能打败你。而爱伦·坡的侦探做的事情完全不同。他研究对手,猜测什么样的人会做出什么样的选择。Shannon 造的是侦探,因为侦探会赢。不是打败理想中的玩家,而是打败真实的玩家。 Shannon 的机器寻找模式,用他的话说,"假设玩家在同样的情况再次出现时会遵循这些模式"。当它没有看到一个模式重复出现至少两次时,它就随机行动,而随机性来自一个每秒旋转约十次的换向器,在你按下按钮的那一刻采样。它的不可预测性是从你自己操作的时间抖动中收获的。[^1] 一个木制机箱,透明顶盖露出电子管和线路。前面板上的铭牌写着 NIMWIT,下面两列灯分别标着 PLAYER WINS 和 MACHINE WINS。 **图版**这不是那台读心机(它没有留下我们能用的照片),而是 Shannon 同年造的另一台游戏机器:Nimwit,约1953年,用来玩 Nim。它出现在这里是因为它的前面板。两列灯,*玩家胜*对阵*机器胜*,正是整个页面继承下来的记分牌样式。 MIT Museum,剑桥,MA。摄影:Daderot,以CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/) 发布。 [来源](https://commons.wikimedia.org/wiki/File:Nimwit_by_Claude_Shannon,_Nim-playing_machine,_c._1953,_view_1_-_MIT_Museum_-_Cambridge,_MA_-_DSC09104.jpg)。 ### 他完全知道如何打败它 Shannon 的备忘录之所以令人瞩目,是因为他没有夸大其词。他算出了这台机器有多容易被打败,并公布了方法: > 这台机器并非不可战胜。它是可战胜的,四局中能赢三局——*在纸面上*。你只是无法在玩游戏的同时在脑子里执行这个方法。 这台机器不是不可战胜的。在纸面上,四局中它能被打败三局。问题在于你无法在玩游戏的同时在脑子里运行这个方法。原则上的可能性与一个人当下实际能做到的事情之间的差距,正是本页面的全部主题,而 Shannon 在1953年就给它命了名。 一个铝制迷宫,平板托盘上装有可移动的隔板,一条走廊里站着一只黑色小机械老鼠,另一条走廊里放着一枚奖牌。 **图版**Theseus,1952年。老鼠找到穿越迷宫的路,并记住路线。Shannon 的习惯是把想法造出来而不只是写下来,正因如此,一份关于揣摩人心的备忘录才附带了一台可以运行的机器。 MIT Museum,剑桥,MA。摄影:Daderot,以CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/) 发布。 [来源](https://commons.wikimedia.org/wiki/File:Theseus_Maze_by_Claude_Shannon,_1952_-_MIT_Museum_-_DSC03702.JPG)。 ### 两台机器互相较量 不可避免地,有人想知道哪台机器更好。Hagelbarger 记录了结果: HAGELBARGER 的 SEER(大的那台)vs SHANNON 的机器(小的那台)· 裁判机器 44.2 | 55.8 **图版**两台机器被接到第三台充当裁判的机器上。所示分数来自2020年的软件复刻版本,以一百次对局为单位取平均;Hagelbarger 对原始比赛的报告约为55比45。[^3] Shannon 那台更简单的机器,用大约一半的继电器建造,击败了更复杂的那台。2020年,Sibiu 的一个团队用软件重新实现了两台机器,让它们对战了十次。以一百次对局为单位取平均,Shannon 的机器以55.8对44.2获胜。一个六十年前的实验室传说,被验证并确认了。[^3] **玩家 3507** 机器 5010 · 展品上的终身比分 Shannon 的机器至今仍然存在。William Poundstone 去 MIT Museum 的仓库看望它,但没有跟它玩,因为"那几乎是不敬的",他写道,"因为它记录了一个最终比分:玩家3507,机器5010。"在所有曾坐下来和它对弈的人当中,机器赢了大约59%的局。这是一个展品上的终身统计,而非受控实验,而且它是唯一存活下来的机器对人类的数据。[^4] ### 五十年后,在一间阶梯教室 你刚刚玩的版本来自 Scott Aaronson,他为自己在伯克利教的一门课写的,并在《Quantum Computing Since Democritus》中做了描述: > 我没能打败自己的程序——在读过源代码之后也没能。这和 Shannon 对自己的继电器版本的坦白如出一辙。而那个学生……我也不知道他是怎么做到的。 请留意两点。第一,Aaronson 在知道自己程序源代码的情况下仍然无法打败它,这和 Shannon 对自己继电器机器的坦白一样。第二是那个学生,我们会在结尾处回到他,因为他是如何做到的才是重点,而不是例外。 ### 我们的版本有何不同 我们的版本不是对那两台机器中任何一台的复制。Shannon 的机器追踪它是否在赢,以及你是否改变了自己的选择,这给了它八种情况,但不记得你的实际序列。我们的版本完全忽略输赢,只记录你在每一串近期按键之后按了什么。Aaronson 的版本使用长度为五的按键串,我们的也是。他的什么都不忘;Hagelbarger 的刻意忘记;我们的也从不忘记,所以一个你早期就改掉的习惯,在整个会话期间都会持续对你不利。 **图版**三台机器,相隔七十年,以及每台各自保留了什么。63的计数是所有长度为五或更短的按键串:长度五的有32个,长度四的有16个,依次递减,直到空串。 用白话说 ## 刚才发生了什么 这个程序里没有任何心理学模型,也没有关于自由意志的任何东西。它只是记一本笔记。 每当你按下一个键,它就写下你之前按了什么,以及你接下来按了什么。不是记一次,而是在六种不同长度上同时记录。假设你最后五次按键是 F、D、D、F、F,然后你按了 D。笔记上新增六条记录:在`FDDFF`之后你按了 D;在`DDFF`之后你按了 D;在`DFF`之后你按了 D;在`FF`之后你按了 D;在`F`之后你按了 D;以及,完全忽略上下文,你按了 D。 你最后五次按键 F D D F F,然后按了 D ← 你刚做的按键 六条记录,一次写完: F D D F F → D D D F F → D D F F → D F F → D F → D 无上下文 → D **图版**一次按键,六条记录。笔记在每一种上下文长度上同时记录同一个事件,从完整的五键串一直到完全没有上下文。没有存储其他任何东西:没有时间信息,没有谁在赢的历史,没有对你的任何模型。 要猜你下一次按键,它反向阅读笔记。取你最后五次按键,然后问:我以前见过这个完全相同的串吗?如果见过,你接下来做了什么?如果它至少见过这个串两次,而你并没有两种行为做得一样多,它就回答你做得更多的那个。如果这个串是新的,或者它只见过一次,或者你两种行为做得一样多,那么它就缩短问题。那最后四次按键呢?三次?两次?一次?如果这些都失败了,它就抛一枚硬币,而这次抛硬币和任何其他猜测一样计入它的得分。 这种缩短是程序中唯一巧妙的地方,值得理解,因为大多数天真版本正是在这里犯错。一个长串是精确的匹配:它适用时告诉你很多信息。但在会话早期你还没有产生很多五键串,所以其中大多数只被见过一次,而单次观察不是证据,那只是巧合。一个短串更模糊但有远更充分的佐证。程序偏好它*见得足够多以至于可以信任*的最长串,当具体问题的证据不足时,就滑向更短但支持更充分的问题。 那本笔记就是你一直在与之对弈的那幅图。页面顶部的那些条带是机器问的六个问题叠在一起:你的最后五次按键在最上面,一直到底部的完全没有上下文——也就是你按过的每一次。每个条带中的每一粒就是一个你产生那个串然后按键的时刻。如果你在那个串之后按了 D,粒就落在中线左边;如果按了 F,就落在右边。所以条带有多宽说明机器知道多少,而它有多不对称说明它知道的是什么。 猜测从中间落下去。一个它从未见过的串是空条带,什么也没有。一个只见过一次的串是一粒,那是巧合而非证据。一个你跟 F 和跟 D 完全一样多的串是完美对称的,中间的裂缝是敞开的。猜测穿过所有这些,停在第一个既不空、也不稀薄、也不均匀的条带上——然后朝那个条带倾斜的方向倾斜。那个下落就是**回退(backoff)**。这是程序中唯一巧妙的地方,而它在你每一次按键时都在你面前发生。 注意条带越浅就越宽,而这不是绘图的选择。最上面的条带问的是一个精确的五键串,里面几乎没有东西;最底部的条带统计你按过的每一次。证据随着问题变得更具体而变薄,总是如此,而这正是机器必须愿意放弃最好的问题、去问一个更差的问题的全部原因。 注意这意味着什么。机器并不聪明,它也不在读你的心。它在反复问同一个问题:*上次情况看起来是这样的时候,你做了什么?*这一页上其他的一切,都源于你一直在回答这个事实。 **图2**你自己的笔记,来自你刚玩的那个会话。每一行是一个按键串;条形显示你跟 F 而不是 D 的频率。机器信任的行有标记。如果没有存储会话,这里显示的是一个示例,并有明确标注。 实际原理 ## 计数,以及知道何时该停下来 这本笔记的正式名称是 **n-gram 频率模型**。一个 n-gram 就是 n 个符号的序列。这里的符号是你的两个按键,所以长度五的串有 2^5 = 32 个可能,长度四的有16个,依次递减,直到空串,即你按过的每一次的总计数。 用 *c* 表示一串按键,称为*上下文*,*N*(*c*, F) 表示你在那串之后立即按 F 的次数。预测规则是:取与你近期按键匹配的最长上下文 *c*,满足 *N*(*c*, F) + *N*(*c*, D) ≥ 2 且 *N*(*c*, F) ≠ *N*(*c*, D), 然后回答 F 和 D 中较大的那个。如果没有上下文符合条件,就随机回答。当更长的上下文不可用或不可靠时,降到更短的上下文,这叫做**回退**,在统计语言建模中是标准做法,那里也出现了同样的问题:具体证据更好,但具体证据很稀有。 **回退** 偏好你见得足够多以至于可以信任的最长串 阈值为二在做真正的工作。没有它,一个只见过一次的串(1比0的计数)会压过一个见过四十次的两键上下文(30比10的计数),仅仅因为它更长。这就是经典的稀疏数据失败,它使模型比单纯计数更加嘈杂。 Aaronson 几乎就是用这些术语描述他的原始版本的。当被问到伯克利的那个程序做了什么时,他回答道: > 我不记得我当时是怎么想的了,但它可能有一个回退机制。我认为——我不确定——它可能在某个长度上做了一些类似"如果我看到的次数少于两次就回退"的事情。 注意那个措辞,"可能有"。他是在暗示回退,而不是在回忆它。我们的阈值和我们的回退是我们自己的选择,受他启发而做,并不是对他在那间阶梯教室里运行的程序的复原。 **图3**你会话中的一次真实预测,保持静止——这次是整本笔记,而不只是仪器正在问的那六个串。每个圆圈是一个机器记录的串,大小表示它出现的频率;高亮的路径是你最后五次按键;打了叉的圆圈是它放弃了的串;带圈的那个是猜测最终落脚的地方。 解读机器 ## 完整程序 下面是预测器的全部代码。不是摘要,不是为这篇文章整理过的版本,而是本页面在你玩游戏时加载并运行的那个文件。它只有几十行,它的短小本身就是这一课:这就是全部所需。 ```js // 正在从 oracle.js 加载... ``` **图4**预测器,从`oracle.js`加载,即本页面正在运行的同一个文件。 两个函数。`record`一次将一次按键写入所有上下文长度;`predict`从最长上下文走到最短,返回它信任的第一个。没有训练阶段,没有预先拟合的参数,除了在这一个会话中建立的计数之外没有对你的任何模型。它到来时一无所知。 关于我们的一切 ## 你为什么输了 这样一个小的程序不应该能做到这件事。它赢是因为你身上的某种东西,而那种东西已经被研究了几十年。 你被要求的任务——产生一个没有模式的序列——叫做随机序列生成,这是实验心理学中被研究得最多的失败之一。2023年的一篇综述不加保留地陈述了这一发现:"RSG研究的一个常见发现是,人们是差劲的随机数生成器。"[^7] 人们失败的最可靠方式,就是 Aaronson 顺带提到的那一种,他说玩家"交替太多"。同一篇综述称之为交替偏差:"避免重复,也叫*负近因效应*或*交替偏差*,可以观察到交替过多和重复选择被压制的现象。"[^7] 被要求随机时,人们切换太频繁、重复太少。一枚公平的硬币产生连续五次相同结果的频率比人们感觉可以接受的要高,所以模仿硬币的人会把这些连续段裁剪掉。 这比切换过多更深一层。一项研究分析了人们被要求随机时产生的序列,结论是他们"避免数字重复,并系统性地偏离数学随机性",而且结果"强调了一个复杂的……

相似文章

AI 智能体能否通过学习登顶?评估长期游戏智能体竞赛中的启发式学习

Hugging Face Daily Papers

论文提出了对抗式启发学习(AHL)范式,并介绍了 AAArena 基准。该基准包含 12 个真实对抗游戏和 1,920 个历史人类程序,用于评估 AI 智能体能否通过修改可执行策略,在长期游戏竞赛中达到顶尖水平。结果显示,Opus 5.5 搭配 Claude Code 获得了 6 枚金牌,但在规则复杂的游戏中表现较弱。

@snowboat84: https://x.com/snowboat84/status/2061962883651731602

X AI KOLs Timeline

本文是AI工程全景系列的上篇,从历史角度梳理了GPU从游戏显卡到AI加速器的演化、CUDA的豪赌、谷歌TPU的独立路径,以及英伟达为何最终胜出,详细剖析了芯片、供应链、网络、电力等AI基础设施的底层逻辑。