AlphaZero 五子棋实战(五):评估工具 —— 学会在错误的地方掉头

AlphaZero 五子棋实战(五):评估工具 ------ 学会在错误的地方掉头

这个系列的前四篇讲了配置、参数、机制、踩坑。最后这篇讲一件最容易被忽略、但决定了前面所有努力是否有效 的事:你怎么知道自己走错了?

强化学习里最贵的错误不是"训不好",而是"你以为训得很好 "。这篇文章给出一套完整的评估体系------从最不可信的 loss,到每代自动跑的探针体检,再到最终裁判实战 PK:15 个常规维度分 5 层 + 4 个深水区专项工具

全文约 7500 字。所有指标都有真实数据和判断标准,可以照着搭。

适合人群

  • 正在跑训练,但不确定"现在到底该继续还是该停"的人
  • 只看 loss 曲线做决策的人(看完可能会想改一下)
  • 想知道"怎么在训练到一半就发现方向错了"的人

你将收获

① 一套 15 维度 / 5 层的评估体系(从快到慢、从不可信到金标准),外加 4 个深水区专项工具(几何等变性 / 算杀纵深 / 动态探针 / 通道归因)

② 三个"指标骗人"的真实案例(loss 骗人 / 探针全绿骗人 / 单点骗人)

③ 探针设计的两个 OOD 坑(不避开,体检结果全是假的)

④ 一份可以直接照抄的评估清单和判读标准

