【论文详解】—AlphaGo中用到的3个关键技术
Alpha Go详细梳理
来源:【知乎-机器学习前言-13-Alpha Go】
最近又回顾了一下之前经典的AlphaGo,有一种温故知新的感觉,在这里再记录下最新的想法。
原文传送门
Silver et al_2016_Mastering the game of Go with deep neural networks and tree search_Nature
背景
在AlphaGo出现前,传统的电脑围棋策略是通过一种称为Monte Carlo Tree Search(MCTS)的方法实现,其主要思想是通过计算推算不同落子方式的胜负情况,类似于人类思想的“往后想几步”,然后选择获胜概率最大的落子方式来执行。
但这种方法存在一个挑战就是,假如把所有的落子可能都进行计算,那么最多会有宽度为250,深度为150的树,以当前的算力,很难在1个小时内走出一步。因此,如何降低搜索树的size成为一个棘手的问题。
在深度学习和强化学习出现后,学者们把目光转向了使用机器学习方法,让机器自己学习各种情况可能带来的收益和风险,来最大程度降低搜索树的搜索深度和宽度。
方法
总的来说,这篇工作一共使用了3种技术:监督学习,强化学习和MCTS。
- 首先监督学习(SL)训练了一个落子网络pσp_\sigmapσ和一个快速走子网络pπp_\pipπ,其中落子网络模型较大,需要耗费3ms3ms3ms来做出决策,而快速走子网络则仅需要2μs2\mu s2μs来做出决策,但是落子网络更像人类的下棋方法,具有57.0%的预测正确率,而快速走子网络则稍逊,仅有24.2%的正确率。
- 其次强化学习(RL)对训练好的落子网络pσp_\sigmapσ进行提升,主要通过自博弈来提升网络的落子策略,其次再训练了一个价值网络vθ(s)v_\theta(s)vθ(s),用于MCTS的剪枝操作。
- 最后使用MCTS执行最终的动作选择。
1 监督学习过程
- 落子网络pσp_\sigmapσ:使用人类棋类博弈时的数据,使用监督学习方法训练一个策略网络来预测人类落子的策略,通过不断缩小与人类真实策略之间的误差,使得当前网络的落子方式更像人类,从而学得基本的走棋策略。其参数更新可表示为:Δσ∝∂logpσ(a∣s)∂σ\Delta \sigma\propto\frac{\partial\log p_\sigma(a|s)}{\partial \sigma}Δσ∝∂σ∂logpσ(a∣s)。
- 快速走子网络pπp_\pipπ:和落子网络训练方式一致,但网络模型更小,选择动作更快。
2 强化学习过程
强化学习方法是一种通过不断试错来优化自身策略的方法,这里使用RL提升落子网络的性能:
- 策略网络:通过复制训练好的落子网络得到初始网络pρp_\rhopρ,权重为ρ=σ\rho=\sigmaρ=σ。
- 对手:每个模型通过与自身历史版本中随机的一个模型来搏弈,来决定当前策略的好坏,从而进行不断提升,选择随机版本主要是防止过拟合于单一的博弈对象。
- reward:只在最终决定胜负后才会获得+1或者-1的奖励,其余步的奖励均为0。
- 训练:采用随机梯度上升的方法,来增大最后的期望回报:Δρ∝∂logpρ(at∣st)∂ρ\Delta \rho\propto\frac{\partial\log p_\rho(a_t|s_t)}{\partial \rho}Δρ∝∂ρ∂logpρ(at∣st)。
在提升策略网络性能的同时,RL另外训练了一个价值网络vp(s)v^p(s)vp(s)来估计棋盘的胜率:
- 价值网络:与策略网络类似,但输出由动作概率变为一个标量值,用来表示状态sss的胜率。
- 优化目标:通过减小自身预测胜率vθ(s)v_\theta(s)vθ(s)与真实胜率zzz间的均方误差,来预测不同状态的真实胜率Δθ∝∂vθ(s)∂θ(z−vθ(s))\Delta \theta\propto\frac{\partial v_\theta(s)}{\partial \theta}(z-v_\theta(s))Δθ∝∂θ∂vθ(s)(z−vθ(s))。
3 MCTS
MCTS是一种搜索树,通过访问不同动作导致的状态来推测各个动作的价值,然后选择价值最高的动作执行。MCTS的流程如下图所示:
- 选择:每个节点保存两个值:Q(s,a)表示动作a在状态s下的价值;u(s,a)u(s,a)u(s,a)表示探索价值,与先验P值正相关,和探索次数负相关,该值越高说明这个动作越值得探索,尽管可能Q值不是很高,类似于人类的大胆尝试。在每一轮选择时,MCTS选择这两个值和最高的动作执行。
- 扩张:每选择一个动作后,都需要落子网络pσp_\sigmapσ计算该状态下的动作概率,生成新的P值。
- 评价:在仿真结束时,对展开的叶子节点的价值进行计算,通过两种方式同时进行:价值网络vp(s)v^p(s)vp(s)的估计,以及快速走子网络快速模拟至游戏结束计算的价值。
- 回溯:利用展开的叶子结点的价值,更新根节点的动作价值。
本以为是选择Q值最高的动作来执行,但论文中写“最终模型选择访问次数最多的动作来执行”,这里还不是很懂为什么?先记录一下,希望能得到解答。
结论
本文只是对AlphaGo的知识点梳理了一下,具体的实施细节还是要查看论文,例如落子网络的输入,网络的结构,卷积核个数的影响等等。当前游戏AI的不少问题,仍然需要借鉴这篇著作的部分思想,包括搜索树的剪枝,自我博弈等等。
的确,生搬硬套强化学习方法来暴力解决游戏中遇到的问题并不实际,游戏和算法的发展仍然需要人类来不断推动。对游戏AI有兴趣的同学,可以在下方评论区进行讨论,也可以私信我,一起为强化学习/机器学习社区增添热闹。
的发展仍然需要人类来不断推动。对游戏AI有兴趣的同学,可以在下方评论区进行讨论,也可以私信我,一起为强化学习/机器学习社区增添热闹。
【论文详解】—AlphaGo中用到的3个关键技术相关推荐
- 详解两类AI芯片架构和关键技术
戳蓝字"CSDN云计算"关注我们哦! 作者 | 架构师技术联盟 责编 | 阿秃 人工智能芯片目前有两种发展路径:一种是延续传统计算架构,加速硬件计算能力,主要以 3 种类型的芯片为 ...
- 详解网络数字电视的实现方法与关键技术
1.IPTV的实现方法 宽带网络数字电视,又称IPTV或BTV,即交互式网络电视,是一种利用宽带互联网.多媒体等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术.它能够很好地适 ...
- GeniePath:Graph Neural Networks with Adaptive Receptive Paths 论文详解 AAAI2019
文章目录 1 相关介绍 1.1 感受野的定义 贡献 2 图卷积网络GCN GCN.GraphSAGE.GAT Discussions 3 GeniePath 3.1 Permutation Invar ...
- Spark RDD 论文详解(二)RDDs
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- RepVGG论文详解
RepVGG 论文详解 RepVGG 是截止到 2021.2.9 日为止最新的一个轻量级网络架构.在我的测试中,其在安霸 CV22 上的加速效果不如 ShuffleNet v2.根据作者的描述,Rep ...
- 智能城市dqn算法交通信号灯调度_博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型...
原标题:博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型 国际数据挖掘领域的顶级会议 KDD 2018 在伦敦举行,今年 KDD 吸引了全球范围内共 1480 篇论文投递,共 ...
- Fast R-CNN论文详解
Fast R-CNN论文详解 作者:ture_dream &创新点 规避R-CNN中冗余的特征提取操作,只对整张图像全区域进行一次特征提取: 用RoI pooling层取代最后一层max po ...
- 限时9.9元 | 快速领取数学建模竞赛备战必备技巧与论文详解!
全世界只有3.14 % 的人关注了 青少年数学之旅 大家晚上好,随着美赛时间的公布以及大大小小的数学建模竞赛的进行,小天经常可以收到来自很多小伙伴们提出的问题,"竞赛中如何去考虑选题?&qu ...
- transfromer-XL论文详解
transfromer-XL论文详解 – 潘登同学的NLP笔记 文章目录 transfromer-XL论文详解 -- 潘登同学的NLP笔记 Vanilla Transformer Segment-Le ...
最新文章
- 元旦快乐!今天我居然登上了数据派头条!
- cvc降噪和主动降噪_降噪蓝牙耳机哪款好?300内建议入手的五款主动降噪蓝牙耳机...
- 删除linux 软raid0,配置Linux软RAID0
- thinkphp mysql 更新_THINKPHP5修改数据库数据出现“缺少更新条件”的错误
- Agglomerative Hierarchical Algorithms(凝聚式层次聚类)
- PHP-Header缓存策略
- OpenCV通过cvFindContours与cvDrawCountours函数查找轮廓
- UNIX编程艺术-艾瑞克.S.理曼德
- QQ推广,无法发起临时会话
- python制作恶搞_Pycharm制作搞怪弹窗的实现代码
- 联合分布及其随机变量
- loinc编码_医学知识组织系统:术语与编码
- WearOS 工具箱
- 前进路上,我们都曾经迷失
- 北交计算机考研保护一志愿吗,考研er注意了~这些学校不歧视本科!而且保护一志愿!...
- 面试网答题(如老牛网)
- unilife-fridge-producetion-show
- 利用python进行数据分析_第二章_案例2_movielens_电影评分分析
- upc9520: Knight (象棋马从(0,0)到(n,m)的最小步数)
- 台式电脑强制删除文件的资料恢复法子