☰
CLEVR
2026/10/6 8:04:42 网站建设 项目流程

其实这篇 CLEVR 论文你只需要抓住一条主线:

作者的目标不是提出新模型,而是设计一个可控的数据集,用来判断模型到底会不会视觉推理。CLEVR_A_Diagnostic_CVPR_2017_paper.pdfPDF

1. Scene Graph:先把场景结构化

CLEVR 先随机生成场景,再用 Blender 渲染图像。每个物体都知道真实的:

物体之间还知道:

因此:Attributes=描述一个物体本身,Relations=描述物体之间的关系

这些信息共同构成 GT Scene Graph。


2. Functional Program:决定“这道题要怎么推理”

Scene Graph 只是告诉我们:场景里有什么

真正决定一道题测试什么能力的是Functional Program。

例如:

What color is the cube to the right of the yellow sphere?

可以表示成:

其中每一个 function 都可以近似看成一个:

推理步骤

复杂问题本质上就是把简单操作组合起来:

Compositional Question = 多个基础 reasoning operations 的组合

论文就是通过这些基本函数来构造复杂问题。


3. Question Family:控制生成哪种问题

作者先设计不同的Question Family,每个 family 包含:

Program Template 决定推理结构,例如:

Text Template 再把它变成自然语言。

所以可以简单记成:
Scene Graph 提供“问什么物体”
Functional Program 提供“怎么推理”
Text Template 提供“怎么说出来”

CLEVR 一共设计了 90 个 question families。


4. 生成问题时还要验证:真的需要这些推理吗?

作者会在 GT Scene Graph 上执行这个 program。

如果目标不唯一,例如:sphere 右边有三个 cube

那么问题属于:ill-posed question,直接丢弃。

如果整张图只有一个 cube,那么:

the cube to the right of the sphere

中的“right of the sphere”其实没必要,这就是:degenerate question,也丢弃。

因此 CLEVR 不只是生成“看起来很复杂”的问题,而是尽量保证:

问题声称需要某种推理 ⇒ 实际上也真的需要这种推理


5. 最后为什么它叫 Diagnostic Dataset?

因为每道题都有 Functional Program,所以作者知道:

用了什么 attribute、用了什么 relation、用了多少 reasoning steps、是 chain 还是 tree structure

这样模型答错以后,不只是知道accuracy 低,而是可以进一步判断它到底弱在attribute recognition还是 relation reasoning 还是 long reasoning chain、还是 compositional generalization

论文也发现,随着真正需要执行的 reasoning steps 增加,模型表现会下降

所以整篇论文可以最终压缩成一句:CLEVR 先控制 Attributes 和 Relations, → 再用 Functional Program 把它们组合成问题, → 从而精确控制并分析 Reasoning Steps。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询