AlphaGo算法框架解读

Author: L. Chen, UoS


1. Introduction: 

如图1,在围棋中,每一步棋,从State K到State K+1都有很多种走法(move)。

在信息完整的情况下,在棋局的每一步,计算机可以使用穷举法,自己与自己下棋(self-play),尝试每一个选择,模拟所有可能的完整战局,观察结果,然后选出最佳走法。显然,就围棋而言,穷举法的计算量极其庞大,目前的计算机会很吃力。

对于信息完整的棋局,都会存在某个测量函数(value function), 可以根据每一个state下的每一个move算出整个战局的结果,并以V(value)表示。也就是,把state和move输入给测量函数,就能得到一个V值输出。那么穷举法就是在每个State,算出每个move的V值,然后对比选出最佳的move。

2. AlphaGo的基本思路:

从以下两个方面减少穷举法的穷举空间,减少计算量,以更快地选出最佳走法。

(1) 在每一步(state),依据一个决策P(policy),只筛选出部分move来计算。

(2) 对于每一个move,用一个测量函数(value function)来近似地算出相应的V值,而非穷举整个战局。

在AlphaGo的算法中,决策P和测量函数(value function)分别被两个深度卷积神经网络(deep convolutional neural network)替代,这是AlphaGo贡献的核心内容。

3. 神经网络的训练:

3.1 决策P(policy network):

Step 1: 拆解大量专业棋手的棋局过程,把每一个state及相应的每一个move,都存为数据。整个棋盘可以视为分辨率为19×19的图像,则每个state都是一幅图像,move可以编码为图像上的相应位置或者某个数值。

Step 2: 把不同的state作为data,把相应的专业棋手选择的move作为label,输入神经网络,对网络进行训练。

Step 3: 当policy network训练成功后,称为SL Policy(supervised learning policy),每次输入一个state, 就会输出一个概率分布。这个概率分布表示,在所有符合规则的move当中,每个move是专业棋手走法的概率。概率越大,表示某个move越可能是专业棋手的走法。

Step 4:  计算机使用SL policy模拟完整的战局,也就是,从开始到结束,对峙双方使用同一个policy来下棋(self-play)。

Step 5: 模拟大量的战局,并重复Step 1, Step2 和Step 3,得到强化训练后的神经网络,称为RL Policy(Reinforcement Learning policy)。

3.2 测量函数V(value network):  

Step 1: 计算机使用RL Policy自己与自己下棋(self-play), 模拟大量的战局,记录相每个state、相应的move,以及战局结果,战局结果被编码成一个数值。

Step 2: 用这些数据去训练value network。当network训练成功后,输入一个state,它会输出一个对战局结果的预测值。例如,在state_0时,选择了move 1, 则棋局变为state_1,把state_1输入网络,就可以预测到如果选择move 1的战局结果。

4. AlphaGo下棋过程:

假设棋局来到了某个state_N,轮到AlphaGo下,它会做以下操作:

Step 1:使用训练到的policy network和value network自行大量模拟后面的战局(Monte Carlo Simulation)。在模拟时,执行使action value Q最大的move,action value由policy和V值的某种组合计算出来。记录state_N下每个move被执行的次数。

Step 2: 选择在模拟中被执行次数最多的move,下棋。

Reference:

[1]  Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., van den Driessche, G., … Hassabis, D. (2016). Mastering the game of Go with deep neural networks and tree search.Nature, 529(7587), 484–489. http://doi.org/10.1038/nature16961

