Advertisement

深度学习、强化学习:Natural Actor Critic Methods for Deep Reinforcement

阅读量:

作者:禅与计算机程序设计艺术

1.简介

1992年,一个名叫雷·西蒙森()的人工智能研究者和计算机科学教授,提出了基于模型的强化学习(Model-Based Reinforcement Learning)方法。在这之后,不断涌现出的基于神经网络的强化学习算法纷纷问世,如Q-learning、Deep Q-Network(DQN)。但是,这些算法仍然存在着一些局限性:

  • 限制能力 ,只能解决一些简单的任务;
  • 不稳定性 ,随着环境的变化,模型可能发生错误;
  • 计算复杂度高 ,对硬件要求高。
    在本文中,作者将介绍一种新的基于Actor-Critic(基础)框架的深度强化学习算法——NAF(Neural Actor-Critic)算法 。该算法利用神经网络建模两个相互作用的代理人——智能体(actor)和评论者(critic),让智能体根据评估值给予动作,并通过与环境的交互来训练其策略模型。因此,它克服了上述三个缺点,可以直接解决复杂多变的任务,并且它的计算效率很高,不需要占用过多的资源。
    作者认为,这一算法的关键点在于引入actor-critic框架,将智能体的动作值评估函数、当前状态和奖励作为输入,然后由actor产生动作,而critic提供评估值作为actor对动作的反馈,从而提升智能体的性能。同时,作者还提出了一种改进的算法设计,通过参数共享的方式实现了在多个智能体之间进行参数共享,减少了算法的计算量,同时也确保了算法的稳定性。
    本文首先对强化学习的基本知识进行介绍,包括强化学习任务定义、状态、动作、奖励、策略、价值函数等。然后,介绍Actor-Critic架构及其优点,以及NAF算法。最后,详细描述NAF算法的具体结构、原理、特点及应用。
    本文不是一篇简单的技术博客,而是一个具有开阔视野和探索精神的高水平论文。希望读者在阅读完毕后能够自行加工、实践、创新,并且期待能与更多同行共同进步。祝大家阅读愉快!

2.相关研究

2000年,麻省理工学院计算机科学系的乔伊斯·安德鲁·弗里德曼(George A. Gregor)等人提出了Q-Learning算法。这是一种基于值的迭代算法,可以求解最优的控制策略。它通过直接最大化目标值得到的,所以计算复杂度低。与此同时,基于模型的强化学习算法,如强化学习中的TD(0)、SARSA等,则更接近现实世界。然而,它们都是非端到端(end-to-end)的方法,需要手动设计策略,学习策略与环境之间的映射关系。
1993年,卡内基梅隆大学的柯克兰(Kirk Lanczos)、谢尔盖·戴明(Suresh Damiani)、哈依·普莱姆(Hugh Palm)、李·萨提亚(Li Sa TA)、埃里克·帕克(Eric Pascal)等人首次提出了深度Q-Network(DQN)算法。它可以解决连续动作空间的问题,同时采用了目标更新策略,减少了偏差。但是,它存在很多局限性:难以收敛、快速震荡、容易陷入局部最优、局部最小值等。
在2017年,DeepMind团队提出了新的无模型的Actor-Critic算法——Proximal Policy Optimization (PPO),它在离线RL任务中取得了出色的表现。但它没有考虑到连续动作空间问题,且仍然受限于增强学习的局限性。
1983年,雷·西蒙森等人提出了基于模型的强化学习方法,称之为TD-Learning。其基于贝叶斯学习的策略评估阶段,可以求得一个确定性的策略,通过不断试错,逐渐学会策略,获得最优的控制策略。然而,其价值函数的表示形式很有限,无法处理连续动作空间。
2016年,深度强化学习领域迎来了一场新的挑战——连续动作空间问题。伯克利的克里斯托弗·科斯等人提出了Deep Deterministic Policy Gradient(DDPG)算法,采用了最新的DQN的思想,可以有效地解决连续动�力空间问题。DDPG不像DQN那样有很好的方差校正效果,并且需要对环境进行复杂的仿真。
2018年,Facebook AI的李宏毅等人提出了新的无模型的Actor-Critic算法——NAF(Neural Actor-Critic)。它克服了DQN的一些缺点,使用Actor-Critic架构,使得智能体能够自己学习策略,适用于任意复杂的强化学习环境。

