The learning rate was the real lever, not the network's size
We grew the YINSH game AI to a larger brain and discovered one hardcoded number had been silently defeating the idea before it got started.
9 posts tagged with yinsh. This index aggregates both frontmatter tags: entries and inline #yinsh mentions.
We grew the YINSH game AI to a larger brain and discovered one hardcoded number had been silently defeating the idea before it got started.
270 generations of self-play on one GPU. A bigger network and a stricter referee won; the cheap clever tricks lost; the next lever is a hardware upgrade, not another idea.
After I made the YINSH AI's practice cheap, the referee became the slow part. I diagnosed the bottleneck, built a careful fix, proved it correct — and it made zero difference. This is the story of why a flat performance curve fooled me, and how to ship an honest negative result.
The YINSH AI thought a win one move away and a win a hundred moves away were exactly the same thing. Fixing that — teaching it to prefer winning sooner — made it both stronger and cheaper to run, and taught me the value network is a search multiplier, not just a scorekeeper.
The YINSH AI spends two-thirds of its training time practicing against itself. Three planned changes cut that time — the biggest replaces 800 brute-force look-aheads per move with about 50 clever ones — under one hard rule: it must not get less creative.
At score 2:2, the staging YINSH bot had a guaranteed one-move win but chose a slower path — the diagnosis confirms value saturation, and a no-retrain MCTS-Solver fix cures it.
Three 12-hour GPU runs to beat the YINSH champion gen-077 — two dead-ends on more data and momentum, then a network twice the size won in two generations from scratch.
A bigger network beat the YINSH champion, then stalled. The next breakthrough wasn't size — it was making the AI search deeper before it learned — plus a performance trap that almost hid the win.
Six trained AI opponents were live, but the game menu showed only three. A missing line in a startup script hid the rest, until the menu became config-driven.