强化学习(AlphaGo下)

强化学习和一般的深度学习一样也包含定义一个function、定义一个损失函数、优化参数这三个步骤。

在这一讲中我们将讲解阿尔法狗的算法
我们课程的内容是基于deep man的公司
两篇发表在nature上的论文
在2015年的阿尔法狗算法中
作者构建了三个深度策略网络
policy network和一个深度估值网络value network
首先我们看三个深度策略网络
rotror和rp的构建
第一个若涛深度策略网络
它的输入是当前棋盘的状态
输出是下一步走到各个格点的概率
训练数据是利用kg s go server上删一个高手对局的训练样本
网络设置13层的深度网络
网络的结构大致如下图所示
通过弱涛的训练
将获得57%的正确率
这个正确率是相当高的
这说明高手之间对于同一个局面的判断还是有很大的重复性的
这是深度策略网络如涛的参数设置
它的输入是48个棋盘的特征
因此输入是19x19x48
接下来的参数设置大家都很容易看懂
例如使用了crossropnos
使用了s gd batch size
16train step
这些都是非常容易被看懂的
以下我们大致讲一下48个平面所代表的内容
落后者的气
争执有力
争持逃脱合法性颜色等等
这里面加入了一些下围棋的人工的经验
例如是否被增殖
增值是否有利等等
这里是棋盘颜色的三个平面
这里是轮次的八个平面的取法
这里是气打出数量增殖合法性平面的取法
通过深度神经网络的训练
若套的棋力还是不够的
因此需要以弱套为基础
训练一个棋力更强的深度网络
若若深度策略网络弱弱
首先它的网络结构输入输出与若涛完全一致
一开始初始化网络参数若等于掏
接着参数更新的策略是自己和自己下棋
不断下下去
直到分出胜负
然后再利用这个胜和负的关系更新弱弱的参数
在这个式子当中
若若sp条件下
a t是在第七部下走下一步a t的概率
当胜利的时候
z t等于一
否则z t等于零
同时为了避免对局的网络过于相似而出现的过滤和应用了如下的策略
第一步
将监督学习的网络复制为增强学习的初始网络
第二步
将当前版本的网络与之前某个随机版本对局
得到棋局的结果
第三步
根据棋局和棋局结果
利用强化算法更新参数
最大化期望的结果
第四步
每500次迭代就复制当前的网络参数到对手其中
然后重复
因此这样就构建了两个相对有差异的不同其力的网络相互对战
从而能够得到更好的对于胜率的预测
通过这样的训练
我们获得了一个棋力更高的深度网络
若若接下来需要训练一个速度更快的深度策略网络
若拍用来预测估值函数
深度策略网络若拍它输入的特征
比如涛和若若都要少
第二它的网络结构更简单
换句话说
这个网络以牺牲准确率来换取速度
在前面的数据集上
它只有24.2%的正确率
但是它的速度却非常的快
接下来是深度估值网络
vc它的训练
这是vc塔的结构
它也是一个卷积神经网络
它的输入是当前棋盘的状态
与若涛和若若输入一样
它的输出是获胜的概率
一个0~1之间的数
它的参数更新的策略是pvc塔偏西塔
然后乘以z减vc塔
其中z是真实的值
我们用弱拍走很多轮来预测这个z
当我们训练出一个很好的估值网络v c塔后
我们可以利用它来进一步训练深度策略网络
若若在这里
我们可以用vbs进行参数更新
如下图所示
很容易看出这里用到的actor critic算法
这里z是讲逆函数
它是由弱拍走很多女儿来预测
而由于有了估值函数vs
我们对每一步的价值的预测准确了很多
这就能进一步的促进弱弱的训练
使他快速的收敛
达到更高的棋力
接下来是利用最终的策略网络弱弱和估值函数v c塔进行下棋的步骤
下棋的方法是蒙特卡洛树搜索
多次模拟未来的棋局
然后选择在模拟中次数最多的走法
蒙特卡洛树搜索
最终确定走棋的方式如下面这些公式所示
需要注意的几点
第一zl是利用弱拍不断相互走齐后对胜率的预测
第二vs l等于一减
nba v c塔sl加上nba z e r是结合估值网络vca和zl后算出的
对当前局面胜率的估计
q sa是在s状态下采用行为a后胜率的估计
接着a t等于遍历所有的a求q sa加usa的最大值
是结合q sa和usa后最终决定的走棋方式
前面我们已经讲过q sa的取法
而usa呢它等于p s a除以一加n sa
其中psa等于p ros条件下a的概率
而在usa的计算当中
分子是很容易理解的
而分母的取值是为了避免每次去选同一种走法
因此除以一加n s a后
如果对于选择很多次的走法
那么下一次选择它的概率将会下降
应用这样的方式可以增加选择的多样性
这是2015年阿尔法狗的算法
而在2017年
deep man的公司推出了加强版的阿尔法zero
他完全不需要人类棋谱
采用自己和自己下棋的方式学习
同时将策略网络和估值网络融合到一起
这里是实验结果的对比
alpha zero在训练的第三天就超过了2015年对阵李世石的版本
而在训练的第25天左右
超过了基于人类棋谱的最强版本
alpha master
有兴趣的同学可以参阅下面这个论文
学习其中的细节
课程的最后留一道讨论题给大家
在2015年阿尔法狗对阵李世石的棋局中
阿尔法狗以四比一的比分击败人类围棋高手李世石
其中第四局是阿尔法狗唯一落败的一局
在这局里面
李世石执白在第78首下出了神之一手
如图所示
下完厕所过后
导致阿尔法go直接崩盘
请结合本讲阿尔法go的算法讨论一下
为什么会出现这样的情况
一点提示
在对阵李世石的程序中
阿尔法go设计每一步耗时的上限是五分钟
正是由于这个设置导致了最后的崩盘
请问这是为什么呢
本讲就到这里
谢谢同学们

发表评论

邮箱地址不会被公开。 必填项已用*标注