先锋 趋势 方法 投研 作者
机器如何学会忽略噪声(Kevin Ellis + Zenna Tavares)
返回节目精读

机器如何学会忽略噪声(Kevin Ellis + Zenna Tavares)

摘要

  • 本期的核心判断是,规模化和大规模模仿学习虽然强大,却不足以支撑那些必须从寥寥几次交互中适应环境的智能体。 Kevin Ellis 和 Zenna Tavares 希望系统建立在不确定性、因果性、抽象和推理之上,同时继续利用 GPU 与预训练模型。实际检验在于,智能体能否面对陌生网页、家电或机器人环境,通过“戳一戳、推一推、试一试”学会如何行动。

  • 真正的挑战不只是表达能力够不够强,而是如何在组合式表征打开的组合空间中找到方向。 可复用的基本单元让系统在熟悉的因果机制以新组合出现时实现外推,却也制造了 Elizabeth Spelke 所说的“组合心智的诅咒”:系统“强大到极致,也被可能性压得喘不过气”。实际难题在于学会引导搜索并获得良好表征,而不只是扩大假设空间。

  • 他们在 ARC 上的结果表明,与其寻找一条通用推理路径,不如组合多种推理模式。 2个80亿参数的 Llama 模型分担任务:归纳模型生成可用样例验证的显式 Python 函数,换元模型则在测试时适应后直接预测输出网格。有些问题适合系统性搜索;另一些问题一旦求解器试图把规则说清楚,表现反而变差,更适合依赖接近直觉的处理方式。

  • 显式程序的实际优势在于可检查、可修改,也更难过拟合。 Python 能自然表达循环、计数和重复性的确定性操作,而神经变换在一些难以程序化编码的混乱模式上表现更好。因此,他们倾向的方向既不是符号纯粹主义,也不是不透明的单体模型,而是打造更深层的表征,将神经网络的灵活性与程序化验证结合起来。

  • Wake/sleep 为从少量人类种子出发、扩展到适应任务的程序合成器提供了一条可规模化路径。 系统从大约10到100个由人类编写的程序出发,由 LLM“梦出”变体、运行这些程序,再训练逆模型根据行为推断程序;在现实问题上醒来后,系统会据此调整下一轮梦境的分布。Kevin 认为,这一方法的有效性明显超过他早期许多基于 lambda 演算的工作,同时保留了初始先验错误时继续适应的能力。

  • 有用的世界模型应当是多元且取决于用途的,而不是对像素的完美复刻。 相机可以被建模为一个拍照按钮、一块电路或一个传感器;资源限制和预期任务决定哪些细节值得保留。Zenna 将其称为“多结构化”,Kevin 则把抽象定义为“隐藏一部分细节,但保留一部分本质”。

  • Project Mara 是这一论点背后的具体3年研发载体。 Basis 这家非营利机构的项目覆盖建模、抽象、推理和能动性,围绕“日常科学”同时开发算法与交互式基准。项目已有资金支持,并正在招募研究人员和合作伙伴;其实际押注在于,智能体能否通过与陌生设备互动,建立并修正关于这些设备的模型。

精读

1. 规模化提供基础设施,但不是完整的学习算法

  • Kevin 关注的目标,是让机器学习系统从少量样例中获得抽象且可交流的知识,在远超训练分布的范围内泛化,并让符号结构与神经网络权重矩阵协同工作。他聚焦于人类仍然明显占优、当前 AI 相对薄弱的能力。

  • 他的立场并非反对规模化:算法应当利用新硬件、GPU 和预训练模型。但规模化“不是全部答案”,而其他实验室已经在沿着这条路推进,因此他们的研究选择将这些资源与认知科学和经典 AI 结合起来。

  • Zenna 将贝叶斯推断视为理想智能体应如何修正信念的规范性描述,而不是声称人类会进行精确推断。具体实现大概率是近似的;不确定性、因果性和推理分别提供一部分组件,但许多第一性原理层面的要素仍然未知。

  • 他们所对照的,是主流机器学习极其有效的“大规模模仿学习”。他们的科学与工程问题在于:智能是否也能从底层构建出来,依靠能够形成假设的机制,而不只是依赖海量示范。

2. 组合性既带来外推,也带来组合爆炸

  • Kevin 将组合性定义为:在一种情境中学会原子知识,再把这些原子重新组合成更大的结构,用于新的情境。当不断变化的世界反复使用相同的构件和因果机制时,组合性会发挥作用;但它不会让智能体瞬间胜任一个完全陌生的世界。

  • Elizabeth Spelke 所说的“组合心智的诅咒”概括了它的代价:组合语言可以容纳数量呈爆炸式增长的概念,包括大量严重偏离分布的概念,却不会自动告诉系统哪些在当下更可信。“你可以在某种意义上想出无限多的东西”,结果就是“强大到极致,也被可能性压得喘不过气”。

  • 对程序搜索进行学习式引导,并用神经网络实现基本原子,可能有助于压制这一诅咒。但不存在放之四海而皆准的基本单元:Python 可以被“以100万种方式拆解”,编程系统之间存在偏序关系,而语言的多样性也说明,针对不同问题和环境,可能存在一条由条件决定的 Pareto 前沿。

