ZEN暴露根本“BUG”不能算半目 日本规则是缺陷
3月21日,2017世界围棋最强棋士战首轮比赛于日本大阪阪急国际酒店进行,其中焦点战中国芈昱廷对DeepZenGo的人机比赛,芈昱廷执黑第283手中盘取得了胜利。这一局进入官子阶段一度是极细微的半目之争,但是终局阶段DeepZenGo判断不清输赢,输定的情况下忽然调子打乱,开始胡乱落子,以致DeepZenGo团队不得不终止比赛认输。
DeepZenGo的开发者加藤英树说:“DeepZenGo进入后盘算不清规则的1目差距,所以形势判断只能出现错误。DeepZenGo忽然发觉要输了,就开始走不成立的手段。”
加藤英树关于DeepZenGo最后阶段的“填子”表现说:“DeepZenGo普通是会设定胜率降至30%以下自动认输,但这次比赛没有做这个设定,让DeepZenGo下到最后。而这一局DeepZenGo认输的时候,胜率判断是30%。”
这次大赛收到了日本媒体异乎寻常的关注,赛场云集记者,但是日本“围棋圈”外的媒体记者们似乎迷惑不觉“1目差距”究竟是什么,也难以置信计算机会算不清。加藤英树解释说:“中国规则的和日本规则,计算的方法基本相似,但本身具有1目的规则差距。包括DeepZenGo在内,大部分围棋人工智能程序都是按中国规则计算。”
加藤英树还说:“调整为按日本规则计算的工作绝不轻松。当然也可以硬性设定,但可能会导致更深刻的问题。据我了解,AlphaGo也出现过这个问题,并想办法解决。我听说最终还是解决了这个问题,但这只是未得到的传闻。”
芈昱廷赛后说:“中盘阶段我出现失误,形势一度危急。但是后盘,DeepZenGo暴露了需要改进的缺陷。”
DeepZenGo“先天不足”,“日本规则”本身是缺陷
事实上,这届世界围棋最强棋士战DeepZenGo“先天不足”,如果算不清这个1目或者半目,那么根本无法和人类职业棋手拼官子。对于人类棋手“半目”是“天堑”,但“机器”似乎对“半目”本身没有概念上的认识。只要这个“半目”的根本BUG存在,DeepZenGo剩余的两盘几无能赢的余地,DeepZenGo的实力远未达到能“碾压”人类棋手的程度。
同时,如此重大的人机大赛,采用计算机搞不定的“日本规则”贴6目半本身是缺陷。去年3月与AlphaGo的人机大战,采用的是“中国规则”。事实上写代码告诉计算机胜负,数目法很难解释不清楚,所以都用数子法的模式,但数子法意味着收后有1目,这是两种数法的根本分歧。但从围棋规则本源来说,数目法被证明是有问题。
涉及到两种规则贴目,黑棋究竟184子还185子赢是无法调和的问题。因为收后有1目,终局黑棋盘面6目,是黑棋收后。如果黑棋盘面7目,是白棋收后,这两种情况黑棋都是184子,贴7目半黑棋都是两负的结果。如果黑棋贴5目半,就不会出现此问题。但是日本规则贴6目半,就造出胜负的悖论。
包括DeepZenGo,价值网络学习棋谱都是数子法,虽然现在的日本规则也收后,但贴6目半的结果还是造成184子胜负的悖论,说到底,没有平衡手数概念的日本打补丁式的贴6目半的规则是计算机无法解决的根本性的BUG。
林在范对此评论说:“计算机做形势判断,不像人类那样算目,而是算胜率,而现有的蒙特卡罗算法,本身有无法算清终局半目胜负的问题。采用‘深度学习’方法后,价值网在算胜率,但DeepZenGo的形势判断好像没有做到精确。”
林在范还说:“加藤英树是这样说,DeepZenGo学习的棋谱是按中国规则输入,但这次大赛是日本规则,结果出现了问题。”
林在范最后还说:“其实大部分计算机围棋程序都面临这个问题,但‘半目’胜负对计算机是罕见的小概率事件,所以开发者们没有投入更多的时间解决这个问题,都忙着提高本身棋力。”
蓝烈