迷雾探险4 | AlphaGo原理浅析(转)

2018-12-16  本文已影响11人  臻甄

没想到这么快就可以开始接触阿尔法狗的原理了,俗话说的好,读万卷书不如行万里路,原理都是枯燥的,但是,能够看见一个活生生的例子,再去探寻原理,就是一件非常有趣的事情!

参考博客:

周志华《Machine Learning》学习笔记(17)--强化学习 :原来强化学习都是作为学习算法的最后一种算法来介绍的。

1. AlphaGo的基础——强化算法

强化学习是AlphaGo的核心技术之一,正如人类下棋那般“手下一步棋,心想三步棋”,Alphago也正是这个思想,当处于一个状态时,机器会暗地里进行多次的尝试/采样,并基于反馈回来的结果信息改进估值函数,从而最终通过增强版的估值函数来选择最优的落子动作。

3.1 深度学习(拟合估值函数)

在模型已知的前提下,用来评估某个策略优劣的两个值函数
(1)状态值函数(V):V(x),即从状态x出发,使用π策略所带来的累积奖赏;
(2)状态-动作值函数(Q):Q(x,a),即从状态x出发,执行动作a后再使用π策略所带来的累积奖赏。

3.2 蒙特卡罗搜索树(采样)

3.3 强化学习(调整估值函数)

2. AlphaGo训练过程

转自https://blog.csdn.net/xbinworld/article/details/50900443

AlphaGo的原理图
  1. 根据当前盘面已经落子的情况提取相应特征;
  2. 利用策略网络估计出棋盘其他空地的落子概率;
  3. 根据落子概率来计算此处往下发展的权重,初始值为落子概率本身(如0.18)。实际情况可能是一个以概率值为输入的函数,此处为了理解简便。
  4. 利用价值网络和快速走棋网络分别判断局势,两个局势得分相加为此处最后走棋获胜的得分。这里使用快速走棋策略是一个用速度来换取量的方法,从被判断的位置出发,快速行棋至最后,每一次行棋结束后都会有个输赢结果,然后综合统计这个节点对应的胜率。而价值网络只要根据当前的状态便可直接评估出最后的结果。两者各有优缺点、互补。
  5. 利用第四步计算的得分来更新之前那个走棋位置的权重(如从0.18变成了0.12);此后,从权重最大的0.15那条边开始继续搜索和更新。这些权重的更新过程应该是可以并行的。当某个节点的被访问次数超过了一定的门限值,则在蒙特卡罗树上进一步展开下一级别的搜索(如图所示)。 MCTS拓展下一级节点
上一篇下一篇

猜你喜欢

热点阅读