- AlphaGo如何战胜人类围棋大师:智能硬件TensorFlow实践
- 陈震 郑文勋编著
- 2658字
- 2021-03-28 15:17:37
3.1 强化学习基础
3.1.1 强化学习概述
1.强化学习的原理
强化学习(Reinforcement Learning)是一种通用的决策框架(Decision-Making Framework)。在强化学习中,智能体(Agent)具有采取动作(Action)的能力(Capacity),每次动作都会影响智能体的未来状态(State),返回一个标量的奖赏信号(Reward Signal)来量化表示成功与否(Success)。强化学习算法的目标(Goal)就是如何采取动作(Action)最大化未来的奖赏(Future Reward)。强化学习示意图如图3-1所示。
简单地说,强化学习是使用反馈来更新行动,以获得最大化收益的算法。而深度学习是表示学习的通用框架。给定目标,学习到需要达到目标的表示。深度学习使用最小的领域知识,特征表示直接从原始输入中自动学习获得。
2.强化学习的观测
在每个时间步t,智能体的行为如下。
(1)执行动作at。
图3-1 强化学习示意图
(2)获得一个环境的观测ot。
(3)获得一个标量的奖赏rt。
外界环境的行为如下。
(1)接收到智能体的动作at。
(2)发出一个观测ot+1给智能体。
(3)发出一个奖赏rt+1。
这里经验(Experience)就是一组观测、动作、奖赏的序列。
o1,r1,a1,…,at-1,ot,rt
状态st可以认为是经验的函数,即
st=f(o1,r1,a1,…,at-1,ot,rt)
在一个完全可观测的环境,以上公式简化为
st=f(ot)
3.强化学习的要素
从强化学习智能体的角度看,强化学习包含一组要素组件。
(1)策略(Policy)是指智能体的行为函数。
(2)价值(Value)函数是指每个状态与动作的成效。
(3)模型(Model)是指智能体对环境的建模表示。
按照要素的区分,强化学习的方法包括基于价值的强化学习(Value-based RL)、基于策略的强化学习(Policy-based RL)和基于模型的强化学习(Model-based RL)。
基于价值的强化学习在于在任何策略下,估计最优的价值函数。
基于策略的强化学习在于寻找最优策略π∗。
策略是智能体的行为,将状态映射为动作,例如,有如下确定性策略和随机策略。
(1)确定性策略(Deterministic Policy):a=π(s)。
(2)随机策略(Stochastic Policy):π(a|s)=P[a|s]。
3.1.2 深度强化学习
深度强化学习(Deep Reinforcement Learning,Deep RL)就是把强化学习RL和深度学习DL结合起来。用强化学习定义目标,用深度学习给出相应的机制,如Q学习等技术,以实现通用人工智能。深度强化学习的核心原理是使用深度神经网络来近似表示强化学习中的价值函数、策略和模型。
深度强化学习又分为基于价值的深度强化学习(Value-based Deep RL)、基于策略的深度强化学习(Policy-based Deep RL)和基于模型的深度强化学习(Model-based Deep RL)。
1.基于价值的深度强化学习
1)深度Q网络
价值函数(Value Function)就是预测未来的奖励。Q值函数可以给出长期的期望收益,在策略π的情况下,一般使用折扣因子。
Qπ(s,a)=E[rt+1+γrt+2+γ2rt+3+…|s,a]
模型是从经验中学习的,可以作为环境的一个代理。可以使用预先查找算法来模拟。
价值函数可以用使用权重为w的Q网络(Q-network)来表示,如图3-2所示,即,
Q(s,a,w)=Q∗(s,a)
2)Q学习
Q学习(Q-learning)就是优化Q值应遵循Bellman方程,写成如下Bellman方程形式:
图3-2 价值函数用权重为w的Q网络来表示
Q∗(s,a)=ES′[r+γmax a′Q(s′,a′)∗|s,a]
Q学习把公式中的右侧视为一个整体,人们可以使用深度神经网络去近似Q值函数,采用梯度下降法最小化损失函数的均方误差的学习过程。损失函数形式表示如下:
l=(r+γmax aQ(s′,a′,w)-Q( s,a,w))2
通过这样训练生成的深度神经网络,又称为深度Q网络(Deep Q-Network)。
3)经验回放
Q∗收敛可以使用表查询表示方法,但是使用深度神经网络的方法会出现分歧问题(diverge)。这是样本之间的相关性和目标的非平稳性造成的。
为了解决这个问题,消除学习样本的相关性,采用经验回放(Experience Replay)的方法,如图3-3所示。
图3-3 经验回放
从数据集中采样经验,并在损失函数中更新。为了解决非平稳性问题,目标的参数w-是固定的。
l=(r+γmax aQ(s′,a′,w-)-Q( s,a,w))2
2.基于策略的深度强化学习
1)深度策略网络(Deep Policy Network)
通过深度神经网络(权重参数u)表示策略:
a=π(a|s,u)或a=π(s|u)
定义目标函数是整体折扣后的回报,一般使用折扣因子γ。
L(u)=E[r1+γr2+γ2r3+…|π(s,u)]
通过随机梯度下降法来优化目标函数,例如修正权重u来获得更多的回报。
一个随机策略π(a|s,u)的梯度为
如果a是连续可微分的,一个确定性策略a=π(s|u)的梯度可以进一步简化为
注:全书中出现的对数没有底数,是因为所参考的资料中不限制log的底数,默认是自然对数底。
2)Actor-Critic算法
过去的时间里,人们提出了单表演者(Actor-only)、单评论家(Critic-only)、表演者-评论家(Actor-Critic)等强化学习方法。其中,表演者(Actor)就是策略(Policy)函数的同义词,评论家(Critic)就是价值(Value)函数的同义词。
Actor-only方法一般采用一组参数化的策略来工作,这样可以直接使用优化过程。这种参数化策略的优点是连续动作的范围可以生成,但是优化方法(如策略梯度方法)会在梯度估计时出现方差高的问题,这又将导致学习比较慢的问题。
Critic-only方法使用时间差分学习,具有期望回报估计方差低的优点。从Critic-only方法直接导出策略的方法是选择贪婪动作。选择那些价值函数指示是平均回报最高的动作。然而,这需要诉诸于优化的流程,在进入每个状态时,找到最大价值的动作。当动作空间是连续时,这是一个计算密集的任务。所以,Critic-only方法一般会离散化连续动作空间,此后,在动作空间的优化就变成一个枚举过程。
Actor-Critic方法组合Actor-only和Critic-only方法的优点。尽管参数化的Actor可以计算连续动作,无须在价值函数上优化,而Critic的优点是为Actor提供关于行为效果的低方差的知识。更具体地说,Critic对平均回报的估计允许Actor用来更新梯度,使其具有的方差较小,这就加速了学习过程。Actor-Critic方法相比于Critic-only方法,具有更好的收敛属性。所以,Actor-Critic方法的良好属性,使其成为在实际应用中首选的增强学习算法。
Actor-Critic算法的估计价值函数为Q(s,a,w)≈Qπ(s,a)。通过随机梯度下降法更新权重。
如果a是连续可微分的,采用确定性策略a=π(s|u)的梯度可以进一步简化为
3.基于模型的深度强化学习
基于模型的深度强化学习(Mode-lbased Deep RL)试图对外界环境建模,创建预测模型(Predictive Model),从而预测反馈的奖赏和观察。对于一些计算机游戏,如Atari,可以通过卷积神经网络和循环神经网络对输入的人类选手数据进行训练,建立预测模型。但是对于计算机围棋等应用,因为一般无法直接建立模型,所以多采用模型无关的深度强化学习(Mode-lfree Deep RL)方法。
4.深度强化学习的应用
深度强化学习的应用广泛,包括计算机游戏、计算机围棋、计算机扑克、机器人运动控制。基于价值的强化学习,来训练神经网络DQN,可学会玩各类游戏,如Atari等。
2015年11月,谷歌的Deep Mind计算机围棋AlphaGo,首次战胜人类专业棋手。2017年8月,OpenAI的计算机游戏智能体在Data2游戏中,首次击败了人类最好选手。
3.1.3 强化学习框架
2016年11月,Google Deep Mind公司开源了Lab软件,Lab源代码托管在Github上,见https://github.com/deepmind/lab。
2016年12月,OpenAI组织也开源了OpenAI Universe软件,Universe源代码托管在Github上,见https://github.com/openai/universe。