作业 · 深度学习的数感能力
这份作业关注一个看似简单、实际上很能检验视觉系统的问题:图中有几个物体?人看到少量物体时,通常不需要逐个数就能立刻说出数量,这种能力称为 Subitizing,可译为“快速数感”或“瞬时计数”。
Subitizing 与普通计数
文献中常见的经验范围约为 1~4 个物体:人类反应时间增长很慢,像是并行感知了数量;物体更多后,反应时间会随数量明显增长,更像逐项计数。课程课件采用了“3~6 个项目以内”的定义,同时又写到多数人通常能轻松判断 1~6 个物体。这里保留两种口径,不把边界当作固定常数;刺激形式、排列和个体经验都会改变表现。
课件还用“七个靶子”的例子区分三条路径:有人能一眼认出 7,有人因经常打麻将而熟悉特定排列,更多人则把上方 3 个与下方 4 个相加。它们分别对应直觉数感、后天模板经验和显式计算,结果相同,内部过程却不同。
机器若真正学到了“数量”,应该满足一个关键要求:只要物体个数不变,形状、大小、颜色、排列和位置变化都不应改变答案。这比在固定数据分布上取得高分类准确率难得多。
为什么普通 DCNN 可能只是学了捷径
卷积神经网络善于提取局部纹理和形状特征,但“数出有几个连通对象”包含更强的全局与拓扑关系。训练集如果只包含固定大小、固定形状的点,网络可能利用以下捷径:
- 前景像素总面积;
- 边缘长度或纹理密度;
- 某些常见排列模板;
- 物体之间的典型间距;
- 特定形状与数量标签之间的偶然相关。
例如训练集中每个圆大小相同,两个圆的总面积约是一个圆的两倍。网络只需估计白色像素量就能答对,却没有学会“两个独立对象”。把圆换成面积不同的三角形,捷径马上失效。
因此,同分布测试集上的高准确率不能直接证明网络形成了数概念。真正有说服力的是受控的分布外测试:只改变一个因素,观察答案是否仍保持不变。
课件中的三组实验思路
改变形状、大小与颜色
第一组实验训练 DCNN 后,再改变刺激物的几何属性。课件整理的实验现象是:网络对训练分布内样本表现较好,但换形状、尺度或颜色后性能下降,对三角形等新形状尤其明显。

矩阵的行 是真实数量,列 是网络预测数量。课件报告的圆形与正方形矩阵相同,对数量 1~6 的对角线比例依次为 0.876、0.811、0.641、0.686、0.549、0.978;三角形则为 0.327、0.441、0.361、0.287、0.364、0.930。尤其在 1~5 个三角形上,错误常落到相邻数量,说明换形状后并没有保持稳定的“几个对象”表征。
这说明网络输出仍被低层视觉统计量牵着走。要验证究竟是哪种因素,可设计单变量对照:
| 测试组 | 数量 | 单个物体面积 | 总面积 | 形状 | 检验内容 |
|---|---|---|---|---|---|
| 基线 | 固定 | 固定 | 随数量变 | 圆 | 分布内能力 |
| 等总面积 | 改变 | 反向调整 | 固定 | 圆 | 是否依赖总面积 |
| 新形状 | 固定 | 匹配 | 匹配 | 三角形 | 形状泛化 |
| 新尺度 | 固定 | 改变 | 改变 | 圆 | 尺度泛化 |
只有在这些混淆因素被控制后,模型仍能稳定识别数量,才更接近真正的 numerosity 表征。
边缘归一化
第二组实验尝试先提取轮廓,让不同物体的内部纹理和面积差异减弱。直觉上,若每个对象只留下近似等宽边缘,模型就不容易靠“前景像素总量”作弊,而更需要利用边界与连通关系。
课件将边缘归一化概括为比实验一更好,但它展示的尺度混淆矩阵说明改进并不均匀:

图形放大 50% 后,对角线比例从数量 1 到 6 为 0.991、0.984、0.496、0.207、0.032、0.026;缩小 50% 后为 0.687、0.390、0.021、0.014、0.043、0.988。某些端点数量识别很好,中间数量仍大量偏到邻近类别,因此整体仍低于人类快速数感。原因可能包括:
- 大物体的周长仍比小物体长,低层统计量没有完全消失;
- 相邻物体的边缘可能粘连;
- 遮挡会让一个对象产生多个轮廓片段;
- 普通卷积和池化仍不显式表示“这是同一个对象”。
因此,预处理能削弱捷径,却不等于给网络装上了对象级计数机制。
固定形态学或拓扑算子
第三组思路是人工设计能够检测边缘、连通成分或拓扑结构的卷积核,再把结果交给学习器。固定算子利用了强先验,可能比端到端 DCNN 更容易在理想二值图上得到稳定数量。
但课件也指出:当希望普通反向传播自行学出这些特定核时,训练未必能收敛到预期解。原因不是“神经网络绝对学不会计数”,而是监督信号只告诉最终类别,能够完成训练集分类的捷径太多,优化器没有理由恰好找到我们心中的拓扑算法。
课件最后还提到一类简单的连接主义模型:改变训练集与测试集的性质,并加入预先定义的卷积算子,可以初步研究深度学习与认知能力之间的关系。它给出的边界很明确——普通 DCNN 并未自然实现 Subitizing,加入人工算子后效果改善,说明结构先验在起作用。除视觉数量外,还可把手势与数词联合起来研究“手指如何帮助学习计数”,把数感扩展为视觉、动作和语言共同形成的表征。
怎样做一个更严谨的数感实验
数据划分按生成因素进行
不能只随机打散同一批模板。应把某些形状、尺度区间、排列方式完整留给测试集,例如只用圆和方形训练、只用三角形测试。
同时报告准确率和行为曲线
除分类准确率外,还可以观察:
- 数量误差是否随真实数量平滑增加;
- 相邻数量是否更容易混淆;
- 置信度是否在分布外样本上合理下降;
- 表征空间能否按数量聚类,而不是按形状聚类。
建立简单基线
至少比较前景面积、边缘长度、连通域计数与 DCNN。若一个“总像素数 + 阈值”的方法就能达到同样准确率,复杂模型很可能没有学到更抽象的能力。
做反事实样本
构造总面积相同但数量不同、数量相同但总面积悬殊的图像。反事实测试能直接揭露模型在用“数量”还是“面积”。
从作业得到的结论
这份课件所引用和整理的实验,更适合支持以下谨慎结论:
- DCNN 可以在特定训练分布上学习数量分类;
- 它的跨形状、跨尺度泛化并不天然可靠;
- 边缘归一化与形态学先验能减少部分低层捷径;
- 端到端准确率不等于模型获得了人类式抽象数概念;
- 判断“是否会数”,关键是控制变量和分布外泛化,而不是只看一张测试集成绩表。
这也是机器学习实验设计中很通用的一课:模型答对了,不代表它按我们设想的理由答对了。
课件参考文献
- Xiaolin Wu, Xi Zhang, Xiao Shu. Cognitive Deficit of Deep Learning in Numerosity. AAAI, 2019, 33: 1303–1310.
- Xi Zhang, Xiaolin Wu. On Numerosity of Deep Neural Networks. NeurIPS, 2020.
- Vivian Milagros De La Cruz et al. Making Fingers and Words Count in a Cognitive Robot. Frontiers in Behavioral Neuroscience, 2014, 8: 13.
- Marek Rucinski, Angelo Cangelosi, Tony Belpaeme. Robotic Model of the Contribution of Gesture to Learning to Count. ICDL, 2012.