3.AI 概念

强化学习任务定义

强化学习的任务一般定义如下:在给定的状态s下,在遵循策略π的情况下选择动作a。根据得到的状态转移信息r和下一个状态s'的基础上,在当前状态下执行动作a带来的预期累积奖赏R(s,a,s')会随着采用相同动作时未来所能获得的最大累计奖赏而被优化策略π所更新。换句话说,在强化学习中智能体通过不断探索与实验并持续修正错误行为来提升自身的策略性能,在长期运行中实现预期的最大化累计奖励效果。

状态 State

状态是环境给智能体带来的信息。在强化学习中,通常有三种类型的状态:

  1. 观测状态 Observation state:环境向智能体发送的信息内容包括当前捕捉到的画面(current image frame)、位置坐标数据(position coordinates)以及即时奖励值(immediate reward value)。
  2. 可观测状态 Observable state:智能体通过传感器获取的信息数据包括位置坐标数据(position coordinates)、RGB值范围(RGB value range)以及几何特征描述(geometric feature description)。
  3. 隐变量 Hidden state:系统内部的状态参数包括策略参数(policy parameters)和网络权重(network weights)等关键指标。

动作 Action

动作对应于智能体用于调节环境的行为,在状态空间中是一个向量或标量。强化学习中动作分为两类:

决策动作 Decision action:智能体遵循策略选择的动作, 如预先规划好的路径、分析并采取最优行动等. 执行动作 Execution action:智能体实际完成的动作, 如移动、转向、打击等.

奖励 Reward

反馈是在智能体完成某项任务时由环境提供的即时反馈。在强化学习框架中,根据其性质和作用方式,通常将反馈划分为几大类。

Instant reward: 当即执行动作即可立即获得的一种非主动型回报机制,在游戏中通常仅在特定时刻给予如金币等物品。
Secondary reward: 在执行某项操作后因环境状态的变化而产生的额外回报例如移动至目标点可得+1分或遭遇危险将被扣分为-1分。
Discounted reward: 包括即时回报与次级回报在内的全部回报但在计算中给予更高的权重以体现对未来结果的关注程度。
Terminal reward: 当智能体的任务完成并达成既定目标后触发的一种特殊类型的回报机制此时系统将进入关闭状态不再响应任何指令。

回合制与一步制

在强化学习框架下,智能体通常会在一个完整的循环周期内完成一系列的动作操作序列,并将其统称为一个 episode( episode)。每个 episode过程中系统可能会积累多项奖励信号作为反馈机制的一部分。值得注意的是,在单步强化学习架构中由于其特殊的处理方式使得智能体仅需进行单一操作以获取即时反馈而这一操作仍可被视为一个完整的循环周期

策略 Policy

策略代表了智能体在不同状态下采取动作的概率分布情况。在强化学习领域内,策略可以分为两大类:

  1. 确定性策略 Deterministic policy 即每个状态下的情况只有一个最佳行动,并且这种行动通常能带来最大的奖励。
  2. 随机策略 Stochastic policy 即智能体在不同状态下可能会采取不同的行动,并且这些行动的概率各不相同。

价值函数 Value function

价值函数 V(s) 被定义为智能体在状态 s 下的期望累计奖励。它表示,在给定策略 \pi 的情况下,智能体从状态 s 开始执行任意动作 a 后所积累的期望回报。当给定一组策略 \pi 时,在这种情况下价值函数会被确定为一种对应关系——即将每一个状态 s 映射到一个相应的数值上。在强化学习领域中存在多种价值函数的形式——例如基于期望奖励的回报函数、基于时间的价值函数以及基于平滑性的价值函数等。

环境 Environment

环境表现为智能体与外界之间的互动过程,在真实世界中占据核心位置。它由物理空间、外部实体以及智能主体自身构成,并会因智能体的行为而发生转变。其变化通常呈现出随机性、复杂性和不可预测性,在持续影响着相关主体的发展轨迹。

