相关文章推荐
暴走的伤疤  ·  向量数据类型 | TiDB 文档中心·  5 月前    · 
大力的长颈鹿  ·  最新!14号线二期、广清城际南延线迎来关键节点→·  8 月前    · 
重情义的铁链  ·  ffmpeg_develop_doc/ffm ...·  8 月前    · 
强健的土豆  ·  苏里南外长拜赫勒为张晋雄大使举行欢送晚宴·  1 年前    · 
爱旅游的铁链  ·  微课--Python爬取网页中的表格保存为E ...·  1 年前    · 
小百科  ›  自我对弈的AlphaGo Zero-腾讯云开发者社区-腾讯云
AlphaGo
调皮的凉面
2 年前
作者头像
AlgorithmDog
0 篇文章

自我对弈的 AlphaGo Zero

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > AlgorithmDog的专栏 > 自我对弈的 AlphaGo Zero

自我对弈的 AlphaGo Zero

作者头像
AlgorithmDog
发布 于 2017-12-29 10:54:45
695 0
发布 于 2017-12-29 10:54:45
举报

AlphaGo Zero [1] 已经出来一段时间了。本来 AlphaGo Zero 一出来就应该写科普的,但自己实在懒。等到现在才更新。

AlphaGo Zero 最大的亮点是:完全没有利用人类知识,就能够获得比之前版本更强大的棋力。主要的做法是: 1) 利用蒙特卡洛树搜索建立一个模型提升器,2) 在自我对弈过程中,利用提升器指导模型提升,模型提升又进一步提高了提升器的能力。

1. 蒙特卡洛树搜索简介

蒙特卡洛树搜索 (Monte Carlo Tree Search, MCTS) 是一种树型搜索技术,具有如下所示的树型结构。AlphaGo Zero 蒙特卡洛树搜索还利用了深度学习模型:这个深度学习模型输入当前盘面,输出不同动作概率和当前玩家胜利的概率。

monte carlo tree mcts a tree
monte carlo tree mcts a tree

树中每一个节点 s 代表了一个围棋盘面,并带有两个数字。一个是访问次数N(s),另一个质量度Q(s)。访问次数 N(s)表示在搜索中节点被访问的次数。面对一个盘面,MCTS 会进行重复搜索,所以一个节点可能会被反复访问,这个下面细说。质量度Q(s)表示这个节点下 AlphaGo 的优势程度,其计算公式如下所示。

这个公式的意思是:1)对于非叶子节点,质量度等于该节点所有树中已有子节点的质量度均值。2)对于叶子节点,质量度和深度学习网络估计的获胜概率 vθ(sL)vθ(sL) v_{\theta}(s_L) 有关。

有了 MCTS 的结构,我们就可以继续介绍 MCTS 怎么做搜索的。当对手落了一子,AlphaGo 迅速读入当前盘面,将之当作搜索的根节点,展开搜索。MCTS 搜索的流程如下图所示,一共分为四个步骤:

monte carlo tree search MCTS
monte carlo tree search MCTS

1. 选择 从根节点 R 开始,递归选择某个子节点直到达到叶子节点 L。当在一个节点s,我们怎么选择子节点 s*呢?我们选择子节点不应该乱选,而是应该选择那些优质的子节点。AlphaGo 中的选择子节点的方式如下所示。

 
推荐文章
暴走的伤疤  ·  向量数据类型 | TiDB 文档中心
5 月前
大力的长颈鹿  ·  最新!14号线二期、广清城际南延线迎来关键节点→
8 月前
重情义的铁链  ·  ffmpeg_develop_doc/ffmpeg常用命令.md at main · 0voice/ffmpeg_develop_doc · GitHub
8 月前
强健的土豆  ·  苏里南外长拜赫勒为张晋雄大使举行欢送晚宴
1 年前
爱旅游的铁链  ·  微课--Python爬取网页中的表格保存为Excel文件_董付国_消息_网络
1 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南