AlphaGo分析

来源:互联网 发布:爱剪辑mac能用吗 编辑:程序博客网 时间:2024/05/16 05:50

AlphaGo总体上包含离线学习(图的上半部分)在线对弈(图的下半部分)两个过程。

离线学习过程分为三个训练阶段。

第一阶段:利用3万多幅专业棋手对弈的棋谱来训练两个网络。一个是基于全局特征和深度卷积网络(CNN训练出来的策略网络(PolicyNetwork。其主要作用是给定当前盘面状态作为输入,输出下一步棋在棋盘其他空地上的落子概率。另一个是利用局部特征和线性模型训练出来的快速走棋策略(Rollout Policy。策略网络速度较慢,但精度高;快速走棋策略反之。

第二阶段:利用第t轮的策略网络与先前训练好的策略网络互相对弈,利用增强式学习来修正第t轮的策略网络的参数,最终得到增强的策略网络。这部分被很多砖家极大的鼓吹,但实际上应该存在理论上的瓶颈(提升能力有限)。此过程类似2个6岁小孩不断对弈,其水平达到的程度也会有限。

第三阶段:先利用普通的策略网络(第一阶段生成的策略网络,未通过第二阶段的提升过程)来生成棋局的前U-1(U是一个属于[1,450]的随机变量),然后利用随机采样来决定第U步的位置(这是为了增加棋的多样性,防止过拟合)。随后,利用增强的策略网络(PolicyNetwork,通过第二阶段的提升过程)来完成后面的自我对弈过程,直至棋局结局分出胜负。此后,U步的盘面最为特征输入,胜负作为label,学习一个价值网络(Value Network),用于判断结果的输赢概率。价值网络其实是AlphaGo的一大创新,围棋最为困难的地方在于很难根据当前的局势来判断最后的结果,这点职业棋手也很难掌握。通过大量的自我对弈,AlphaGo产生了3000万盘棋局,用来训练价值网络。但由于围棋的搜索空间太大,3000万盘棋局也不能帮AlphaGo完全攻克这个问题。

 


 

在线对弈过程包括以下5个关键步骤:其核心思想实在蒙特卡罗搜索树(MCTS)中嵌入了深度神经网络来减少搜索空间。AlphaGo并没有具备真正的思维能力。

根据当前盘面已经落子的情况提取相应特征;

利用策略网络估计出棋盘其他空地的落子概率;

根据落子概率来计算此处往下发展的权重,初始值为落子概率本身(如0.18)。实际情况可能是一个以概率值为输入的函数,此处为了理解简便。

利用价值网络快速走棋网络分别判断局势两个局势得分相加为此处最后走棋获胜的得分。这里使用快速走棋策略是一个用速度来换取量的方法,从被判断的位置出发,快速行棋至最后,每一次行棋结束后都会有个输赢结果,然后综合统计这个节点对应的胜率。而价值网络只要根据当前的状态便可直接评估出最后的结果。两者各有优缺点、互补

利用第四步计算的得分来更新之前那个走棋位置的权重(如从0.18变成了0.12);此后,从权重最大的0.15那条边开始继续搜索和更新。这些权重的更新过程应该是可以并行的。当某个节点的被访问次数超过了一定的门限值,则在蒙特卡罗树上进一步展开下一级别的搜索(如图2所示)。


蒙特卡洛树搜索”是一种启发式的搜索策略,能够基于对搜索空间的随机抽样来扩大搜索树,从而分析围棋这类游戏中每一步棋应该怎么走才能够创造最好机会。

 

虽然“蒙特卡洛树搜索”在此前一些弈棋程序中也有采用,在相对较小的棋盘中能够很好地发挥作用,但在正规的全尺寸棋盘上,这种方法的缺陷也体现出来了,因为涉及的搜索树实在太大了

但AlphaGo采用了很聪明的策略,利用深度学习的方法降低搜索树的复杂性(通过策略网络来计算每个位置下子的概率,通过分析概率权重比较大的位置,以此来减少搜索空间,有点类似启发式搜索)。因此“深度学习”和“蒙特卡洛树搜索”就成为它的两个关键因素。在每个模拟游戏中,AlphaGo都有两个大脑指引它进行搜索价值网络(value network, deep)和政策网络(policy network RL

政策网络观察棋盘布局企图找到较好的下法价值网络则预测这样下的话对方棋手赢棋的可能结合这两个建议,AlphaGo最终决定怎样落子才是胜算最大的。

 

 

三个网络:策略网络(PolicyNetwork)、快速走棋网络(Rollout Network)、价值网络(Value Network),都是通过离线方式获得,Policy Network和Rollout Network由专业棋手对弈棋谱训练获得(监督学习),Policy Network通过增强学习(RL,Reinforcement Learning)来提高水平,价值网络。先生成U步的棋局,然后由策略网络互相对弈直到分出胜负,作为label,然后训练价值网络(监督学习,输入:U步棋局,输出:胜负label)。

其中Policy Network是由全局特征训练的,RolloutNetwork由局部特征训练,Policy Network计算比较准确,但是计算效率低,Rollout Network计算较粗略,可以快速输出结果。

1 0
原创粉丝点击