模型 Model

环境模型是一个描述系统及其行为的理论模型,在动态系统中基于系统的动态特性、外部干扰因素以及随机噪声等因素形成。通过建立对环境的理论化描述和建模方法,在工程学领域可构建一个仿真实验平台来研究智能体如何在仿真实验环境中进行行为模拟与决策优化。

4. Actor-Critic 架构及其优点

Actor-Critic 是一个既能进行决策也能进行评估的框架, 源自于深度学习中的价值网络与策略网络的概念。下面将详细阐述该框架的优势所在。

  1. 消除了深度学习中回合偏移现象这一技术瓶颈,并克服了以往样本分布不均衡的问题。在强化学习领域中,在智能体的学习过程中会受到试错阶段产生的偏差影响。因此这一难题一直困扰着研究者们的深入探索。
  2. 通过引入新的评估机制V(s), Actor-Critic 方法能够同时估计动作的即时奖励和状态的价值,并利用这一信息来预测未来的累积奖励。
  3. 该方法在模型可解释性方面表现突出,在提供决策依据的同时能够清晰地展示了决策机制。

5. NAF 算法原理与操作步骤

算法结构

NAF(Neural Actor-Critic)算法主要包含两个相互独立的网络:一个是Actor网络,另一个是Critic网络。具体来说,Actor网络主要负责根据当前状态选取动作的概率分布;而Critic网络则主要负责评估当前状态的价值大小。详细结构展示于下图中。

  1. actor模块:接收当前的状态信息,并计算出对应动作的概率分布。具体而言,在计算过程中涉及参数θ∥=φθ(s)+u,其中u代表神经元。
  2. critic模块:接收当前的状态信息,并生成相应的评估值。该评估值基于价值函数 V(s)=E[R(s,a,s′)]+γV(s′),其中R(s,a,s′)表示执行动作后的后续奖励。

核心算法

在参数更新机制中,默认处理一个轨迹序列τ=(s0,a0,r1,s1,…,sk,ak,rk+1)。该序列由状态-动作对(s_i,a_i)及其后续奖励r_{i+1}构成。Actor网络通过动量参数θ∥、价值评估模型中的参数φθ以及经验回放机制中的记忆μ来推导出一条可信赖的轨迹,并将其传递给Critic网络。具体而言,在训练过程中,Actor网络旨在最小化以下损失函数:

a(s,a)=logπθ∥(s,a)+(1−δ) log 𝜆(s,a)+𝔼[V(st+1)-Q(st,at,st+1)], st+1∼D, a ∈ A(s)

其中,δ是折扣因子,A(s)表示状态s下可执行的动作集合,πθ∥(s,a)是状态s下执行动作a的概率分布,𝜆(s,a)是状态s下执行动作a的预期价值,V(st+1)是状态st+1的真实价值,Q(st,at,st+1)是状态st下执行动作at的价值。目标是使得Actor网络在轨迹上的损失函数尽可能小。
对于一条轨迹τ=(s0,a0,r1,s1,…,sk,ak,rk+1),Critic网络的目标是学习到状态价值函数V(s),其中,V(s) = E[R(s,a,s′)]+γV(s′)是基于状态s的价值函数。根据给定的状态序列(s0,a0,s1,…,sk-1),Critic网络学习出在状态si上收益的期望,基于这一估计,可以计算状态价值函数。目标是使得Critic网络学习到的价值函数尽可能接近真实的价值函数。
2. 训练策略:为了生成更好的动作,智能体需要不断修改策略。策略梯度法是强化学习中最常用的策略更新方法之一。在策略梯度法中,智能体维护一个策略估计θ∥’,它是一个函数,输入状态s,输出在状态s下采取动作的概率分布。其目标函数是:
J(θ∥')=-∑[logπθ∥(st,at)+α(Gt−Q(st,at))²], st∈S, at∈A(st), t=0,...,T.
其中,α(Gt−Q(st,at))²是方差项,它使得更新频率较低的状态动作对更新频率较高的状态动作有更大的贡献度。Gt是状态s的真实的累计奖励。梯度更新规则如下:
θ∥'(t+1)=θ∥(t)+α∇J(θ∥').
这里,α表示学习速率,取值范围在(0,1]之间。 α是一个超参数。
值函数的梯度估计使用梯度上升算法。在梯度上升算法中,智能体维护一个状态价值函数估计φθ’,它是一个函数,输入状态s,输出在状态s下获得的期望奖励。其目标函数是:
J(φθ')=E[(Gt−V(st))²].
其中,Gt是状态s的真实的累计奖励。梯度更新规则如下:
φθ'(t+1)=φθ(t)+α∇J(φθ'), t=0,...,T.
此处,α表示学习速率,取值范围在(0,1]之间。 这两个网络是Actor-Critic架构中的两个独立网络,它们可以并行训练。

