以  AlphaGo模型来讲解在实际应用中如何使用强化学习。此处笔记根据B站课程,王树森老师的强化学习记录而来。5.深度强化学习(5_5):AlphaGo(Av374239425,P5)_哔哩哔哩_bilibili

1.AlphaGo 强化学习

可分为三个步骤:(这里的策略学习和价值学习并不是同时学习的,而是分布学习的,所以不是actor-critic)

模仿学习 多分类,监督学习
强化学习,策略学习 学习一个策略网络
强化学习,价值学习 学习一个价值网络,使用蒙特卡洛树搜索

AlphaGo的实际执行过程中,使用的是MCTS蒙特卡洛树搜索,策略网络和价值网络的训练是为了确定有价值的搜索。

最开始的AlphaGo下围棋使用19*19*48种状态,最新的使用19*19*17。这里是17可以解释为,白子最近8步的状态矩阵,黑子的最近8步的状态矩阵,还有一个是将要执行的状态,若是白字则全0,黑子则全1.

输出是19*19=361维的概率分布,最后一层是softmax。19*19*48中全部使用卷积层,没有全连接层,输出361维的概率。

2.Behavioral Cloning模仿学习

 Initialize Policy Network by behavior cloning 使用模拟学习来初始化策略网络。

如果使用随机初始化,纯随机的初始化,强化学习的摸索过程比较长,使用模拟学习,使用人类知识预训练,可以减少摸索时间。

Behavioral Cloning不是强化学习,它和强化学习的最本质的区别是强化学习有reward,而模仿学习没有。它知识强化学习的替代品,实质是分类和回归一类,可以看作是多分类问题,其结果是动作的概率分布,真实的动作是at就是ground truth。

观测到真实的动作a*(t)时,eg:a*(t)=281,将其编码维one-hot向量,将真实值与预测值计算loss,可以使用交叉熵损失,使用梯度下降,较少loss,使预测值靠近真实值。

在Behavioral Cloning之后,该网络可以打败一个小白玩家。只要网络见过状态s(t)他就表现的很好,为什么要使用强化学习,因为当Behavioral Cloning训练的网络遇到没见过的s(t)时,就会做出糟糕的操作,且错误会累积,使结果更加糟糕。围棋的状态比较多,Behavioral Cloning不能收集所有s(t),故引入强化学习,且Behavioral Cloning+RL有80%的可能性能应付仅有Behavioral Cloning的失误。

3.训练策略网络Policy Network

AlphaGo使用两个Policy Network对弈,其中一个是Player,相当于agent,一个是opponent,相当于environment,在训练时,更新Player的参数,Opponent的参数不更新,仅作辅助训练的功能。

Behavioral Cloning和Policy Network的区别在于,Behavioral Cloning是纯粹的模仿,强化学习靠奖励更新。

reward是如何定义的?在博弈过程中,没结束之前,reward都是0,在结束时,赢得到reward=1,输得到reward=-1。

回忆u(t),这里不考虑折扣。赢得比赛时,u1=u2=……=u(t)=+1,每一步的操作都是好的。输了比赛时,u1=u2=……=u(t)=-1,每一步的操作都是坏的。每一步的u(t)同等对待,获得相同的回报。

4.策略梯度Policy Gradient

 使用u(t)近似QΠ(s(t),a(t))的值,u(t)只有一局游戏结束时才知道,梯度求解时,是logΠ对θ的导数。

计算gθ,使用策略上升,更新player。 训练好了Π,之后观测到s(t),Π分句st随机抽样选择a(t)。经过策略学习以后,AlphaGo已经很强了,但它不是很稳定,还不够好。

5.价值网络训练

通过价值网络的训练,选择有益的蒙特卡罗搜索,使得AlphaGo表现更加稳定。

这里的价值学习是近似V而不是近似q函数。V是回报u(t)的条件期望,只依赖于A和S.期望消除了A和S外的随机变量的依赖。

