Deep RL Course ——Unit 1 Introduction
- 从理论和实践层面深入学习深度强化学习。
- 学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。
- 在独特的环境中训练智能体,比如 SnowballFight、Huggy the Doggo、VizDoom等,还有经典环境,如 Space Invaders、PyBullet 等。
强化学习框架
RL过程
奖励假设(The reward hypothesis)
为什么智能体的目标是最大化预期回报?因为强化学习基于奖励假设,即所有目标都可以描述为最大化预期回报(预期累积奖励)。这就是为什么在强化学习中,为了获得最佳行为表现,我们的目标是学习采取能够最大化预期累积奖励的动作。
马尔可夫性质(Markov Property)
强化学习过程被称作马尔可夫决策过程(Markov Decision Process,简称 MDP)。马尔可夫性质,也称为无记忆性或无后效性,是概率论和随机过程理论中的一个重要概念。它描述了一个随机过程在给定现在状态及所有过去状态的情况下,其未来状态的条件概率分布仅依赖于当前状态,而与过去状态无关。换句话说,系统的下一个状态只取决于当前状态,而与之前的状态序列无关。
观测空间/状态空间(Observations/States Space)
观测(Observations)和状态(States)是智能体从环境中获取的信息。在视频游戏的情境下,观测可能是一帧画面(即屏幕截图)。而在交易智能体的情境下,观测可能是某只股票的价格等。
然而,我们需要对观测和状态进行区分:
状态(State, s):状态是对世界当前状况的完整描述,不存在任何隐藏信息。
观测(Observation):观测是智能体从环境中获取的部分信息,它可能并不包含关于世界当前状况的完整描述。
动作空间(Action Space)
动作空间是指在一个环境中,智能体可以采取的所有可能动作的集合。动作空间的设计对于强化学习算法的性能和效率至关重要,因为它直接决定了智能体在决策时需要考虑的选项数量。动作空间可以分为离散空间和连续空间两种类型:
离散动作空间(Discrete Action Space)在离散动作空间中,智能体可以采取的动作数量是有限的。每个动作都可以被明确地定义和区分。
连续动作空间(Continuous Action Space)在连续动作空间中,智能体可以采取的动作数量是无限的,或者至少是在一个连续的范围内变化。动作通常由实数或向量表示,可以取任意值(在允许的范围内)。
奖励与折扣(Rewards and the discounting)
奖励在强化学习(RL)中至关重要,因为它是智能体获得的唯一反馈。借助奖励,智能体能够判断所采取的行动是好是坏。每个时间步 t 的累积奖励可以表示为:
R ( τ ) = r t + 1 + r t + 2 + r t + 3 + . . . R(\tau) = r_{t+1} + r_{t+2} + r_{t+3} + ... R(τ)=rt+1+rt+2+rt+3+...
在强化学习中,对奖励进行折扣(discounting)是一个核心概念,主要基于以下几个关键原因:
- 避免短视:没有折扣,智能体可能过于追求即时高奖励,而忽视长远利益。折扣机制鼓励智能体考虑长远规划,避免陷入局部最优解。
- 数学和计算上的便利性:折扣使得累积奖励的期望值有界,从而保证了强化学习算法(如值迭代、策略迭代)的收敛性。这对于算法的稳定性和可靠性至关重要。
- 模型不确定性和风险规避:
- 不确定性处理:在现实世界中,环境往往是不确定的,未来状态和奖励难以准确预测。折扣机制可以看作是对未来不确定性的一种处理方式,通过降低未来奖励的权重,减少了对未来不确定性的过度依赖。
- 风险规避:折扣还体现了对风险的规避。由于未来奖励的不确定性增加,智能体可能更倾向于选择当前确定的高奖励,而非冒险追求未来可能的高奖励。
定义折扣率(Gamma)
R ( τ ) = ∑ k = 0 ∞ γ k r t + k + 1 R(\tau) = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} R(τ)=k=0∑∞γkrt+k+1
gamma参数,取值范围必须在 0 到 1 之间。在大多数情况下,gamma 的取值介于 0.95 和 0.99 之间。
- Gamma 值越大,折扣越小。这意味着智能体更加关注长期奖励。
- 相反,Gamma 值越小,折扣越大。这表明智能体更倾向于关注短期奖励。
强化学习任务类型
在强化学习中,任务是强化学习问题的一个具体实例。根据任务的结构和特性,我们可以将强化学习任务分为两大类:
片段式任务(Episodic Task)
- 定义:在片段式任务中,存在一个明确的起始点和终止点(也称为终端状态)。一个完整的任务执行过程被称为一个“片段”(episode),它由一系列状态(States)、动作(Actions)、奖励(Rewards)以及新的状态组成。
- 示例:
- 以经典游戏《超级马里奥兄弟》为例,一个片段开始于马里奥进入一个新的关卡,结束于马里奥被击败或到达关卡的终点。在这个片段中,马里奥需要不断采取动作来避开障碍物、收集金币,并最终到达终点。
连续性任务(Continuing Task)
- 定义:与片段式任务不同,连续性任务没有明确的终止点。智能体在一个持续的环境中不断采取动作,并接收奖励。
- 示例:
- 考虑一个机器人控制任务,机器人需要在工厂中持续执行任务,如搬运物品、装配零件等。这个任务没有明确的终止点,机器人需要不断学习并优化其控制策略,以提高任务执行的效率和准确性。
探索与利用的权衡
最后,在探讨解决强化学习问题的不同方法之前,我们必须再讨论一个非常重要的主题:探索与利用的权衡。探索(Exploration)是指通过尝试随机动作来探索环境,以获取更多关于环境的信息。利用(Exploitation)则是指利用已知的信息来最大化奖励。
解决探索/利用的权衡问题
在强化学习中,探索(Exploration)与利用(Exploitation)的权衡是一个核心挑战。智能体需要在尝试新动作以获取更多信息(探索)和利用已知信息以最大化当前奖励(利用)之间找到平衡。以下是一些解决这一权衡问题的主要方法:
- ε-贪心策略(ε-Greedy)以概率 ϵ 随机选择一个动作(探索),以概率 1−ϵ 选择当前估计的最优动作(利用)。
- 软最大策略(Softmax/Boltzmann Exploration)根据动作的估计价值,通过 softmax 函数计算每个动作的选择概率。价值越高的动作被选择的概率越大,但所有动作都有非零概率被选择。
- 上置信界算法(UCB)在选择动作时,不仅考虑动作的估计价值,还考虑动作的不确定性(即探索的必要性)。通常选择价值高且不确定性大的动作。
- 贝叶斯方法 使用贝叶斯框架来建模动作价值的分布,通过后验分布来量化不确定性。智能体根据后验分布选择动作,通常选择期望价值高且不确定性大的动作。
- 汤普森采样(Thompson Sampling)根据动作价值的后验分布,随机采样一个价值,然后选择采样价值最高的动作。
- 深度强化学习中的探索方法
- 噪声网络(Noisy Networks):
在神经网络的权重中添加噪声,使得智能体的策略具有一定的随机性,从而实现探索。 - 计数法(Count-Based Exploration):
对状态或状态-动作对的访问次数进行计数,根据访问次数调整探索的强度。通常用于离散状态空间。 - 内在奖励(Intrinsic Motivation):
除了环境提供的外部奖励外,智能体还获得一个内在奖励,鼓励其探索新奇或不确定的状态。 - 好奇心驱动(Curiosity-Driven Exploration):
智能体通过预测模型来评估状态的“新奇性”,并根据新奇性获得奖励,从而鼓励探索。
- 噪声网络(Noisy Networks):
解决强化学习(RL)问题的两种主要方法
换句话说,我们如何构建一个强化学习智能体,使其能够选择能够最大化其预期累积奖励的动作?
策略 π
策略 π 是智能体的“大脑”,它是一个函数,能够根据智能体当前所处的状态告诉我们应该采取什么动作。因此,策略 π 定义了智能体在给定状态下的行为。这一策略(Policy)正是我们希望学习的函数,我们的目标是找到最优策略 π,即当智能体依据该策略行动时,能够最大化其预期回报的策略。我们通过训练来找到这个最优策略 π。找到这个最优策略 π ,存在两种方法:
- 直接方法,即教导智能体学习在当前状态下应采取何种动作:这被称为基于策略的方法(Policy-Based Methods)。
- 间接方法,即教导智能体学习哪个状态更具价值,然后采取能够导向更具价值状态的动作:这被称为基于价值的方法(Value-Based Methods)。
基于策略的方法(Policy-Based Methods)
这个策略函数的作用是定义从每个状态到最佳对应动作的映射关系。具体而言,它可以为每个状态指定一个具体的最佳动作;或者,它也可以为某个状态下所有可能的动作定义一个概率分布,表示智能体选择每个动作的可能性。
- Deterministic : a = π ( s ) a = \pi(s) a=π(s)
- Stochastic : π ( a ∣ s ) = P [ A , s ] \pi(a|s) = P[A,s] π(a∣s)=P[A,s]
基于价值的方法(Value-based methods)
在基于价值的方法中,我们并不直接学习策略函数,而是学习一个价值函数(value function),该函数将状态映射到处于该状态时的预期价值。一个状态的价值是指,如果智能体从该状态出发,并按照我们的策略行动,它所能获得的预期折扣回报(expected discounted return)。“按照我们的策略行动”仅仅意味着我们的策略是“前往价值最高的状态”。
v π ( s ) = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . ∣ S t = s ] v_{\pi}(s) = \text{E}_{\pi}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ...|S_t = s] vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+...∣St=s]
强化学习中的“深度”
但“深度”(Deep)这一概念是如何融入强化学习其中的呢?深度强化学习(Deep Reinforcement Learning)引入了深度神经网络来解决强化学习问题——这也是“深度”一词的由来。例如,两种基于价值(value-based)的算法:Q-Learning(经典的强化学习算法)和深度Q-Learning(Deep Q-Learning)。两者的区别在于:在第一种方法(Q-Learning)中,我们使用传统算法来创建一个Q表,该表帮助我们确定在每个状态下应采取何种动作。而在第二种方法(深度Q-Learning)中,我们将使用神经网络来近似Q值。
补充阅读材料
Deep Reinforcement Learning
- Reinforcement Learning: An Introduction, Richard Sutton and Andrew G. Barto Chapter 1, 2 and 3
- Foundations of Deep RL Series, L1 MDPs, Exact Solution Methods, Max-ent RL by Pieter Abbeel
- Spinning Up RL by OpenAI Part 1: Key concepts of RL
Gym