Alphago杂谈

AlphaGo从Fan、Lee、Master到AlphaGoZero版本不断进化,早期采用监督学习+强化学习,后期仅使用强化学习。AlphaGoZero摒弃人类棋谱,完全依靠自我对弈提升实力,实现了围棋领域的突破。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Alphago版本经历了Fan,Lee,Maser,以及后面的AlphaGo和AlphaZero,前三版Fan,Lee,Master用的是监督学习+强化学习训练,后两面Alphago Zero和AlphaZero则是直接使用强化学习训练。

DeepMind在这个topic上只公布了两篇Natrue,一个对应前三版,一个对应后两版,对所有这几版Alphago的演变也我们只能从论文中获得,所以大部分技术细节都被隐藏,甚至说暴露给我们的只是从Fan到Lee的176个GPU减少48个TPU这样的结果,而如何能将计算量一步一步优化,这种都是源于其工程师强大的工程能力,没有源码是非常难复现的。

AlphaGo Master

前三版主要实现一个目标,打赢人类,因此每一版都以打败的对手而命名,直到Master出现打败柯洁,AlphaGo的目标已经达成。到这里,技术路线是监督学习+强化学习,监督学习以人类已有的所有棋谱作为学习样本,每一步去尽量拟合人类下棋的路径,因此可以训练出一个比较初级的模型,这个模型能学到人类的一些“套路“,但是用这种套路肯定是打败不了人类的,因为人类是具有创造性思维的动物,能够在已有的套路上再生成一些新的套路,因此,Alphago也需要自我学习,这个时候就需要用到强化学习算法。强化学习会在前面那个初级的模型上继续学习,此时就变成了一种自我对弈游戏,也就是最大最小期望值游戏,对于自己来说是要最大化赢得游戏的期望,而最小化其对手赢得游戏的期望,其实这里的对手也是他自己。我们可以通俗的这么理解为:一个人分饰两角自己对自己下棋,假设他现在要下黑棋,那么他肯定是站在黑棋的角度上考虑问题,尽量走利于黑棋的位置;白棋也一样。无论最后是黑棋赢,还是白棋赢,他总能从赢的那方找到赢的原因来更新自己,或者从输的那方总结输的原因。但是Alphago是计算机的自我对弈,计算速度超越人类不用说,还可以没日没夜的下,这样下去,自我对弈的最终结果就是产生许多人类都没理解到的一些套路或样本,那么打败人类就是理所应当的。

具体的来说,首先用监督学习训练出一个走棋网络p1,p1网络的输入是当前棋盘,输出的是各个位置的落子概率,很显然,因为p1模仿的是人类棋局,所以基本符合人类落子行为(57%);然后又用同样的人类棋谱训练出一个快速走子网络p2,这个网络的结构要比p1简单的多(逻辑回归),所以速度上较p2提升了1000倍,但是精度下降至27%。此时监督学习阶段结束。

然后开始强化学习阶段,强化学习这里面也有一个走棋网络p3,它的初始值就是前面的走棋网络p1,用于评估当前的落子的概率,然后还有一个估值网络p4,估值网络p4用于评价当前棋局的输赢概率。为了能实现“手下一着子,心想三步棋“的下棋思维,必须要让机器思考接下来的发展,因此需要让这些网络结合蒙特卡洛树(MTCS)搜索。具体来讲,一共有两套树搜索机制,每套搜索都会返回一个结果,结果组合在一起形成最终的落子策略。

一个是走棋网络p3结合的MTCS搜索:首先用p3给出当前棋局一些概率较大的落子位置,然后选定一个位置走一步,接着让对方走一步,然后再用p3再走一步,如此反复直到一个之前从来没有走过的位置(搜索树新的叶节点),然后用快速走子网络p2一路走到底决出胜负,得到的结果回溯到根节点,再选择其他位置,最后才更新走棋网络p3,正是因为快速走子网络p2速度快,才能尽可能多的模拟未来棋局,对落子后的棋局判断越准确。

