Alpha Go和Alpha Go Zero的文献阅读

Nature的Alpha Go和Alpha Go Zero原文阅读:

Mastering the game of Go with deep neural networks and tree search
复杂度过高的解决方案:
1.广度:策略p(a|s)是状态s上动作a的概率分布;
2.深度:在状态s处截断搜索树,并用预测状态s的结果的近似值函数v(s)≈v*(s)替换s下的子树的实际情况。

本文工作:

A.训练过程
1.SL(监督学习)策略网络:利用监督学习来预测围棋中专家的动作。最终输出概率分布函数P_sigma(a|s),此外还提供了速度更快但精确度低一些的小型特征策略网络P_pi(a|s)。前后两个策略的主要区别在于网络的规模不同。
2.RL策略网络:利用刚刚的P_sigma,让它和先前随机某一次迭代后的P_sigma*进行比拼,从而防止网络过度依赖(有点overfitting的意思)。如果P_sigma在t时刻赢了,则z=+1,反而反之。随后在每个时间步长t处,更新权重。
3.此外,利用RL策略网络进行自我博弈,达到了最低过拟合程度。
4.利用刚刚的RL策略网络生成价值网络v(但是好像没有看到是如何生成的)。

B.测试过程
1.MCTS的数据分为三部分:Q(s,a)动作价值,N(s,a),P(s,a)。其中Q取决于其子树中所有模拟的估值函数V,而V又取决于叶子的价值函数v和结果z。

Alpha Go和Alpha Go Zero的文献阅读_第1张图片

2.而推理最优的公式为:

在这里插入图片描述

解决了如下问题:
1.AlphaGo的推理寻优公式:根据B-2提到的公式。
2.快速走子:A-1中提到的速度更快但精确度低的小型特征策略网络P_pi(a|s)。
3.看完Nature的原著发现,UCB即为上述内容的u(s,a),且由于本文对MCTS的评价是对原有模型的更好的改进,因此类似的公式(B-2)是同时在被训练和测试时使用的。

Mastering the Game of Go without Human Knowledge
1.新的f_theta:该神经网络将位置及其历史记录的原始棋盘表示作为输入,输出(p,v),p表示下一步走子的可能性,v表示当前的获胜概率。相当于组合了上文中的策略网络P和价值网络V,但实现起来需要批量归一化技术和非线性整流器(???),还有残差(Res.)模块。
2.自走强化学习。程序和自己下T轮棋,每一轮都会根据刚才的网络f_theta指导MCTS运行,然后根据搜索出来的概率得到下一步方案,打完T轮后判胜方。而后根据上述结果继续训练,更新的新模型用于新的自走。这样做可以让新模型更接近MCTS,从而达到更好的效果。
3.MCTS内部仍然是存储P,Q,N三个部分。
过程为:从根节点择优下降→扩展节点并求算该状态的预估胜算V→利用V更新祖先链上的Q和N。
其中,f_theta的损失函数是特制的:交叉熵和MSE(但没有具体指出其意义)

其中,c是控制过拟合的参数。

一个看起来还不错的介绍本文的博客:
https://blog.csdn.net/sinat_31428707/article/details/82218575

你可能感兴趣的:(神经网络)