抽象推理(Abstract Reasoning)—— 三级教程
一、入门级:像侦探一样找规律 🔍
Section titled “一、入门级:像侦探一样找规律 🔍”想象你是一个小侦探。桌上摆着三张卡片:
- 第一张:一只黑猫
- 第二张:一只黑狗
- 第三张:???
你会填什么?一只黑色的动物,对吧?比如一只黑马或者一只黑色的兔子。
这就是抽象推理。
你并没有见过什么「黑猫、黑狗、黑马」的规则书,但你自动做了一件很厉害的事——你从两个具体的例子中,找到了隐藏的规律,然后用这个规律去预测下一个答案。
再举个例子。假设你看到这样一串图案:
三角形(1个) → 三角形(2个) → 三角形(3个)
下一张卡片上画的是什么?你肯定脱口而出:四个三角形。但注意——没人告诉你「每次多加一个三角形」这条规则。你的大脑自动发现了这个模式。
抽象推理就是:不看表面,看本质,找规律,做预测。
这件事对我们来说很自然,但对计算机来说却超级难。因为计算机擅长的是「记住答案」,而不是「发现规律」。你可以教会计算机三角形的面积公式,但如果你给它一组全新的图案,它可能完全不知道该怎么做。
所以,抽象推理被认为是衡量一个人(或一个 AI)有多聪明的重要标准之一。能从少量信息中快速发现规律的人,通常在数学、科学、编程方面都很有天赋。
💡 小挑战:圆-方块-圆-方块-? 答案是圆。你刚才又做了一次抽象推理!
二、中级:从模式匹配到泛化能力 🧮
Section titled “二、中级:从模式匹配到泛化能力 🧮”在计算机科学中,抽象推理的核心问题是 泛化(Generalization):系统能否将训练中学到的规则应用到从未见过的新情况上?
给定一个函数映射 f: X -> Y,你手头只有有限的样本 {(x1, y1), …, (xn, yn)}。抽象推理要求你推断出 f 的生成规则(而非仅仅拟合数据),然后正确预测 f(xn+1),其中 xn+1 在分布上可能与训练样本有显著差异。
这和传统机器学习的思路存在根本张力:
- 传统 ML 追求在 i.i.d.(独立同分布)假设下最小化期望损失。只要测试数据和训练数据来自同一分布,模型就能表现良好。
- 抽象推理 要求的是 OOD(Out-of-Distribution)泛化,即面对全新的输入模式时仍然能正确推理。这远比 i.i.d. 泛化困难。
为什么这对 AI 很重要?
Section titled “为什么这对 AI 很重要?”当前深度学习的成功大量依赖 规模:更大的模型、更多的数据、更多的算力。但这种方法有一个脆弱的假设——测试时的分布不能偏移太多。ChatGPT 可以写出漂亮的 Python 代码,但如果把编程语言的语法规则彻底换一套,它就束手无策了。
抽象推理能力被视为通向 AGI(通用人工智能) 的关键门槛之一。一个真正智能的系统应该能像人类一样:用几个例子学会新规则,并在完全新的场景中运用它。
抽象推理在以下场景中至关重要:
- 少样本学习(Few-shot Learning):只给 3-5 个例子就能学会新任务
- 程序合成(Program Synthesis):从输入输出样例推断出背后的程序
- 科学发现:从有限的实验数据中提炼物理定律
💡 想象一下:如果你学过排序算法,那你应该能对任何可比较的数据进行排序——字符串、日期、自定义对象。这种「学会规则而非记住答案」的能力,就是抽象推理在编程世界中的体现。
三、高级:ARC 基准、智能测量与开放挑战 🧬
Section titled “三、高级:ARC 基准、智能测量与开放挑战 🧬”Chollet 的智能测量理论
Section titled “Chollet 的智能测量理论”François Chollet 在 2019 年发表的论文 “On the Measure of Intelligence” 提出了一个根本性的问题:我们应该如何定义和测量机器智能?
他的核心论点是:智能不在于技能的积累(skill-acquisition),而在于 将先验知识和经验高效地转化为新技能的效率。形式化地说,智能衡量的是一个系统在面对前所未见的任务时,能多快、多好地找到解决方案。
Chollet 指出,传统的 AI benchmark(ImageNet、SQuAD 等)存在严重的任务特定性(task-specificity) 问题——它们测的是「在某一个固定任务上训练后表现多好」,而不是「面对全新任务时适应多快」。这就像用「背下了一本字典」来衡量一个人的语言能力一样荒谬。
ARC(Abstraction and Reasoning Corpus)
Section titled “ARC(Abstraction and Reasoning Corpus)”ARC 是 Chollet 为这一理论设计的具体 benchmark:
- 400 个训练谜题 + 600 个测试谜题(其中 400 个公开用于开发)
- 每个谜题由 3-5 个 输入-输出网格对(grid pair)组成
- 网格尺寸最大 30×30,值域为 0-9 的颜色
- 任务是:从少量样例中推断变换规则,然后应用到测试输入
ARC 的设计原则体现了 Chollet 对智能测量的要求:
- 对抗记忆(Anti-memorization):每个任务在训练和测试中都是独特的,不存在可以通过记忆解决的问题
- 人类友好(Human-friendly):人类在每道题上几乎不需要背景知识,仅凭视觉推理即可解决
- 组合泛化(Compositional generalization):规则是基础原子的组合,但组合方式千变万化
当前 SOTA 方法
Section titled “当前 SOTA 方法”截至 2025 年,ARC 的解决率(公开集)大致如下:
- 人类:≈85%(普通成人,无时间限制)
- 纯神经网络方法:≈20-30%(大模型 + 提示工程,如 GPT-4o、Claude 3.5)
- 神经符号混合方法:≈40-50%(如 DreamCoder 风格的程序搜索 + LLM 引导)
- 程序合成方法:≈50-60%(如基于 DSL 的搜索、抽象推理网络)
2024-2025 年的突破主要来自两个方向:
LLM + 代码生成:利用大型语言模型将视觉网格转换为代码描述,然后生成候选程序并验证。这种方法的优势是利用了 LLM 的语言先验,但面临幻觉(hallucination)和搜索空间爆炸的问题。
认知架构(Cognitive Architectures):如 MindsAI 等团队提出的分层推理框架,将抽象推理分解为多个子步骤(模式检测、关系提取、规则假设、验证),通过模块化设计提升可靠性。
核心开放挑战
Section titled “核心开放挑战”-
分布偏移问题:ARC 测试集故意引入了训练集中不存在的对象形状、颜色组合和规则类型。如何实现真正的系统 2 推理(System 2 reasoning)而非模式匹配?
-
搜索与规划的权衡:程序合成的方法在 ARC 上受限于巨大的搜索空间(可能的程序数量随网格大小指数增长)。如何设计高效的启发式搜索?
-
核心知识体系(Core Knowledge):Chollet 提出智能系统需要一组先天的认知原语(如对象恒常性、几何直觉),但如何形式化并注入这些原语仍是开放问题。
-
评估方法论:ARC 本身也在演进。ARC-AGI-2 基准增加了更复杂的规则和更大的网格,持续推动着领域前沿。我们甚至还不确定「解决 ARC」是否足以代表真正的抽象推理能力。
-
从感知到推理的鸿沟:当前方法在网格世界的「感知」环节(将像素映射到结构化表示)仍远不够鲁棒。如果连网格中的对象都识别不好,再好的推理引擎也无济于事。
💡 一个值得深思的问题:如果一个系统通过暴力搜索在 ARC 上达到了 90% 的准确率,但它用了 10^15 次 API 调用——这算「智能」吗?Chollet 的框架告诉我们:效率本身就是智能的核心组成部分。