另外一个是估值网络p4的MTCS搜索:与上述思想一样,用p3给出当前的候选落子方案,然后用网络p4估计每一个候选落子的输赢的概率并选择赢概率较大落子,然后继续对弈走下去,走的过程中会对根节点的输赢概率进行更新,直到时间限制返回一个最优落子。

总结一下就是,走棋网络p1(或进化版的p3)可以剪掉小概率的分枝,减小搜索宽度;快速走子网络p2用于快速模拟未来棋局;估值网络p4用于给出当前棋局的未来的输赢概率;蒙特卡罗树搜索用于构建搜索空间以及保存一些状态,而走棋网络p3和估值网络p4指导着树的搜索方向,同时它们的更新由树在回溯时执行。

详情参考

关于强化学习中模型比较

强化学习分两种,一种是model-free的强化学习,而另外一种是model-based强化学习,这两者的区别在于是否对环境进行了建模,AlphaGo毫无疑问是model-based的强化学习,因为它对棋牌(环境)进行了建模,整个下棋规则在它面前是透明的,在下任何一步之前,它都能近似去估计它最后输赢的概率(也就是强化学习中的奖励),而这个建模过程正是通过蒙特卡洛树搜索完成的。

model-based的强化学习方法优点是能通过建模让Agent更好的了解这个世界(棋盘),从而可以表现的更好,就像AlphaGo,它已经把整个棋盘的未来演变全部掌握在手,就像预测未来能力一样,当然战无不胜。而model-based强化学习方法缺点是

  1. 对环境的建模非常困难: 棋盘由于是一种非常简单的确定性的环境,虽然未来的变化很多,但至少是可以穷举而且很有规律的,因此AlphaGo能用树形状描述未来的演变;但是很多现实环境是复杂的,而且非确定性的,它们状态的转移是基于概率的,对于这些复杂的环境,model-based强化学习通常很难找到一个比较合适的建模方法
  2. 不具有迁移性和普适性:AlphaGo能在围棋上取得很好的表现得力于它对棋盘的建模:蒙特卡洛树搜索,那么如果现在让它去下五子棋或者其他的任务,这棵树还适用吗?答案是否定的,它必须要根据特定的任务来调整很多东西,如更新方式,规则等才能应用到其他领域。

与model-based的强化学习相反,model-free方法不对特定的环境建模,因此它具有普适性,只根据环境给出的反馈,也就是奖励,来更新自己,学术界大部分都在做model-free的研究工作, 一个好的model-free方法具有比较普适的应用性,可以应用到环境比较复杂无法建模的情况,它只需要知道环境的状态,agent的动作,以及环境反馈的奖励即可。相比model-based方法,model-free的强化学习通常效果上比不上model-based的方法(如果一个问题能同时用model-free和model-based方法求解),毕竟它不像model-based方法那么了解这个世界的规则,对样本的利用率比较低。

AlphaGo Zero

人类的棋谱就一定好吗?答案是否定的:

  • 与大量的业余选手下棋,最终的结果难以达到职业水平
  • 顶尖的棋谱本来就不多,用于训练远远不够
  • 无论是是输棋还是赢棋的落子方案,监督学习无一例外都进行学习
  • 赢棋的落子不一定是好棋(如果是两个业余选手),输棋的落子不一定是差棋(两个高手之间的对决)

那么抛开人类棋局知识和套路,从零开始用强化学习可以吗?AlphaGo Zero就做了这个事情,方法上面除了抛开前面的监督学习阶段,还把残差网络应用到了强化学习中的估值网络和策略网络中,时间和最终结果都完胜前面的版本。与传统的神经网络相反,残差网络被证明是网络深度的增加可以提高结果精度,因此对于函数的拟合有更好的效果。但Alpha Zero效果表现更好的原因可能是抛弃了人类棋谱,也可能是残差网络的带来的影响;而时间上完胜的原因猜测可能是算法优化做的更好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值