AlphaZero:一套算法通吃围棋、国象、将棋
// TL;DR
- AlphaZero 用与 AlphaGo Zero 相同的配方拿下三种棋类,国象 4 小时超越 Stockfish。
- 对阵 Stockfish 的棋风惊人地“浪漫”:弃子、围困、长线布局。
- 从“围棋程序”到“棋类通用算法”,泛化才是这篇的题眼。
一鱼三吃
AlphaGo Zero 发表才七周,DeepMind 又放了个大的:AlphaZero。改动其实不大——把围棋特有的细节(棋盘对称性增强等)去掉,让算法更通用,然后同一套代码、同一组超参数,分别从零自学围棋、国际象棋、日本将棋。结果:训练数小时后,分别击败各自领域的最强程序(Stockfish、Elmo 和它哥 AlphaGo Zero)。
国际象棋圈炸了
最有戏剧性的是国象。Stockfish 代表着几十年人类工程的结晶:海量手工估值规则 + 每秒七千万次搜索。AlphaZero 每秒只搜八万个局面——少了三个数量级——靠神经网络的“直觉”把搜索预算花在刀刃上。更迷人的是棋风:它频繁弃子换取长线主动权,下出大量教科书会判为冒进的着法,赛后国象大师们的评价是“像人类浪漫主义时代的棋,但算度是机器的”。
搜索少三个数量级反而更强,这件事值得反复咀嚼:它说明“暴力计算”和“判断力”之间存在某种汇率,而学习可以大幅改善这个汇率。
题眼是通用
单看任何一种棋,都只是 Zero 故事的复述。三种规则迥异的游戏共用一套算法和超参——这才是宣言:这不是围棋程序,是一类问题的通用解法。封闭规则 + 完美模拟器的领域,从此可以宣告“已解决,只差算力”。