关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

AI程序攻克围棋的算法秘密(四)

2020.10.05

不过这样的训练方式其实存在一个问题。

如果其只在练习中对抗同一个对手,且该对手也一直贯穿训练始终,那么可能无法获得新的学习经验。换言之,该网络所学到的只是如何击败对方,而非真正掌握围棋的奥秘。没错,这就是过度拟合问题:你在对抗某一特定对手时表现出色,但却未必拥有对付各类选手的能力。那么,我们该如何解决这个问题?

答案很简单,当我们对一套神经网络进行微调时,其就会变成另一个风格上略有不同的选手。如此一来,我们可以将各个版本的神经网络保存在一份“选手”列表当中,并确保每位选手的表现都有所区别。很好,在接下来的神经网络训练过程中,我们可以从列表中随机选择不同的版本作为对抗对象。它们虽然源自同一套神经网络,但表现却略有区别。而且训练得越多,选手的版本也就越多。问题就此解决!

在这样的训练过程中,惟一指导训练过程的只有最终目标 ——即赢得比赛。到这里,我们已经不再需要对网络进行针对性训练,例如捕捉盘面上的更多位置等。我们只需要为其提供所有可能的合理选项,并下面目标“你必须获胜”。也正因为如此,强化学习才如此强大——其能够被用于训练任何游戏策略或估值网络,而绝不仅限于围棋。

到这里,DeepMind的研究人员们测试了这套RL策略网络的准确性——不使用任何MCTS算法。之前我们曾经提到,这套网络能够直接获取盘面位置并思考专业棋手的判断概率。到这里,它已经能够独立进行对弈了。结果是,强化学习微调后的网络战胜了仅利用人类棋谱进行训练的监督学习网络。不仅如此,它还能够战胜其它强大的围棋程序。

必须强调的是,即使是在训练这套强化学习策略网络之前,监督学习策略网络也已经拥有了超越现有技术的对弈水平——而如今我们又更进一步!更重要的是,我们甚至不需要使用估值网络这类其它辅助方案。

到这里,我们终于完成了对Lusha的训练。接下来重新回到Foma这边,它代表的是最优估值函数v*(s)——即只有两位选手皆完美执行其预期内的落子判断时,她才能提供在目前盘面局势下获得优胜的可能性。很明显,为了训练神经网络充当我们的估值函数,这里需要一位完美的对手……遗憾的是,目前我们还没有这样一位对手。因此,我们派出了最强大的选手——RL策略网络。

其会提取当前盘面状态state_s,而后输出您赢得本场对弈的概率。每一项游戏状态都将充当数据样本,并以标签的形式用于注释游戏结果。因此,在经过 50次落子之后,我们就获得了50份估值预测样本。

但这种作法实际上非常幼稚——毕竟我们不可能也不应该将对弈中的全部50次落子全部添加到数据集当中。

换言之,我们必须认真选择训练数据集以避免过度拟合的发生。由于每次落子都会与一个新位置对应,因此围棋中的每一次落子都非常相似。如果将所有落子选择的状态都添加到具有相同标签的训练数据当中,那么其内容将存在大量“重复”,并必然导致过度拟合。为了防止这种情况的发生,我们只能选择那些更具代表性的游戏状态。举例来说,我们可以只选择对弈过程中的五个状态——而非全部50个状态——添加到训练数据集内。DeepMind从3000万盘不同对弈过程中提取了3000万种状态,从而减少重复数据的出现可能性。事实证明,这种作法效果极佳!

现在,我们谈谈概念: 我们可以通过两种方法评估盘面位置的价值。第一是选择最佳估值函数(即之前训练完成的函数)。另一种则是使用现有策略(Lusha)直接推导盘面局势,并预测本次落子带来的最终结果。很明显,真正的对弈很少会完全按照我们的计划推进。但DeepMind仍然比较了这两种方法的实际效果。此外,大家也可以将这两种选项混合使用。稍后,我们将了解这一“混合参数”,请各位记住这个重要概念。

在这里,我们的一套神经网络会尝试给出最近似的最优估值函数,其效果甚至优于经过数千次模拟而得出的铺展策略!Foma在这里的表现真的超赞。在另一方面,DeepMind方面也尝试使用了准确度翻倍但速度极慢的Lusha RL策略,其需要进行成千上万次模拟以得出结论——最终效果略好于Foma。但也只是略好,而速度却慢了太多。因此,Foma在这场比拼中胜出,她证明自己拥有着不可替代的价值。

现在,我们已经完成了策略与估值函数的训练,接下来可以将其与MCTS结合起来,从而带来我们的前任世界冠军、大师中的大量、一个世代的突破、体重268磅的……Alphaaaa GO!


推荐
关闭