Repository navigation
这一版做了什么
把 AI 的走子评估从写死的 if/else 抽成「25 维特征 × 权重」的线性策略,参数可以在运行时替换;
配套一整套自对弈进化(RSI 式)闭环工具:
自对弈产数据 → 训练 → 跑分验证 → 晋升为新冠军 → 回到第一步
tools/SelfPlayData:自对弈,记录每个局面的根访问分布 + 每局胜负(RESULT)tools/Trainer:混合目标 = 策略蒸馏(拟合访问分布)+ 胜负策略梯度
(-pgWeight·outcome·log p(实际着法)),并把胜负按行棋方做优势归零去偏tools/MatchRunner:对局跑分(基线权重写死,避免「自己打自己」),带 Wilson 95% 下界tools/Evolve:主循环,含「开局不变量」硬闸门与 Wilson 下界晋升判据
实测结果(如实说明)
本轮进化没有产出比手写基线更强的参数:
| 候选改动 | 结果(9 路,150ms/手 或 60ms/手) |
|---|---|
| 自对弈蒸馏候选(16 局) | 10 : 6(62.5%) |
| 同一候选复核(48 局) | 21 : 27(43.8%) |
| 先验温度 3 / 5 / 14 / 24 | 30% / 30% / 45% / 46% |
| puctC 1.0 / 2.4 | 36% / 35% |
| 蒸馏+胜负梯度(未去偏,32 局) | 10 : 22(31.3%) |
| 蒸馏+胜负梯度(优势归零,32 局) | 14 : 18(43.8%) |
要点:
- 16 局的 62.5% 只是噪声,48 局复核掉回 43.8%;改用 Wilson 下界判据后这类候选会被直接拒绝。
- 胜负信号「去偏」是必须的:直接拿胜负当回报时,白棋胜率高会让所有白方局面吃正回报、
黑方局面吃负回报,而特征不含颜色;去偏后从 31.3% 回到 43.8%。 - 但 Wilson 下界在 32 局时需要约 65% 胜率才放行,而这类方法的一步改进通常只有几个百分点,
小样本下本就无法被证明。想看到真实增益,需要把自对弈规模提到成千上万局,并引入价值基线。
交付参数保持最初的手写基线(本版 APK 与上一版棋力相同,重点是进化/验收机制)。
自测 53/53 通过。
安装
下载 KayaGo-1.2.0.apk 直接安装(Android 8.0+)。