蒙特卡洛树搜索需要V的辅助,v(s,w)价值网络对当前状态打分,评价当前状态好不好,胜算大不大。AlphaGo的策略网络和价值网络是分开训练的,先训练策略网络后训练价值网络,所以不是actor-critic,但是策略网络和价值网络可以共享一些卷积层的参数。

价值网络的训练过程中任然是两个策略网络进行博弈,在一局结束后,loss定义为v(s(t);w)和u(t)的差的平方的累积。根据loss更新w,使用梯度下降,降低loss的值。

此时强化学习结束:初步学习        策略学习        价值学习

6.蒙特卡洛树搜索

select actions by look-ahead search

AlphaGo在具体决策时使用蒙特卡罗树搜索,之前的训练就是为了辅助蒙特卡洛树搜索寻找有意义的搜索。蒙特卡罗树本身不需要训练,它的本质是几个可行的走法,几步后会占优势,即走一步看三步,未来发生的事情取决于现在的动作。

过程大致如下:选出一个动作a,根据概率可以选出好的动作,排除不好的动作;随后策略网络进行自我博弈,价值网络进行打分;重复上述步骤;选出得分高的动作进行执行。

Selection        Expansion         Evaluation        Backup

Selection:

观测到状态s(t),有多个actions可以选择,随机选择一个action,这个action并不会真的去做这个动作,对着个动作打分score(a)=动作价值Q(a)+系数*价值得分

其中1+N(a)是为了避免重复探索,刚开始的时候价值得分由Π决定,搜索次数多了之后,1+N(a)的值会升高,得分就变得很小了,Π 的影响就变小了。价值得分的部分,动作越好,得分越高,则价值就越高。

Expansion:

上一步骤选择的a(t)是假想动作,并没有真正执行,opponent假想动作a'(t),是opponent的策略网络根据Π‘(.|s'(t);θ)随机抽样来的,下一状态维s(t+1).

对手相当于环境,环境的状态转移函数是不知道的,使用对手的策略网络代替价值状态转移函数。

Evaluation:

自我博弈分出胜负后,获得奖励r(t),评价s(t)的好坏。价值网络评价s(t+1),V(s(t+1);w)评价胜算大小。重复很多次,a(t)由很多分数,求均值作为分数,反应s(t)的好坏。

Backup:

Q(a(t))评价a(t)的好坏,第一步选择时需要

根据s(t)选a(t),用Q和Π的分数加权选择at,Q是主要决策者,Π是一开始的策略网络。N(a)表示a被选中的次数,反应a的好坏。重复多次at=argmax a N(a).

总结:选择一个动作,一次模拟,Q(a),N(a)的分数初始化为0 ,重复多次,选择分数高的a进行执行。蒙特卡洛树搜索走一步进行多个模拟搜索。

 

7.Summary

7.AlphaGo Zero VS AlphaGo

AlphaGo Zero是AlphaGo的新版本。zero版本没有behavioral Cloning,直接进行强化学习,在这个例子中,人类知识反而是有害的。但是behavioralCloning总是有害的吗?并不是这样的,在物理世界中,直接使用强化学习是有代价的,当代价过大时,引入人类知识进行behavioral cloning就能弥补代价大的问题。

策略网络学习的不同,老版本模拟人类玩家,新版本模拟蒙特卡洛树搜索。

Zero版本是怎么使用蒙特卡洛树搜索的呢?

