Skip to content

KayaGo 1.2.0 · 自对弈进化框架

Latest

Choose a tag to compare

@ice-wocker ice-wocker released this 26 Sep 14:35
· 22 commits to main since this release

这一版做了什么

把 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+)。