Skip to content

Releases: ice-wocker/KayaGo

KayaGo 1.2.0 · 自对弈进化框架

Choose a tag to compare

@ice-wocker ice-wocker released this 26 Sep 14:35

这一版做了什么

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

KayaGo 1.1.0 · AI 明显变强 + 界面重做

Choose a tag to compare

@ice-wocker ice-wocker released this 26 Sep 13:19

下载

KayaGo-1.1.0.apk(约 68 KB)— Android 8.0+,手机上下载后直接安装(需允许「安装未知来源应用」)。

这一版改了什么

AI 棋力(有跑分证据,不是凭感觉)

先说清上一版为什么弱:纯 UCT 在空盘和稀疏局面下胜率几乎是纯噪声,
而旧版只把启发式打分用来筛候选、没当成先验,所以它会在开局随手走二路这种废棋,
中盘也常常在几个差不多的点之间乱选。

这一版做了三件事:

  1. 根节点 PUCT + 启发式先验——把棋理打分(提子/救棋/自紧气/连络/线位/与前手距离/
    角部着点)softmax 成先验分布,按 Q + c·P·√N/(1+n) 选择。开局现在会自然占角。
  2. 根节点 RAVE / AMAF——推演窗口内出现过的着法也算一次访问,访问数少时更可靠。
  3. 推演回报改为「按分差折算胜率」——非胜即负的回报在一边倒局面下所有着法都挤在
    0/1 附近,搜索分辨不出好坏;分差回报能区分「输 3 目」和「输 20 目」。

跑分结果(tools/MatchRunner,两组配置互相对弈、每局交换黑白,9 路 150ms/手):

  • 新引擎 vs 旧版纯 UCB1:12 : 4(75.0%)
  • 分差回报单独贡献:6 : 4

另外新增了回归测试:空盘第一手不得走一路/二路。

界面(观感重做)

  • 自绘木纹渐变棋盘 + 三层柔和阴影、立体棋子(渐变/投影/高光)
  • 坐标标注、星位、最后一手标记、落子 140ms 缩放淡入动画、触感反馈
  • 顶部棋手卡片:执黑执白、提子数、行棋方高亮、AI 思考进度条
  • 底部图标操作栏(自绘 vector 图标,思考时自动禁用)
  • 新对局设置合并成单个分段选择对话框;形势判断与终局结算改成自定义对话框

规则内核

  • 位置超级劫统一由 Board 维护
  • 落子只重算自己这块棋的气数、撤销只在必要时才做连通性检查,性能翻倍
  • 自测 53 项断言全部通过

仍然是同一个诚实的提醒

引擎是从零手写的传统 MCTS,没有神经网络、没有权重文件。
9 路大约业余级位水平,13/19 路明显更弱。想「最强」请用 KataGo。

想让它更强:把「AI 棋力」调到最高档(9 路约 12 秒/手,19 路约 17 秒/手)。

安装包校验

SHA-256  bf854b02c868f409250d763c954ea41083d9420ee65eb8c0b2e40e195623cdc2

源码

https://github.com/ice-wocker/KayaGo

KayaGo 1.0.0 · 可直接安装的围棋 AI

Choose a tag to compare

@ice-wocker ice-wocker released this 26 Sep 12:31

下载

KayaGo-1.0.0.apk(约 40 KB)— Android 8.0+,手机上下载后直接安装(需允许「安装未知来源应用」)。

这一版有什么

  • 9 / 13 / 19 路棋盘,5 档 AI 棋力(0.4 秒 ~ 8 秒/手)
  • 执黑 / 执白任选,人机对弈
  • 悔棋、停一手、认输、新局
  • 提示:让 AI 给出建议着法并标在棋盘上
  • 形势判断:随机推演 600 局估算领先子数,并标出已确定的归属
  • 中国规则数子、禁止自杀、位置超级劫
  • 零第三方依赖,纯 Java 绘制界面;整个安装包约 40 KB

棋力说明(请先读)

AI 是从零手写的传统 MCTS 引擎:没有神经网络、没有权重文件、没有人类棋谱训练。

  • 9 路:大约业余级位水平,初学者到入门爱好者可以一战
  • 13 / 19 路:搜索空间大得多,棋力明显弱于 9 路,适合休闲

它不是 KataGo / Leela Zero 那种职业级引擎。要「最强」请用 KataGo。

安装包校验

SHA-256  232194ba35aca87f69bbb9b0635f5112471307a76dca96afc83906510515d634

源码

https://github.com/ice-wocker/KayaGo

自测

仓库内 tools/EngineSelfTest.java 覆盖 50 项断言(提子、禁止自杀、劫与超级劫、
真假眼、数子、随机落子+逆序撤销一致性、形势判断、AI 能否吃掉被打吃的大龙、AI 自对弈),
全部通过。