【Reinforcement Learning】AlphaGo 如何使用的强化学习?相关推荐

  1. 强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同?

    强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同? 目录

  2. Reinforcement Learning for UAV Attitude Control-强化学习的无人机姿态控制

    系列文章目录 Reinforcement Learning for UAV Attitude Control-强化学习的无人机姿态控制 文献链接 代码链接 作者:WILLIAM KOCH, RENAT ...

  3. 深度强化学习篇2:从Playing Atari with Deep Reinforcement Learning 看神经网络的输入,学习的状态空间

    Introduction:学习直接从高维的感观输入(视觉,语音)去直接控制智能体是强化学习一个长期的挑战.一些成功的RL应用都是依赖于hand-crafted的特征.最近深度学习的进步使提取高水平的特 ...

  4. Multiple Landmark Detection using Multi-AgentReinforcement Learning基于多智能体强化学习的多重地标检测

    目录 摘要 介绍 贡献 相关工作 方法 协作代理 实验 数据集 训练 测试 讨论 计算性能 结论 References 摘要 解剖标志的检测是医学图像分析和诊断.解释和指导应用的重要步骤. 对地标进行 ...

  5. dpg learning 和q_请问在强化学习的Qlearning中,如果状态-动作很多的话,该如何处理?...

    状态很多和动作很多是有细微差别的两类问题,看到大家都提到了function approximation,这是用来处理状态很多情况的好方法,但是动作很多则需要一些额外的方法支撑. 当状态来自元素极多的离 ...

  6. 学习笔记|强化学习(Reinforcement Learning, RL)——让AlphaGo进化得比人类更强

    文章目录 1. 题外话:人类棋手的最后赞礼 2. 强化学习概述 2.1 强化学习的目标也是要找一个Function 2.2 强化学习的三个基本步骤 2.2.1 定义一个function 2.2.2 定 ...

  7. 中科院自动化所介绍深度强化学习进展:从AlphaGo到AlphaGo Zero

    来源:德先生 概要:2016年初,AlphaGo战胜李世石成为人工智能的里程碑事件.其核心技术深度强化学习受到人们的广泛关注和研究,取得了丰硕的理论和应用成果. 深度强化学习进展:  从AlphaGo ...

  8. (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)

    本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...

  9. 机器学习-55-RL-07-Sparse Reward(强化学习-稀疏奖励:Reward Shaping,Curriculum Learning,Hierarchical RL)

    文章目录 Sparse Reward Reward Shaping(奖励塑造) Reward Shaping Curiosity(ICM) Curriculum Learning Curriculum ...

最新文章

  1. MySQL修改存储过程(ALTER PROCEDURE)
  2. Python函数细节:多数量参数、强制参数传递、返回多值、匿名/内联函数
  3. java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用
  4. HashMap put原理详解(基于jdk1.8)
  5. 人工智能(3)---未来已来,如何成为一名人工智能产品经理
  6. 概率论信息论基础(随机变量、常用概率分布、贝叶斯规则、信息论基础、结构化概率模型)
  7. 判断相等_C语言判断字符串是否为回文
  8. numactl mysql_CentOS学习笔记 - 10. 开发机mysql安装
  9. JAX-RS 2.0 REST客户端编程实例
  10. 如何使用DotfuscatorPro_4.9对软件进行加密
  11. Latex 语法总结(持续更新)
  12. 信息安全从业者工作规划及能力建设
  13. python header函数_Header函数
  14. Cross-lingual Document Retrieval using Regularized Wasserstein Distance
  15. 如何用电脑下载微信视频号中的视频?
  16. css媒体查询来兼容
  17. HCNP——RIPv1和RIPv2概况
  18. 文献阅读(60)ACL2021-Attention Calibration for Transformer in Neural Machine Translation
  19. 南开大学20春计算机应用基础在线作业,南开大学20春学期计算机应用基础在线作业参考答案...
  20. 【知识分享】如何制作Gif动态图

热门文章

  1. 0x80070570文件或目录损坏且无法读取CHKDSK修复方法
  2. 小幺鸡,简单好用的在线接口文档管理工具
  3. Web前端-购物车商城
  4. Leader 对我说:「bug 是改不完的」,这几个意思?
  5. vue交流群,康忙北鼻 如群二维码过期,请添加群主微信
  6. Need Review
  7. Python程序下载wyy音乐歌单/专辑
  8. 关于dorado中在配置sessionFactory中的packagesToScan的时候出现bean报错的情况
  9. 双11三连击 之 131个现金红包任性送
  10. Android App优化:内存优化、电量优化、网络优化等 (2)