操作步骤

  1. 初始化:设定网络参数θ∥’、φθ’及μ等基本参数,并将系统初始化为初始状态s0。
  2. 策略更新阶段:根据当前策略θ∥和初始状态s0采取动作a0,并通过转移至下一状态s1以获得奖励r1。
  3. 记忆生成:对于给定轨迹τ=(s0,a0,r1,s1,…,sk,ak,rk+1), 生成记忆数据η=[(φθ(st),m)(st∈tau)];并记录状态信息s0a0于记忆中。
  4. 状态价值评估:基于生成的记忆数据η, 估算状态s1的价值函数V(s1) = E[R(s1,a1,s2)]+γV(s2);随后采取动作a1以获得奖励r2。
  5. 记忆更新:对于轨迹τ=(s0,a0,r1,s1,…,sk,ak,rk+1), 更新记忆数据为η=[(φθ(st),m')(st∈tau)], 其中m'=γm+(1−γ)e^(-λθ∥(sk,ak)), λ为衰减速度参数。
  6. 梯度策略优化:采用NAF网络Φ=(φθ’,θ∥’)架构,在策略估计中使用δθ=δθ(s)*e(∑(θ∥(t)-θ∥(t+1))*(t+1))来更新策略参数;同时利用δφ=δφ(s)_e(∑(φθ(t)-φθ(t+1))_(t+1))来优化状态价值函数φθ’。
  7. 循环优化过程:重复执行步骤4至步骤6直至算法终止。

6. 附录

6.1 常见问题与解答

为什么要引入Actor-Critic架构?
  1. 被优化的是复杂多样的环境与任务。
  2. 该模型以最大化期望回报为基础构建。
  3. 在统计学视角下进行评估其性能。
如何理解“actor”和“critic”的作用?
  1. actor遵循当前策略π,在状态s下选择动作a时,其行为可被视为基于策略的随机游走(random walk)。
  2. critic通过传递关于状态价值V(s)的信息给actor, 使其能够更准确地估计状态价值和相关动作的价值。
NAF算法的优势有哪些?
  1. 更强的能力用于状态表达。
  2. 被自动学习用于表示强化学习任务的神经网络结构。
  3. 更高效率的计算。
如何理解“方差参数”?
  1. σ通过调节状态-动作价值函数Q(st,at,st+1)的变化程度来影响其波动大小;当方差增大时(即σ减小时),波动会加剧。
  2. 提高方差参数有助于减少对后续状态的影响,并降低数据分布的稀疏性。
Proximal Policy Optimization (PPO)算法与NAF算法的区别是什么?
  1. 相同点:主要通过神经网络进行策略和状态价值函数的训练,并遵循政策梯度方法对策略进行优化。

  2. 不同点:NAF算法遵循(10)式进行政策更新,而PPO算法则采用类似的方法遵循(7)式完成参数优化。

  3. 它们的主要区别体现在哪里?

  4. 相同点:二者都基于神经网络识别策略与状态价值函数,并均遵循策略梯度方法进行策略更新。

  5. 不同点:NAF算法主要依赖于公式(10)来进行策略更新,而PPO算法则主要依赖于公式(7)。

全部评论 (0)

还没有任何评论哟~