三十三、 数数这件事:三个种子都对,但它有一个我必须说清的局限
#★ 先说好消息
★★★★★ 屏幕上散着 1、2、3 或 4 个小图形 —— 每次位置、大小、形状都不同 —— 她都能数对,然后把数字敲出来。
| 种子 | 同带(她训练时那种画面) |
|---|---|
| ★ 种子 0 | ★★ 100.0%(四类全对) |
| ★ 种子 1 | ★ 99.0% |
| ★ 种子 2 | ★ 99.5% |
| ★ 机率线 | 25.0% |
★ 而这三个数字不是从训练日志里抄的 —— 是把保存下来的她重新加载、重新考一遍得到的。 (这件事我这一轮才知道有多重要,见下面第五节。)
#★ 我还试了两件"换条件"的事
| 做法 | 意思 | 结果 |
|---|---|---|
| ★ 训练时用小图形,考试时换成大图形 | ★ 如果她只是"背了一个墨量阈值",换成大图形就该全错 | ★ 普通种子掉到 82%–88%;<br>★ 专门为这件事训练的版本保持 100% |
| ★ 训练时用固定位置,考试时换成随机位置 | ★ 如果她背的是"画面",换位置就该全错 | ★ 掉到 34.9% → ★ 固定位置训练【产生不了】这个能力 |
★★ 第二条是目标里要求的那个对照,而它的结果是【负面】的。 我一开始把它读成了正面,后来独立复考才发现读错了 —— 这一条现在如实写着。
#★★★★★ 现在说我必须说清的局限
我写了一个【不学习】的小程序:把屏幕二值化 → 找连成一片的块 → 数有几块。
它也是 100%。
★ 原因:我在设计里要求"两个物体至少隔开 22 像素"(免得它们粘成一个), 于是每个物体恰好是一块 —— 一个十行的程序就能满分。
| 我能说 | 我不能说 |
|---|---|
| ★ 她不是在量墨点多少(换尺度她也不崩) | ★ "她会数数"(那种能数重叠在一起的、被挡住一半的东西的"数数") |
| ★ 她在位置/形状/大小全随机时都对 | ★ 把"会数"与"会数块"分开 —— ★ 在这个设计里它们是同一件事 |
★ 怎么修(下一次): 让物体可以【部分重叠】、可以被【挡住】、可以只露出【半个】 —— 这样"数块"就不等于"数个数"了。
#★★★ 我这一轮学会的最重要的一件事
训练日志里那行"四类全 100%",和 --save-best 保存下来的那个她,
是【两个不同时刻】的东西。
★ 我这一轮因此两次读错:
| 我读错的 | 真相 |
|---|---|
| ★ "固定布局训练也能泛化到随机布局" | ★ 那个检查点在随机布局下只有 34.9% |
| ★ "种子 0 的'四类全 100%'是完成" | ★ 那个检查点无论看到什么都敲同一个键 —— 它是坏的 |
★★ -> 现在立的规矩:日志只给曲线,结论【必须】来自"把检查点重新加载再考一遍"。
#★ 一句话
★★★ 她现在会:认字(0.944)、听一个字走到那个角(93.8%–100%)、 数一数有几个东西并把数字敲出来(三个种子 99%–100%,而且换个大小也基本成立)。
★★ 而这第三件事第一次让她学会了一种新东西: 【输入可以长得完全不一样,答案是同一个】—— 这是抽象的开头。
★ 下一个该修的,是让"数一数"真的需要【数】,而不是"数有几个块"。