三十一、 第三项能力:数数(她会数了)

★ 2.4k 字 · 源文件 进度.md 第 1500 行起 · goal ruler ground read memory

#★ 先说结论

★★★★★ 屏幕上放几个东西(1、2、3 或 4 个), 她能看一数,然后把那个数字敲出来 —— 四类【全部 100%】。

而这不是"认数字":认数字她本来就会(她认字 0.944)。 这里新的是【数量 → 符号】——同一个"3"对应无数种不同的画面。

#★ 为什么这件事很重要

"数量"是第一个真正的抽象。

之前的能力一个输入 →对应几个输出
认字一个字一个(就是这个字)
走位一个命令字一个(去那个角)
★ 数数★ 无数种画面★ 一个数字

★ -> 也就是说:她第一次学会了一件"输入可以有无数种样子,而答案是同一个"的事。 这是抽象的开始,也是"判断"最原始的形式。

#★ 怎么做的(用她能懂的话)

屏幕上散着几个小图形(小点、小方块、小三角,每次位置、大小、形状都不一样), 她要把它们的个数敲出来。

★ 判据与奖励是【同一件事】:敲对了就算对。 所以不存在"到过"和"到位"的差别,也不存在"目标格亮着给她提示"。

#★ 三个必须防的"作弊路"

这类任务最容易被三样东西替她做完,所以三样都要堵住:

她想走的路我们怎么堵
★ 背图案("这个画面 → 3")★ 每次位置全随机
★ 数量墨点("墨多就是多")★ 每次整体大小也随机
★ 从像素总数猜★ 见下面那条实测

#★ 一个我自己犯的错,被"盲策略对照"当场抓住

我第一版让【每个物体各自随机大小】。 结果:物体的平均大小随个数稳定下来,于是【总面积几乎正比于个数】—— 一个纯数像素的办法就能 100% 解出答案。

修前修后
面积/单物体面积 = 62.3%;墨量分箱 = 100%面积/单物体面积 = 50.2%;墨量分箱 = 34.8%

★ 修法:每屏抽一个"整体尺度",对所有物体同时生效 → 大图可以物体少,小图可以物体多,总面积不再跟随个数。

#★ 还发现一件事:"数物体"与"量总面积"没法用一个统计量分开

★★★ 物体是离散的,而"数量"就是"总面积 ÷ 单个面积"。 所以任何真要数物体的做法,都必须先估计"单个物体多大"—— 而那正是那个统计量在做的事。

★★ -> 所以正确的判据不是"盲策略必须失效",而是【换一个尺度分布再测】: 一个背下墨量阈值的解会崩,而真正在数的解只需要重新估一下尺度。

★ 这是我这条判据本身写错了,不是任务错(第 97 条教训)。

#★ 现在的读数(条件都标着)

臂条件读数
★ C_s0★ 随机布局、随机形状、随机尺度★ 步 200:逐 N 四类全 100%
★ LY_s0★ 训练固定布局 / 评估随机布局★ 步 200:四类全 100%
★ SZ_s0★ 训练半径 3–5 / 评估半径 5–7⏳ 步 100:N=1 95.2% N=2 85.0% N=3 37.0% N=4 100%
★ 未训练的她★ 同一批题★ N=1 71.4%,N=2/3/4 全 0%(均值 15.6%)
★ 机率线★ N 在 1..4 均匀★ 25.0%
★ 盲策略"永远说 k"★★ 25.0%

#★ 两句我最想记住的话

★★★ 第一句:LY_s0 是在【固定布局】上训练出来的她, 拿到【随机布局】下测,依然四类全 100%。 也就是说 —— 她根本不依赖布局。那是数量,不是图案。

★★ 第二句:未训练的她 N=1 就有 71.4% 而 N=2/3/4 全 0%。 如果我只报一个平均值(15.6%),这个结构就完全看不见了。 这就是"必须逐项报、不许只报均值"的道理。

#★ 这是本项目至今【最干净】的一个正面结果

我逐条检查了六个"可能替她完成的东西",六个都不存在:

那个反复坑我的东西在这个任务里
目标格高亮替她作弊★ 不存在
两个字同时可见 → 并行读字★ 不存在
4.0px 几何精度★ 不存在
48 刻时间窗★ 不存在
训练侧读数 ≠ 评估侧读数★ 不存在(成功判据就是"敲对了")
奖励与判据错配★ 结构上就是同一个条件

#★ 与"两个字序列"的对比

任务达到代价
两个字按顺序执行一对 100%、另一对 0%,末点退化约 30 轮排查,多目标未通过
★ 数数(数量→符号)★ 四类全 100%★ 200 步

★★★ -> 瓶颈不在"认符号"或"看",而在【同时保持好几个符号 / 好几步状态】。 这正好说明:她该先练的是"判断",而不是"背更多的表"。


← 返回《进度.md》目录