3. ARC 暴露出归纳与换元之间的真实分工

  • 他们的 ARC 系统使用了2个80亿参数的 Llama 模型。归纳模型生成大量显式 Python 变换,保留与训练样例一致的候选;换元模型则直接生成输出网格,并结合数据增强与换元式主动微调。集成系统先尝试经过验证的归纳结果,失败后再退回换元结果。

  • Zenna 将两个经常混淆的维度拆开:表征与类型签名。求解器可以用 Python 或神经网络来表征一个变换;与此同时,它既可以输出一个可复用的“网格到网格”函数,也可以直接把整道题映射为最终答案。

  • Kevin 将这种经验上的分工与认知科学联系起来:让人们仔细把规则说出来,可能会损害他们对统计关联或带例外规则的判断。ARC 也显示出类似分化——有时横扫数千个显式假设,还不如直接“脱口而出一个答案”。

  • 这个集成系统不需要训练一个路由器,因为符号假设可以在样例上执行。系统能够系统性搜索、排除失败的解释,再调用神经网络的直觉。他们的维恩图显示,两种模式各自解决了另一种模式遗漏的任务,而不是其中一种全面压倒另一种。

4. “思考”是一套程序,不是符号输出的同义词

  • Zenna 不接受为思考划出一条硬边界,并指出“现在人们说,思考就是 o1 做的事”。一个合理的核心定义,或许是能够逐步进行内部计算并修正信念;但符号表征和审慎推理程序仍是两个不同维度,可以以不同组合出现。

  • 缓慢形成假设可能需要可变时长的计算,由系统判断一个问题值得投入多少工作。ARC 的两种方法都没有完整捕捉这一过程:归纳仍然输出程序,换元则更直接地产出答案。推理是其中更窄的一种情形,即在现实世界的混乱环境中,基于已有知识形成结论。

  • Kevin 更偏好先做归纳,因为高层程序具有很强的正则化效果。一份清晰、可执行且符合样例的解释很难——尽管并非不可能——过拟合,也更可能比向量插值实现更好的泛化。神经系统最终可以在规模化训练中学到良好表征,但在小数据场景下并不稳定。

  • Zenna 提出的中间路线,是一种换元—归纳模型:其变换本身可以是神经网络,但仍能逐点应用,并在训练集上接受检验。更广义地说,神经符号编程可以让神经组件编码不规则变换,同时由经典组件提供结构与验证。

5. 表征决定了实践中什么能够被学会

  • Kevin 延伸了 AI 的旧格言——“无法表征的东西,就无法学习”:名义上可表征还不够,如果所用语言让搜索空间爆炸,学习依然不可行。一个狭窄的领域专用语言可以加入图灵完备的逃生通道,在形式上与 Python 等价,却仍可能因为目标程序太难找到而无法实际学习。

  • 在研究 DSL 和 lambda 演算之后,Kevin 发现,对于 ARC、智能体和视觉问答,Python“实用得多”,“比 lambda 演算强出好几个数量级”。软件工程语言已经通过趋同演化形成了许多有用结构,尽管换元结果表明,Python 仍无法优雅地覆盖所有任务。

  • Zenna 认为,类结构、类型结构和模块化结构都说明,语言的演化目标是支持构造,而不只是表达计算。AI 正在制造一个新的反馈回路——ChatGPT 调用 Python,Python 再调用 ChatGPT——让设计空间变得流动,而非已经定型。

  • 两人都倾向于迭代式元编程,而不是期待一次性得到正确程序。人类和科学都会提出假设、接触证据并修正假设;尚未解决的机制化问题,是当不存在廉价的终点目标时,如何奖励良好的迭代路径。Kevin 强调:“这一切很大程度上取决于能否检查自己是否正在朝正确方向前进。”

6. Wake/sleep 将合成程序变成自适应先验

  • Kevin 通过逆问题解释 wake/sleep:从三维结构渲染图像,比从图像恢复结构更容易。同样,系统可以想象一个程序、运行它、观察其行为,再学习反向映射:“当我看到这类行为时,就应当推断出这类程序。”

  • 关键在于交错进行。系统不是生成一批固定的合成数据,而是先做梦,再醒来解决真实问题,记住遇到的内容,并调整之后的梦境。如果系统原本预期程序都很短,却发现实际程序很长,后续睡眠周期就会向这一分布移动。

  • 梦境不应精确复刻清醒时的经验。组合语言可以把两个此前学到的原子拼成一个合理但从未见过的结构,为神经网络准备附近的可能性:“你实际上希望它们稍微超出”已观察到的分布。

  • 在 NeurIPS 的程序归纳工作中,大约10到100个人类编写的程序促使 LLM 生成相似代码;执行这些代码后产生合成行为,用于训练程序合成器。Kevin 说,这一神经化版本“有效得多”,超过了他博士阶段基于 lambda 演算的许多工作;完整的 wake/sleep 循环则会进一步让它适应已经解决的问题。

