阿尔法go开发语言 阿尔法go开发语言是什么( 五 )


Julian Schritieser:感谢分享,这个主意很棒!我认为在围棋中这完全可以做到 , 或许可以用最佳应对和实际应对的价值差异或者政策网络给每一手位置评估得到的概率来进行?我有空的时候试一下 。
Q: 既然AlphaGo已经退役了,是否有将其开源的计划?这将对围棋社区和机器学习研究产生巨大的影响 。
还有,Hassabis在乌镇宣称的围棋工具将会什么时候发布?David Silver:现在这个工具正在准备中 。
不久后你就能看到新的消息 。
Q:AlphaGo开发过程中,在系统架构上遇到的最大障碍是什么?David Silver:我们遇到的一个重大挑战是在和李世石比赛的时候 , 当时我们意识到AlphaGo偶尔会受到我们所谓的“妄想”的影响,也就是说,程序可能会错误理解当前盘面局势 , 并在错误的方向上持续许多步 。
我们尝试了许多方案 , 包括引入更多的围棋知识或人类元知识来解决这个问题 。
但最终我们取得了成功 , 从AlphaGo本身解决了这个问题 , 更多地依靠强化学习的力量来获得更高质量的解决方案 。
围棋爱好者的问题Q:1846年,在十四世本因坊迹目秀策与十一世井上幻庵因硕的一盘对局中,秀策下的第127手让幻庵因硕一时惊急两耳发赤,该手成为扭转败局的“耳赤一手” 。
如果是AlphaGo,是否也会下出相同的一首棋?Julian Schritieser:我问了樊麾 , 他的回答是这样的:当时的围棋不贴目,而AlphaGo的对局中,黑棋需贴7.5目 。
贴目情况不同造成了古今棋局的差异,如果让AlphaGo穿越到当年下那一手 , 很有可能下的是不同的另一个地方 。
Q:从已发布的AlphaGo相互对局看,执白子的时间更为充裕,因...
AlphaGo这个系统主要由几个部分组成:走棋网络(Policy Neork),给定当前局面,预测/采样下一步的走棋 。
快速走子(Fast rollout),目标和1一样,但在适当牺牲走棋质量的条件下,速度要比1快1000倍 。
估值网络(Value Neork),给定当前局面,估计是白胜还是黑胜 。
蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS) , 把以上这三个部分连起来,形成一个完整的系统 。
我们的DarkForest和AlphaGo同样是用4搭建的系统 。
DarkForest较AlphaGo而言 , 在训练时加强了1,而少了2和3 , 然后以开源软件Pachi的缺省策略 (default policy)部分替代了2的功能 。
以下介绍下各部分 。
1、走棋网络走棋网络把当前局面作为输入 , 预测/采样下一步的走棋 。
它的预测不只给出最强的一手,而是对棋盘上所有可能的下一着给一个分数 。
棋盘上有361个点,它就给出361个数 , 好招的分数比坏招要高 。
DarkForest在这部分有创新,通过在训练时预测三步而非一步,提高了策略输出的质量 , 和他们在使用增强学习进行自我对局后得到的走棋网络(RL neork)的效果相当 。
当然 , 他们并没有在最后的系统中使用增强学习后的网络 , 而是用了直接通过训练学习到的网络(SL neork),理由是RL neork输出的走棋缺乏变化,对搜索不利 。
【阿尔法go开发语言 阿尔法go开发语言是什么】 有意思的是在AlphaGo为了速度上的考虑 , 只用了宽度为192的网络 , 而并没有使用最好的宽度为384的网络(见图2(a)) , 所以要是GPU更快一点(或者更多一点),AlphaGo肯定是会变得更强的 。
所谓的0.1秒走一步,就是纯粹用这样的网络,下出有最高置信度的合法着法 。

推荐阅读