AlphaGo算法框架解读相关推荐

  1. 时空上下文视觉跟踪(STC)算法的解读与代码复现

    时空上下文视觉跟踪(STC)算法的解读与代码复现 zouxy09@qq.com http://blog.csdn.net/zouxy09 本博文主要是关注一篇视觉跟踪的论文.这篇论文是Kaihua Z ...

  2. 深度学习“奠基人”特伦斯:人工智能算法框架可被科学家掌控

    图片来源:摄图网 1989年,特伦斯·谢诺夫斯基在MIT以苍蝇的视觉网络迭代发展举例,将当时并不被看好的神经网络概念普及给支持逻辑计算程序的教员们.到今天,"深度神经网络"已成为人 ...

  3. 多目标优化算法_阿里提出多目标优化全新算法框架,同时提升电商GMV和CTR

    论文作者| Xiao Lin,Hongjie Chen 等 编译 | 吴少杰 编辑 | Natalie AI 前线导读: 在推荐系统中,多目标优化一直是热门话题,阿里针对推荐中的多目标优化问题提出了一 ...

  4. 无需公式或代码,用生活实例谈谈 AI 自动控制技术“强化学习”算法框架

    不用公式.不用代码,白话讲讲强化学习原理 The best way to learn is to teach others. 战胜围棋高手李世石的 AlphaGo ,称霸星际争霸2的 AIphaSta ...

  5. 3D激光SLAM:LOAM 论文--算法详细解读

    3D激光SLAM:LOAM 论文--算法详细解读 LOAM简介 论文里面的符号表示 算法部分 激光雷达里程计 A 特征点提取 B 找特征点的匹配对 C 运动估计 lidar 建图 测试结果 LOAM是 ...

  6. Brief Bioinform | 农科院深圳基因组所王怡雯组提出一种去除微生物组数据中批次效应的多元算法框架...

    PLSDA-batch:去除微生物组数据中批次效应的多元算法框架 PLSDA-batch: a multivariate framework to correct for batch effects ...

  7. CVPR2020行人重识别算法论文解读

    CVPR2020行人重识别算法论文解读 Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer 具有特定共享特征变换 ...

  8. ORB算法原理解读【不错】

    ORB算法原理解读        这篇写得很好 ORB特征提取.匹配及位置估计   里面对匹配的讲解比较好 两个不同二进制之间的汉明距离指的是两个二进制串不同位的个数.两个二进制不同位的个数是越少越好 ...

  9. 句法分析常用算法框架以及NLPIR、Dependency Viwer

    句法分析常用算法框架以及NLPIR.Dependency Viwer 目录 句法分析常用算法框架以及NLPIR.Dependency Viwer 句法分析框架 北京理工大学NLPIR

  10. C3F:首个开源人群计数算法框架

    C3F:首个开源人群计数算法框架 导读:52CV曾经报道多篇拥挤人群计数相关的技术,比如最近的: CVPR 2019 | 西北工业大学开源拥挤人群数据集生成工具,大幅提升算法精度 开源地址: http ...

最新文章

  1. python用matplotlib画人口图_Python+Matplotlib画contour图
  2. 【Android Lock Pattern】图案解锁(一):LockPatternView源代码
  3. Linux发行版新秀!风格对比苹果
  4. envoy api 网关_为Envoy构建控制平面的指南-特定于域的配置API
  5. xml dtd 约束建立xml文档
  6. 【报告分享】2020数据治理年度报告:规则的激荡与新生.pdf(附下载链接)
  7. python list函数使用总结_python——list总结
  8. Bailian3703 寻找平面上的极大点【最值】
  9. 计算机应用基础教学改革参考文献,计算机考试论文,关于计算机等级考试计算机应用基础教学改革相关参考文献资料-免费论文范文...
  10. 解决办法:GTK+ 2.x symbols detected
  11. 【Mybatis架构】Mapper映射文件中的#{}与${}
  12. SQL Server 中“dbo”到底是什么
  13. WITNESS高级教程
  14. 算法之二分法(例子:数的范围,数的三次方根)
  15. ArangoDB——AQL编辑器
  16. 动态权重:推荐算法的新范式
  17. 我本以为你们会写简历
  18. 服务端团队假期值班方案
  19. 2022-11-12-读书
  20. 专有网络VPC (产品简介,使用限制)

热门文章

  1. 华为系统固件服务器,华为手机固件
  2. 嵌入式操作系统开发板中的串口编程——光敏电阻数据读取
  3. 编程实现DBSCAN密度聚类算法,并以西瓜数据集4.0为例进行聚类效果分析
  4. 回归预测 | MATLAB实现DBN深度置信网络多输入单输出回归预测
  5. 98道常见Hadoop面试题及答案解析
  6. 威联通服务器操作系统,QNAP 威联通 453BT3 网络存储服务器 使用手记,Nas中的小钢炮...
  7. 系统分析与设计-(二)系统规划
  8. 原生M1 Sketch for mac(专业矢量绘图设计) v86中文激活版功能介绍,支持最新的monterey系统
  9. fasterrcnn 总结
  10. 中国象棋游戏设计与实现