7. 库压缩过去,能动性检验因果真相

  • Zenna 将构建程序库视为一种带有当前价值和预期未来价值的缓存计算。可复用函数可以缩短今天的程序,但工程师构建库,也因为预计自己或他人未来会需要这类结构——这是一种可能可以用理性决策理论形式化的权衡。

  • DreamCoder 学会了显式的符号库;更新的系统则保留成功代码,再利用神经网络的上下文学习生成相关代码。Kevin 称其为一种可实现的“折中方案”,而不是放弃程序库:显式复用仍然有价值,但自动调试一整套由 AI 编写的库,远比调试单个程序困难。

  • 因果抽象必须接触现实世界。等价程序可以描述同一个静态函数,但拥有行动、目标和干预能力的智能体能够证伪关于因果机制的主张。在普通程序合成中,一个库只是有用或没用;在世界模型中,一次干预就可能证明它是错的。

  • Zenna 的 Autumn 项目根据人类轨迹,为交互式、类似游戏的环境合成源代码,其中包括随时间演化、无法直接观测的潜在状态。它的局限恰恰具有启发性:推断出的程序试图还原真实动力学,而不是进行选择性抽象;但实用智能必须懂得省略现实中正确的部分。

8. 不存在适用于所有目的的单一世界模型

  • Kevin 对抽象的共同定义是“隐藏一部分细节,但保留一部分本质”。lambda 表达式忽略具体变量值;因果抽象则把详细模型与一个丢弃部分机制、但保留关键内容的模型联系起来。

  • 抽象往往是在运行中构建的,而不是从某个唯一的真实层级结构中读取出来。Sora 或 Genie 风格的全像素系统保留一切信息;另一种做法是让奖励函数把有用抽象约束在支持规划的内容上,就像 MuZero 对奖励、策略和价值的预测。

  • Yichao Liang 主导的 Visual Predicator 将这一原则用于模拟机器人:机器人观察像素,同时学习关于工具和机制的抽象。Kevin 提出的更难问题是:当人们自由探索一个物体或应用、且没有被告知奖励是什么时,他们如何形成有用模型;内在动机,或对多种可能奖励都稳健的机制,或许能够提供帮助。

  • Zenna 给出的资源理性答案,是在预期任务与计算成本之间取得平衡。“不存在单一的世界模型”:相机可以是一个拍照按钮、一块电路或一个传感器。她暂称其为“多结构化”,即一种包含多个模型及其关系的表征——包括为什么 COVID 模型完全可以合理地忽略头发颜色。

9. 学习式先验应引导认识搜索,而不是变成 Frankenstein 系统

  • Kevin 希望避免由手工编码的表征和推理启发式拼成的“Frankenstein 系统”。第一性原理评估应当判断抽象是否服务于预期的推理任务,而预训练神经网络则充当提议机制,用常识直觉在本来难以处理的搜索空间中提出有希望的代码。

  • Zenna 保留了贝叶斯方法对先验的要求,但也接受“苦涩的教训”:当数据和算力足够时,不应手工编码每一种归纳偏置,让系统自行学习更好。先验也可以来自比互联网文本更丰富的证据,包括观察人类行动并据此推断信念。

  • 对 ARC 而言,Zenna 提议使用带空位的抽象程序:先推断某个物体发生了移动,但暂时不确定颜色如何变化,再测试不同的候选补全。Kevin 自己的过程则把感知层面的“去噪”与尚未成形的假设混在一起;人类犯错的方式不同于模型,说明当前系统可能遗漏了构建解法的重要动力学。

10. Project Mara 将 ARC 变成交互式科学问题

  • Zenna 提到,François Chollet 曾说 ARC 并不完美;他们的方案将基础性理念与“ARC hacks”混合在一起。她说,Chollet 认为只要以 ARC 数据集为条件,就可以不依赖互联网预训练,但实证上最强的方法至少部分依赖预训练。更干净的解法应当“简单而优雅”。

  • 防止基准过拟合的一种办法,是要求同一方法既能解决 ARC,也能解决相关但不同的领域。Python 擅长计数、循环以及对每个物体执行同一操作;神经网络则在一些人类难以轻松编程的变换上表现更好。反复更换随机种子确认了这一分工,但 Kevin 没有给出完整理论解释。

  • Project Mara 是 Basis 旗下为期3年的项目,覆盖建模、抽象、推理以及能动性或行动。它围绕“主动 ARC”同时开发算法和基准:模型仍然只能从极少数据中学习,但必须通过互动获得这些数据——“戳一戳、推一推、试一试”。

  • 其更窄的主题是“日常科学”:通过形成假设并选择实验,发现一台新微波炉、酒店空调系统、玩具、界面、网页或洗碗机如何运作。Basis 被描述为一家非营利机构;该项目已有资金支持,接受捐赠,并正在招募研究科学家、研究工程师以及来自大型实验室主流研究之外的合作伙伴。