目录

  • [1. 核心教训:loss 是自证预言](#1. 核心教训:loss 是自证预言)
  • [2. 第一层:探针(每代自动体检)](#2. 第一层:探针(每代自动体检))
  • [3. 第二层:激活率(比 loss 靠谱得多的健康指标)](#3. 第二层:激活率(比 loss 靠谱得多的健康指标))
  • [4. 第三层:PK 实战(终极裁判)](#4. 第三层:PK 实战(终极裁判))
  • [5. 四方互证:任何结论至少两方支持](#5. 四方互证:任何结论至少两方支持)
  • [6. 评估维度全景:15 个维度,5 个层级](#6. 评估维度全景:15 个维度,5 个层级)
  • [7. 三条铁律](#7. 三条铁律)
  • [8. 评估速查表(建议收藏)](#8. 评估速查表(建议收藏))

1. 核心教训:loss 是自证预言

这是整个项目最深刻的教训,如果不读这一节,前面所有训练经验都会用错方向。

1.1 铁证:loss 创新低,棋力垫底

v1 训练到第 91、92 代的时候,value_loss 降到 0.41------历史新低,看起来完美。

然后我们做了实战 PK,排名是:

复制代码
85 代 > 51 代 > 91 代

91 代的 loss 比 85 代更低,棋力却是三个里最差的。

1.2 为什么会这样

因为 loss 是在"自对弈自己生成的数据分布"上测的

随着训练推进,模型的棋风会固化 → 自对弈双方越来越像 → 输赢越来越接近随机 → loss 自然下降

但这个下降是自我印证的:

数据里已经学不到新东西了,loss 只是在一遍遍确认旧认知。

打个比方:一个学生反复做自己做过的题,分数当然越来越高------但这不证明他学会了新知识,只证明他把旧题背熟了。

1.3 还有一个更隐蔽的版本:loss 平坦也骗人

反过来也成立。有这么一段训练,loss 几十代完全平坦(既没涨也没跌),看起来是"训练停滞"。

但那段时间,同一批权重拿去跟外部的固定标尺打,战绩一直在涨。

所以:loss 既不能证明变强,也不能证明没变强。它只是一个参考量。

📌 纪律:报告训练状态时,loss 趋势必须搭配探针或 PK 验证。单独报 loss,等于报了个假消息。


2. 第一层:探针(每代自动体检)

既然 loss 不可信,那就自己造标尺:构造几个"胜负明确"的局面,看网络的预测方向对不对

2.1 七个探针局面

探针 期望 value 含义
黑活四 +1.0 黑四连两端开放,必胜
白活四 -1.0 白四连,黑必败
黑活三 +0.6 黑三连两端开放,优势
白活三 -0.6 白三连,黑劣势
黑冲四 +0.8 黑四连一端被堵,强威胁
白冲四 -0.8 白四连一端被堵
空盘 ~0 开局均衡

判读规则 :符号方向正确 + 幅度合理;空盘要求 |value| < 0.3

听起来简单?我们在这里踩了两次 OOD 的坑,第一次错了一个多月。

2.2 坑一:五连探针(训练数据里根本没有)

最早的探针里有"黑五连""白五连"。

结果这几个探针的 value 随训练越来越差(-0.35 → -0.78)。我们一度以为"网络退化了"。

真相:训练数据里**"已经成五连"的局面数量是 0**。

原因很简单:五子连珠的那一刻棋局就结束了 ,而我们的 trajectory 记录的是"落子前"的棋盘。所以网络从来没见过"棋盘上已经有五连"的样子

这种局面对网络来说叫 OOD(分布外数据)------你拿一个它没学过的东西考它,它答错是正常的,不代表它退化了。

修正:探针只能用训练数据里真实出现过的局面。

2.3 坑二:纯色探针(比五连坑更隐蔽)

改掉了五连,我们换了"黑活四"当探针------棋盘上放 4 颗黑子,形成活四。

但这 4 颗黑子旁边,白棋是零颗。

问题来了:真实的对局里,从来没有"棋盘上只有一种颜色"的局面。黑棋能形成活四,说明白棋早就下过很多手了。

纯色盘也是 OOD。

我们后来抓到了它造成的假象:

探针版本 v2 代40 结果 判读
纯色版(4 颗黑子,无白子) -0.425 health_log 标"✅"
交替版(主线 + 6 个对手散子) +0.301 翻车!

体检通过,实战判断却是反的。

还有个更细的发现:散子数量对结果影响巨大------黑活四的 value 随对手散子数从 -1.0 变到 -0.585。

也就是说,网络学的其实是**"棋盘上对手子多 = 对黑不利"这个粗信号**,而不是真的识别"活四威胁"。

2.4 正确的探针怎么造

复制代码
主线棋形(活四/活三/冲四)
  + 6 个随机对手散子(远离主线,黑白交替)
  + 取多组均值 ± 方差
  + 通过标准:方向正确 且 |均值| > 0.3

唯一原则:评估工具的输入分布,必须匹配模型真正面对的分布。

2.5 一个有意思的副产品:先学会冲四,后学会活四

网络的学习顺序是先会冲四,后会活四。原因是数据频率:

  • 活四是"瞬时状态"------一旦形成,对手立刻堵一头变成冲四,所以活四局面在数据里出现频率很低
  • 冲四是"稳定状态"------被堵的四连会一直保持,出现频率高

所以早期"活四探针判断反/震荡"是正常的 ,不要慌。要看冲四和活三先转正,作为早期信号。

v2 的探针转正轨迹:

黑冲四 白冲四 黑活四 备注
12 +0.32 ✅ -0.53 ✅ -0.32 ❌ 冲四先转正
13 +0.46 ✅ -0.51 ✅ -0.34 ❌ 冲四持续强化
14 +0.85 +0.25 +0.40 三探针同时转正
15 +0.79 ✅ -0.25 ✅ -0.49 ❌ 波动,但冲四稳定

14 代 就达到了 v1 巅峰期(85 代)都未必有的探针强度------这就是"每代体检"的价值:它让你在 14 代就知道方向对了


3. 第二层:激活率(比 loss 靠谱得多的健康指标)

除了探针,还有一类"参数层"的健康指标,最有用的是中层 BatchNorm 激活率

3.1 怎么算、怎么看

取中间几层残差块(res3-5)的 ReLU 输出,统计输出大于 0 的比例(即"有多少神经元在干活")。

3.2 实测:它比 loss 更能预测棋力

权重 激活率 value_loss PK 结果
代 51 69% 0.580 6:4 胜
代 75 48% 0.473(更低) ❌ 输

激活率高的那个赢了,尽管它的 loss 更高。

判读标准:

激活率 含义
43-47% 健康稳态(v2/v8 的长期水平),死通道 0
< 50% ⚠️ 神经元成批坏死,此时 loss 越低实战越弱

为什么神经元会坏死? 根因通常是数据多样性不足(不是模拟量不够)------这个结论从"把 value 头砍到 226 参数照样崩"的实验里也得到过侧面印证:问题在数据侧,不在容量侧。

3.3 还有一条更细的判据

参数标准差单调上升 = 正常学习(网络在形成越来越明确的结构)。

但如果参数 std 单调上升、同时行为却在退化 = "学歪了"------网络在往一个错误的方向上越走越远、越走越自信。

这个判据在 v6 it73-78 有过实测。


4. 第三层:PK 实战(终极裁判)

探针和激活率都是"间接指标"。两个权重到底谁强,只能靠实战对打。

但 PK 这件事本身也有一堆规矩,不然打出来的结果也是废的:

4.1 PK 五条方法论

# 规矩 为什么
1 分先赛制(先手 N 局 + 后手 N 局) 五子棋先手优势巨大,不分先就是在测运气
2 模拟量 ≥ 训练模拟量 见下面的"反转陷阱"
3 控制变量(同 MCTS / 同 greedy / 同 noise) 不然测的是配置差异
4 每局前 reset_mcts() 防止残树污染
5 局数 ≥ 10 3 局的噪声极大

4.2 模拟量匹配铁律(实测打脸)

这一条是硬规矩:

对局 sim=800 sim=200
v6 it20 vs v1 it20 8:12 负 16:4 胜

同一对权重,只换评测的搜索量,胜负完全颠倒。

原因:搜索量不足的时候,评估测的是 policy 的锐度,不是真实棋力。policy 先验"看起来聪明"的权重会在低 sim 下占便宜。

铁律:训练用多少 sim,评估就用多少 sim。

4.3 三个必须做的审计

这三个坑我们都踩过,每一个都能让 PK 结果完全失真:

审计项 会出什么假象
权重文件同名 结果 JSON 的 key 冲突,出现过"10:0 假象"
对局独立性 贪心模式会锁死重复对局(同执黑方 5 局完全同谱)→ 10:0 实际只是 1 局
记录与棋盘脱节 某个"预设开局"模式只改了棋盘数组没同步环境 → 非法落子假象

对策:权重文件名带版本后缀 + 逐局核对细目 + 看分边明细(执黑/执白分开解读)。

4.4 局数:为什么是 10 局起步

我们实测过 3 局口径的噪声:同一个 85 代,3 局可以 3-0 赢 51 代;而 91 代在同设置下 0-3 输。

3 局什么都说明不了。 后来的标准提高到 20 局/场(10 局口径实测有 1/6 概率结论反转)。


5. 四方互证:任何结论至少两方支持

把上面的东西组合起来,我们最终建立的体系是这样:

复制代码
① Loss 趋势      ------ 快,但不可信(自证预言)
② 探针(每代跑)   ------ 快、可信,自动体检
③ 激活率(每代跑) ------ 快、可信,参数层健康
④ PK 实战        ------ 慢,但终极可信(金标准)

规则:任何"训练变好了/变坏了"的结论,至少要两方支持。

标准诊断路径:

复制代码
loss 降了但 PK 输了
  → 先跑探针:是不是全反?(方向性问题)
  → 再看激活率:是不是 <50%?(神经元坏死)
  → 都不像 → 去查数据侧(分布/多样性)

这套路径帮我们定位过好几次"看起来很好其实很糟"的版本。


6. 评估维度全景:15 个维度,5 个层级

上面讲的是核心三层。后来我们把评估体系系统化成了 15 个维度、5 个层级------按"速度 vs 可信度"排列:

层 0:训练过程指标(快,不可信,仅参考)

指标 测什么 判读
policy_loss / value_loss 训练损失 只做趋势参考,绝不单独下结论
每局/每代耗时 训练速度 监控对局变长趋势
经验条数 对局长度 55-59 条 = 55-59 步(每步一条,别除以 2)

层 1:静态探针(快,可信,训练内自动跑)

① value 价值探针 ------见第 2 节。学习顺序:先冲四、后活四

② policy 探针(四类棋形方向)

类别 含义
黑攻 / 白攻 自己有棋形该不该攻
黑守 / 白守 对手有棋形该不该堵
  • 每类 4 个局面(活三横/竖/斜、冲四)
  • 通过线:关键点概率 > 8 × 随机基线(8/225 ≈ 3.55%)
  • ⚠️ 颜色语义坑 :黑守 = 白棋有威胁、黑棋去堵(主线要放白子)!写反了会把"白守"测成"黑守"

③ 网络健康度(参数层)

项目 判读
中层 BN 激活率 < 50% = 神经元成批坏死
有效秩(SVD) 单通道输出头有效秩恒 = 1 属正常;主干深层降秩(128→100)健康
权重移动速度 / std 趋势 std 单调升 = 正常;升但行为退化 = 学歪了

层 2:专项诊断(中速,下载权重本地跑)

④ 败局库检测(value 的唯一仲裁)

  • 素材:从 PK 输局里提取的 172 个局面(黑 92 + 白 80),站在输棋方视角
  • 指标:方向正确率 / MSE(对比 -1) / value 均值 / 黑白分项
指标 判读
MSE < 1.5 ✅ 好
1.5 - 2.5 ⚠️ 中
> 2.5 🚨 反向自信
均值偏正 败局乐观(错)
  • 历史基线:v6 it91 51.7% / v2 it202 37.8% / v8 it37 58.7%(历史最佳)
  • ⚠️ 败局库和体检可以完全背离 :v8 it33 体检 9/9 全绿 ,但败局库只有 27.3%(垫底) ------败局库才是 value 的真仲裁

⑤ 稀疏盲区威胁探针(6 局面,白视角)

  • 设计原则:黑白数量一样或差 1(贴合训练分布)
  • 测 value 方向:黑优局面在白视角应为负
  • 跨代曲线 = W 型振荡 :v6 it40 5/6 → it45-52 崩 → it64-70 恢复 → it79 0/6 全倒置 → it84-86 恢复
  • ⚠️ 崩盘谷的权重不要拿去 PK 判棋力

⑥ 稀疏盲区探针(9 局面,黑视角)------残留问题:对"3 颗孤子"有乐观偏置(判定"黑大优")。

⑦ Grad-CAM 威胁欠权分析

给 value 输出对中间层做梯度加权热力图,比较"威胁区域热力 / 全盘热力":

聚焦度 判读
> 1.3 ✅ 看到威胁了
< 0.8 ❌ 没看到

核心结论(v2/v6/v8 一致) :大多数局面下,CNN 提取是正常的 (聚焦度 1.3-1.8×),但 value 头把威胁信号"平均没了" ------

v8 it37 实测:某个"黑冲四 vs 白活二"局面,Grad-CAM 显示它明确看到了敌方威胁 ✅,但 value ≈ 0 ❌ ------"看到了但没用"

⚠️ 方法学纠正:这个分析必须用败局库里的真实败局,不能用自造的简单局面(简单局面复杂度低,聚焦度天然 7-8×,是假象)。

⑧ 威胁比分析

复制代码
威胁比 = |冲四局面 value| / |均势局面 value|
时期 威胁比
健康期(v8 it6-16) 2.85 - 4.59(对威胁反应远强于均势)
v8 it37 0.01(极端倒置:对最强威胁毫无反应,对均势给 -0.7)

它比"单项正确率"更敏感------正确率还有 3/6 的时候,威胁比可能已经崩到 0.01。

⑨ 做题准确度(固定题库)

准备一批"有明确正确答案"的题(给定局面问"该不该堵这个活三""top1 该落哪"),看网络命中率。这是最接近"考试"的静态指标

题库有两种口径:

口径 构成 用途
奇偶题集 20 道黑侧 + 17 道白侧 分侧专测(黑/白分开看)
混合题集 42-43 道混合 通用能力

历史读数 :v18 峰值 84.4% / v24 it73 72.5% / v36 it209 67.4%

⚠️ 口径混用陷阱(实测踩过):

有一次看到"奇偶题集黑侧 94% ,历史新高!",但混合题集整体只有 76.2% ------没超过历史最好的 81%

📌 单一口径的"新高"不等于全面飞跃。三个口径同时涨,才算真的涨。

⚠️ 第二个陷阱 :做题分数也会被"自对弈平衡"吸收------v36 后期做题平坦,但对 Rapfi 的战绩一直在涨。做题不是终点指标。

层 3:行为统计(中速,对局全量统计)

⑩ 快攻占比趋势

  • 定义:≤20 手终局的对局占比(全量统计,不看个别局)
  • v6 全量 2.8-3.4%(峰值代 9-12%,it80 达 14%)/ v8 约 0.7%
  • ⚠️ 解读陷阱:快攻上升 ≠ 好事 ------可能是双方防守都退化了(防不住就更快出五连)。必须配合威胁探针一起看

⑪ 白棋胜率与黑白平衡(最重要的健康指标)

定义:全量对局里白棋的胜率。目标带 45-55%。

为什么它是核心指标? 五子棋 15×15 无贴目,黑棋先手在强搜索下是必胜的(我们实测:两个强权重 sim800 对打,执黑 100% 机械必胜)。

所以白棋胜率是个警报器------一旦长期单边下滑,说明进入了**"数据单边化螺旋"**:

复制代码
黑赢多 → 白棋赢的样本少 → 网络学不到白棋怎么赢 → 白更弱 → 黑赢更多 ⟲

崩盘的典型读数 :白胜率掉到个位数

崩盘案例 白胜率读数
v33 it10 白 12% → it13 白 0%
v34 正常局 9% / 7% / 10%(三连崩)
v25 单代跳水 22pp

v36 的读数(健康态) :it0-194 稳定在 39-51%(中枢约 43%),近 290 代不崩。

🚨 必须分口径看(这里有过一次严重的"假健康"):

局类型 白胜率
v34 让手局 96% ← 看起来非常健康
v34 正常局 9% ← 真相是崩的

当时"总白胜率看起来还行",完全是被让手局拉高的。分口径统计是白胜率指标的强制要求。

观察线 :连续 3 代白率 < 35% 才触发干预(单代低点可能是脉冲,不要见风就是雨)。

⑫ 对局质量(中位手数 / 超短局占比)

为什么看这个?棋局太短说明双方在互相速杀,中盘根本没展开------训练数据的质量会整体下降。

实测(v35 温度热改前后):

指标 改前 改后
超短局(≤11 手)占比 42% 7%
中位手数 14 手 23 手

v36 长跑:中位手数 15-24 手。

📌 它是"先行指标" :对局变长 → 有质量的局面变多 → 棋力才可能涨。而白胜率是"滞后指标"------调完一个改动,先看手数有没有动,再等白胜率

⚠️ 口径 :用中位手数比"平均手数"稳(几盘超长局就能把平均值拖偏)。

⑬ 开局布局分析(天元率 / 中心率 / 边角率)

  • 天元率(首手下在 (7,7))/ 中心率(距天元曼哈顿距离 ≤ 3)/ 边角率(首手 top5 落在边角)
  • v6 全程:天元率 0.2-2.4% (≈没有)、中心率 5-17%、首手 top5 全在边角
  • 发现一个"出生病" :it0(随机权重)的边角率就是 70% ,而理论值应该 50%------多出来的 20% 是 UCB 搜索的锅(边角子树小、Q 方差小 → UCB 的探索奖励更快兑现)
  • 观察线:中心率 > 20-30% 才说明 policy 真的学会中心开局(v6 全程未达)

层 4:终极裁判(慢,最可信)

⑭ PK 对弈------见第 4 节。

⑮ 人机实战防守测试(最终验收)

  • 终极验收标准 = 能不能堵活四
  • 由来:v6 it86 探针 5/6 通过,但实战里活四不堵 ------ 探针全绿 ≠ 会下棋
  • 复现"这一步为什么不堵"的标准方法:重建局面 + 噪声双跑 + 候选点 value 对比

深水区专项工具(⑯-⑲:常规体检解释不了的时候用)

前面 15 个维度是"日常体检"。下面这四个是深水区工具------平时不跑,但当常规指标解释不了问题时,它们能挖出更根本的东西

⑯ D4 方向等变诊断:value 对几何变换一致吗

棋盘有 8 种对称变换(4 种旋转 × 2 种翻转 = D4 群 )。理论上,把棋盘旋转 90° 再喂给网络,value 应该完全相同

实测偏差(随机 10 局面 × 5 种变换):

项目 偏差
空盘 0.0000(平凡假象------旋转后输入完全相同,必然一样)
随机局面 value 均值 1.3-1.4,最大约 2.0
policy 0.013(近似等变)

同一局面旋转 90°,value 能从 +0.7 翻到 -0.9 ------ 完全反转。

而且这是全家族共性:

版本 等变偏差 收敛?
v1 早期 0.05-0.10 → it60 起 1.0+
v2 / v6 / v10 全程 0.84-1.55
v8 / v12 / v18 全程 0.97-1.63

没有一个版本收敛过。

⚠️ 这里有个必须避开的假健康陷阱:

时期 value 输出幅度 等变偏差 真相
v1 it10-40 0.04-0.07(接近常数) 0.05-0.10 "假等变"------网络根本没学会评估
v1 it60 0.555 1.04 学会评估了,方向捷径也来了

机制 :sim=50 时期自对弈质量差 → value 目标噪声大 → value 学不动(输出≈0)→ "不变"是平凡结果。等 sim 提上去、value 真学会评估局面,方向捷径同时出现

📌 判据:value 幅度 < 0.15 的"等变"是假健康;幅度 > 0.3 才有讨论意义。而且没有任何版本做到"既有信息量又保持等变"------"学会评估"的副产品就是方向捷径。

为什么 value 学不到等变?

  1. value 的监督强度比 policy 弱约 20 倍(MSE ~0.24 vs 交叉熵 ~5.0),等变约束形同虚设
  2. 标量任务天然走捷径------记住"上半部子多 = 黑优"这种方向统计就能压低 loss,不需要学旋转不变的表示
  3. 数据的方向分布本身就是偏的(开局偏好 → 搜索探索不均),提供了捷径信号源
    顺带挖出一个非常有用的区分:方差 vs 偏差
问题 性质 推理期技巧能修吗
D4 不等变 方差(同局面不同方向输出不一致) ✅ 能(8 方向平均)
攻守失衡 偏差(value 系统性对威胁惩罚不足) ❌ 不能

我们实测过 8 方向平均推理 :单方向判错(+0.638)的局面,8 方向平均后 -0.238,判对了 ✅。

放进 MCTS 一测:堵点访问率 1.88% → 1.13%,反而略降 ❌。

原因很清楚:那个局面的 root value 本来就判对了 (-0.83),MCTS 依然不堵------问题在偏差,平均修不了偏差。

结论:推理期 8 方向平均不值得做 (对防守无益,成本还 ×8,过度平滑还让搜索更散)。攻守失衡只能在训练侧修。

⑰ D60 / D80:败局识别深度(算杀纵深)

这个指标很直观:给网络一个已经输定的局面,看它要提前多少步才能"意识到自己要输"。

做法:从真实败局取局面,用当前权重跑 MCTS,看在末盘前第 N 步时搜索能否识别必败(N 越大 = 算杀越深)。

指标 我们的读数
D60 12-13 步
D80 7 步

最扎心的数据是:it165 到 it282,跨 117 代,D80 一直卡在 7 步零位移 (把 sim 翻 4 倍也一样)。

有意思的是,这个"停滞"后来被证明只反映算杀纵深,不代表整体棋力停止 (同期对 Rapfi 战绩一直在涨)。所以它的定位是:衡量"深度计算"这个特定维度,和 PK 的综合棋力互补。

⑱ 动态探针:Q 值探针 vs 败局库 MCTS

静态探针(单次前向)有个盲区:实战打的是"搜索后"的评估 (UCB 里 Q 项主导),静态测不到搜索协同。所以补两个动态探针:

Q 值探针 败局库 MCTS
测什么 候选点的后继评估(选点质量 / Q 初值) 整个局面的搜索后评估(局面判断)
怎么测 每个候选点先落子 → 对手视角评估 → 转回当前玩家 跑满 sim 的 MCTS → 根节点访问加权 Q
样本 5 个对杀局面 × 候选点(22 项) 217 个历史败局局面
强项 更敏感精细,能定位"哪个局面反了" 更贴近实战(真实败局 + 完整搜索协同)
弱项 样本小,噪声大(实测 91% → 77% 波动) 趋势可靠但粒度粗

分工:败局库 MCTS 看趋势(宏观局面判断),Q 值探针看细节(定位哪一步反了);两者同向时可信度最高,背离时以败局库 MCTS 为准。

⑲ 通道三件套:网络到底在读输入的哪一部分

当模型行为诡异时(比如"白棋死活不防守"),你需要知道它到底在看输入的哪一块。三个工具配套使用:

工具 测什么 判据
ch2 扰动 只翻转"颜色通道",看 value 变不变 Δ≈0 = 忽略该通道;Δ 大 = 依赖(实测训练早期 0.086 → 成熟期 0.45)
双视角反对称 同一局面从黑白视角评估,是否互为相反数 |均值| < 0.15 且 |max| < 0.5
头部分测 分别看 policy 头和 value 头对某通道的敏感度 敏感度可差 100 倍

第三个工具挖出了一个重要机制(v18 实测,把 ch2 翻掉后分别测两个头的 loss):

loss 变化 解读
value 头 0.152 → 0.339(涨 2.2 倍) 确实在读 ch2
policy 头 变化 < 0.4% 几乎无视 ch2

📌 共享主干的总体 loss 只能说明"整体在读某个通道",但两个头对同一个通道的敏感度可以差两个数量级------必须分头测。

顺带两个有意思的结论:

① policy 忽略 ch2 可能是"合理"的 ------ 五子棋规则黑白对称,预测落子确实不需要知道颜色;真正需要视角信息的是 value(判断谁优)。所以"policy 不看 ch2"不一定是缺陷,"value 白视角判反"才是真病。

② policy 有个固有倾向:自我中心 ------ 己方邻域的落子概率是"其他"位置的 1.5-8 倍,top5 落点绝大多数贴在己方或交界,极少主动贴对方 。也就是说:policy 的原始倾向是"哪里能扩张我的形状",防守并不是自发倾向。

这就解释了 v18"白棋弱"的完整机制链:

复制代码
policy 头:ch2 权重萎缩(不读颜色)→ 不知道"我执白" + 自我中心
         → 执白时依然优先发展自己,不堵黑
value 头:读 ch2 但拟合不足 → 对手斜四威胁判自己优(白视角判反)
MCTS:policy 不指路防守 + value 不报警 → 防守链条整个断裂 → PK 白败

7. 三条铁律

评估体系搭完之后,我们总结了三条贯穿始终的铁律:

铁律一:loss 是自证预言

loss 是在"自己生成的数据分布"上测的。它下降可能只是"越来越熟悉自己的棋风"。任何 loss 结论都必须搭配第二方证据。

铁律二:单点会骗人,集中趋势不会

这条我们是差点被骗才总结出来的:

有一次看到"某个权重的 policy 冒尖率 22.9% ",以为是突破。结果下一代直接归零------那是初始化噪声造成的假信号

单看一个 max 值会被骗。要看"多局面冒尖的频率"这个趋势。

铁律三:探针全绿 ≠ 会下棋

这一条来自一个很扎心的事实:能力是分层的:

复制代码
认识形状  →  静态评估  →  动态兑现  →  整局战略
(看到活四)  (知道该堵)   (真的去堵)   (知道为什么堵)

常规探针只测前 1-2 层。

铁证:v6 it86,探针 5/6 通过 ,但实战里活四摆在面前不堵------它认识形状、也知道该堵,但"动态兑现"这一层是断的。

所以最终验收永远是人机实战。


8. 评估速查表(建议收藏)

8.1 十五个常规维度一览

维度 速度 可信度 关键判读
0 loss 趋势 绝不单独下结论
0 对局/训练耗时 对局变长 = 健康信号
0 经验条数 ⭐⭐ 55 条 = 55 步
1 value 探针 ⭐⭐⭐⭐ 方向对 + |均值|>0.3;空盘 |v|<0.3
1 policy 探针 ⭐⭐⭐⭐ 关键点概率 > 8×随机基线(3.55%)
1 BN 激活率 ⭐⭐⭐⭐ < 50% = 神经元坏死
1 有效秩 / std 趋势 ⭐⭐⭐ std 升 + 行为退化 = 学歪了
2 败局库 ⭐⭐⭐⭐⭐ MSE <1.5 好 / >2.5 反向自信
2 稀疏盲区探针 ⭐⭐⭐⭐ 黑白数差 ≤1;W 型振荡
2 Grad-CAM ⭐⭐⭐⭐ 聚焦 >1.3 看到威胁;必须用真实败局
2 威胁比 ⭐⭐⭐⭐⭐ 健康 2.85-4.59;<0.1 = 崩
2 做题准确度 ⭐⭐⭐⭐ 多口径同涨才算涨;v36 it209 67.4%
3 快攻占比 ⭐⭐⭐ 上升可能是防守退化,别单看
3 白棋胜率 ⭐⭐⭐⭐⭐ 目标带 45-55%;必须分口径;连续 3 代 <35% 才干预
3 对局质量 ⭐⭐⭐⭐ 超短局 42%→7%、中位手数 14→23;是先行指标
3 开局布局 ⭐⭐⭐⭐ 中心率 >20-30% = 学会开局
4 PK 实战 ⭐⭐⭐⭐⭐ sim 匹配 + 分先 + ≥20 局
4 人机实战 ⭐⭐⭐⭐⭐ 终极验收:堵活四

8.1b 四个深水区工具

# 工具 什么时候用 关键读数
D4 方向等变 怀疑"评估不稳定/看方向" 偏差 1.3-1.4 = 不等变;幅度 <0.15 的"等变"是假健康
D60 / D80 算杀纵深 想知道"深度计算"这一维 D60 12-13 步 / D80 7 步;停滞 ≠ 整体停滞
动态探针 静态探针和实战结果不符 Q 值探针看细节、败局库 MCTS 看趋势
通道三件套 怀疑"网络没读某个输入" 分头测!policy 和 value 对同一通道可差两个数量级

8.2 探针设计三条纪律

# 纪律 违反后果
1 只用训练分布内出现的局面 五连探针 → 假"网络退化"
2 必须黑白交替 + 对手散子 纯色探针 → 体检 ✅ 但实战反了
3 多组取均值,不看单点 初始化噪声 → 假突破

8.3 诊断决策树(照着走就行)

复制代码
loss 降了但 PK 输了?
  → ① value 探针:是不是全反了?(= value 头崩)
    → ② 激活率:是否 <50%?(= 神经元坏死)
      → ③ 败局库:MSE >2.5?(= 反向自信)
        → ④ policy 探针:全局 ❌?(= 方向盘歪了)
          → ⑤ 威胁比:<0.5?(= 对稀疏威胁失活)
            → ⑥ Grad-CAM:聚焦 ❌ = 提取失败 / 聚焦 ✅ 但 value 错 = 综合失败
              → ⑦ 快攻占比 / 中心率:飞轮动没动?
                → ⑧ PK 终极验证(sim 匹配 + 分先 + ≥20 局)

每一步都在回答一个具体的"是不是",而不是笼统地看"效果好不好" ------ 这是这套体系最有用的地方:它把"训练好像不太行"这种模糊感受,变成一条可以走到底的排查路径。

8.4 监控节奏(什么时候跑什么)

体检不能全跑(太贵),也不能不跑(会瞎)。我们的节奏是这样:

频率 跑什么
每代自动(训练内置) value 探针 / policy 探针 / BN 激活率 / 死通道数 / loss
每代(日志统计) 快攻占比 / 中位手数 / 天元率 / 中心率 / 首手 top5
每 5-10 代(本地) 败局库 / 稀疏威胁探针 / 威胁比 / 参数趋势(权重 std、有效秩)
每 5-10 代(服务器) 败局库 MSE(与训练 loss 同单位,可直接对比)
异常代 / 关键节点 Grad-CAM / 通道偏爱 / 人机防守测试
决策点(不定) PK(分先 + sim 匹配 + 审计细目)

关键设计:越轻的越勤跑,越重的越少跑------每代跑的那几项几乎零成本,所以能在第 14 代就告诉你"方向对了";而 PK 很贵,只在需要下判断的时候跑。


写在最后

这一篇我想说的其实就一句话:评估工具的价值不是"证明你做对了",而是"让你在错误的地方早点掉头"。

这个项目里最贵的几次教训,都不是"跑不出结果",而是"跑了很久,还以为效果不错":

  • v1 的 loss 一路降到新低,但我们真正变强的是 85 代,不是 91 代
  • 探针一开始全绿,实战里却连活四都不堵
  • 有那么一批权重,静态指标全面向好,实战 PK 却打成 10:10 平

而每一次"掉头"的时机,都取决于你的评估工具有多早发现问题:14 代就发现方向对(探针),还是 80 代才发现方向错(实战)? 差别是几十个小时的算力和一整个版本的周期。

如果这篇能让你在自己的项目里早一点搭起这套体检,那它就没白写。

👍 五篇看完的朋友,给个赞吧

15 维度速查表 + 排查顺序,建议收藏

💬 评论区聊聊:你被哪个指标骗过?

🔗 **代码 & 全部对局记录在 Gitee:alpha zero gomoku

系列完。 感谢一路看到这里。

相关推荐
jbk33111 小时前
PixiuCut「视频批量分割」支持智能镜头分割、按时长、按数量分割,可定义最小时长避免无效片段等多可选参数可设置
人工智能·音视频·剪辑软件·剪映自动化软件
诺伦1 小时前
RiseClaw玄策:GEO优化工程实战,从零搭建生成式引擎优化体系
人工智能·chatgpt
星禾元亨1 小时前
企业 AI 落地 5 步路线图:诊断、企业知识库与 GEO 获客的工程化实施步骤
大数据·人工智能·自动化·创业创新
苏打水com1 小时前
内容合规红线:大模型生成内容,哪些能做哪些会犯法?
人工智能·安全·大模型
南京兴帝文化传媒有限公司1 小时前
本地生活服务商户GEO优化技术实践:AI大模型收录机制与地图POI权重算法拆解
大数据·人工智能·算法·生活·geo优化实操·csdn运营技巧·ai内容收录
2601_962293531 小时前
人工智能 & 神经网络完整入门路线(零基础可走,分阶段)
人工智能·python·深度学习·神经网络·机器学习
平原20182 小时前
AI 鞋履设计升级:一张主图与多角度详情图的生成流程
人工智能
人工智能时代 准备好了吗2 小时前
品牌更名后,旧名称与新名称的AI表现如何连续观察?
人工智能
慧一居士2 小时前
QoderWork 和 QoderWake 区别和使用场景对比
人工智能