蘑菇书(EasyRL)学习笔记(2)
1、序列决策
1.1、智能体和环境
如下图所示,序列决策过程是智能体与环境之间的交互,智能体通过动作影响环境,环境则返回观测和奖励。智能体的目标是从这些反馈中学习出能最大化长期奖励的策略,这一过程通过不断试错和调整实现强化学习的核心。
1.2、奖励
奖励是环境给予智能体的一种标量反馈信号,反映智能体在某一步策略选择的表现。强化学习的目标是最大化期望的累积奖励,不同环境中奖励的定义也各不相同。例如:
- 在象棋中,赢得比赛时智能体获得正奖励,输则获得负奖励;
- 在股票管理中,奖励基于股票的收益和损失;
- 在雅达利游戏中,奖励体现在游戏分数的增减,稀疏奖励会增加游戏的难度。
通过这些奖励机制,智能体可以评估并优化其策略。
1.3、序列决策
在强化学习环境中,智能体的目标是通过选择一系列动作来最大化长期奖励。由于奖励通常是延迟的,智能体在采取某个动作后,可能要很久才能得知其实际影响。例如,如下图所示,在雅达利的Pong游戏中,智能体在游戏结束时才知道之前的动作是否有效。这个过程中,近期奖励与远期奖励的权衡成为一个重要课题,研究如何帮助智能体获得更多的远期奖励。
智能体在与环境交互时会获得一系列的观测、动作和奖励,形成历史序列:
在做出当前动作时,智能体会基于之前的历史数据进行决策,因此整个游戏状态可以视为关于历史的函数:
完全可观测环境
-
定义:当智能体能够观察到环境的所有状态时,称为完全可观测环境。
-
状态更新:
-
环境状态更新:
-
智能体状态更新:
-
-
马尔可夫决策过程(MDP):
-
状态等价:
-
部分可观测环境
-
定义:当智能体的观测不能包含环境运作的所有状态时,称为部分可观测环境。
-
示例:
-
在黑杰克游戏中,智能体只能看到牌面上的牌。
-
在雅达利游戏中,智能体只能看到当前的电视画面。
-
-
部分可观测马尔可夫决策过程(POMDP):
-
描述:部分可观测马尔可夫决策过程是马尔可夫决策过程的一种泛化,具有马尔可夫性质,但智能体只能感知部分观测值。
-
示例:在自动驾驶中,智能体只能感知传感器采集的有限环境信息。
-
-
七元组描述:POMDP 可以用以下七元组描述:
-
-
:状态空间(隐变量)
-
:动作空间
-
:状态转移概率
-
:奖励函数
-
:观测概率
-
:观测空间
-
:折扣因子
-
-
Q: 状态和观测有什么关系?
A: 在深度强化学习中,状态是对环境的完整描述,包含所有决策所需的信息,而观测则是对状态的部分描述,可能遗漏关键信息。例如,在自动驾驶中,状态可能包括车辆的位置、速度和周围环境信息,而观测可能只是摄像头捕获的图像或激光雷达的距离数据,无法全面反映车辆的真实状态。
状态和观测通常用实值的向量、矩阵或更高阶的张量来表示。例如,视觉观测可以通过 RGB 像素值的矩阵表示,每个像素的颜色由三个值(红、绿、蓝)组成;而机器人的状态则可以用关节的角度和速度构成的向量表示,提供有关机器人的运动和位置的信息。这种表示方法使得算法能够有效地处理复杂数据,进行学习和决策。
2、动作空间
定义:有效动作的集合在给定的环境中被称为动作空间(action space)。
离散动作空间(Discrete Action Space)
-
特征:智能体的动作数量是有限的。
-
示例:
-
在雅达利游戏中,智能体可以选择的动作如“向左移动”、“向右移动”、“跳跃”、“射击”等,构成有限的动作集合。
-
在围棋(Go)中,智能体可以选择的动作是有限的落子位置。
-
连续动作空间(Continuous Action Space)
-
特征:动作是实值的向量,动作数量是无限的。
-
示例:
-
在物理世界中控制一个智能体,例如一个走迷宫的机器人,如果它可以向任意角度(例如360°)进行移动,则其动作空间为连续动作空间。
-
另一个例子是一个可以调节速度和方向的无人驾驶汽车,其动作空间也是连续的。
-
3、强化学习智能体的组成成分和类型
对于一个强化学习智能体,它可能有一个或多个如下的组成成分。这些组成部分共同作用,使智能体能够在复杂的环境中进行学习和决策。
-
策略(Policy)
-
定义:策略是智能体选择下一步动作的方法或规则。
-
功能:策略可以是确定性的(给定状态下总是选择同一动作)或随机的(给定状态下以一定概率选择动作)。智能体通过策略来探索和利用环境,以最大化长期奖励。
-
-
价值函数(Value Function)
-
定义:价值函数用于评估当前状态的价值,即智能体进入某个状态后,未来奖励的期望总和。
-
功能:
-
价值函数的值越大,说明智能体进入该状态后能够获得的奖励潜力越大。
-
通常有两种类型的价值函数:
-
状态价值函数(V(s)):表示从状态s开始的期望奖励。
-
动作价值函数(Q(s, a)):表示在状态s下采取动作a后的期望奖励。
-
-
-
-
模型(Model)
-
定义:模型是智能体对环境的理解,表示环境状态的转移和奖励结构。
-
功能:
-
模型用于预测环境的行为,包括状态转移概率和奖励分布。
-
在某些强化学习方法中,智能体可以利用模型进行规划(如模拟未来状态和奖励),以制定更优的策略。
-
-
3.1、策略(Policy)
策略是智能体的动作模型,它决定了智能体的动作。它其实是一个函数,用于把输入的状态变成动作。策略可分为两种:随机性策略和确定性策略。
通常情况下,强化学习一般使用随机性策略,随机性策略有很多优点。比如,在学习时可以通过引入一定的随机性来更好地探索环境;随机性策略的动作具有多样性,这一点在多个智能体博弈时非常重要。采用确定性策略的智能体总是对同样的状态采取相同的动作,这会导致它的策略很容易被对手预测。
随机性策略(Stochastic Policy)
-
表示:用 π 函数表示,即 。
-
功能:输入一个状态 ,输出一个动作的概率分布。通过对该概率分布进行采样,智能体可以选择一个动作。
-
示例:如果在某个状态下,智能体有 0.7 的概率选择“向左移动”,0.3 的概率选择“向右移动”,那么通过采样,智能体可能会选择“向左移动”或“向右移动”。
确定性策略(Deterministic Policy)
-
表示:确定性策略直接选择最有可能的动作,即 。
-
功能:在给定状态下,智能体始终选择使得价值最大的动作。
-
示例:如下图所示,在雅达利游戏中,输入当前游戏的一帧图像,策略函数输出决定智能体是否向左或向右移动。
3.2、价值函数(Value Function)
-
定义:价值函数用于评估状态的好坏,其值是对未来奖励的预测。我们希望在尽可能短的时间内获得尽可能多的奖励。
-
折扣因子(Discount Factor):在价值函数中引入折扣因子 (取值范围 ),反映了未来奖励的价值随着时间的推移而减少。
-
数学表达:
示例
假设在一个简单的迷宫游戏中,智能体在状态 下获得的奖励序列为 。如果我们选择 ,那么价值函数的计算为:
Q函数
我们还有一种价值函数:Q 函数。Q 函数里面包含两个变量:状态和动作。表示在特定状态下采取特定动作后,未来获得奖励的期望。其定义为:
示例
假设在同一个迷宫游戏中,智能体在状态 下选择动作 a1a_1a1 时获得的奖励序列为 ,选择动作 时获得的奖励序列为 。如果我们依然选择 ,那么 Q 函数的计算为:
-
对于动作 :
-
对于动作 :
优势
-
使用 Q 函数:通过学习 Q 函数,智能体可以在特定状态下选择最优动作。具体来说,当我们得到 Q 函数后,进入某个状态要采取的最优动作可以通过选择最大 Q 值的动作得到:
在这个例子中,智能体会选择动作 ,因为 是最高的。
3.3、模型(Model)
第 3 个组成部分是模型,模型决定了下一步的状态。下一步的状态取决于当前的状态以及当前采取的动作。它由状态转移概率和奖励函数两个部分组成。状态转移概率即:
这个表达式表示在状态 下采取动作 后,转移到状态 的概率。
奖励函数
-
数学表达:
奖励函数表示在当前状态采取某个动作后,期望获得的奖励。
马尔可夫决策过程(MDP)
-
当策略、价值函数和模型三个组成部分都确定后,就形成了一个马尔可夫决策过程。如下图所示,这个决策过程可视化了状态之间的转移以及采取的动作。
示例:走迷宫的例子
假设我们有一个迷宫环境,如下图所示,智能体需要从起点(start)到达终点(goal)。每走一步,智能体会获得 −1 的奖励。智能体可以采取的动作是往上、下、左、右走,当前状态由智能体所在的位置描述。
基于策略的强化学习(Policy-Based RL)
-
在这种方法下,经过学习后,智能体会在每个状态得到一个最佳动作。
-
示例:如下图所示,在起点位置,最佳动作是往右走;在第二格,最佳动作是往上走;在第三格,最佳动作是往右走。通过这样的策略,智能体能够快速到达终点。
基于价值的强化学习(Value-Based RL)
-
在这种方法下,智能体利用价值函数作为导向,每个状态返回一个价值。
-
示例:如下图所示,在起点位置的价值是 −16,因为最快可以 16 步到达终点;当智能体接近终点时,价值逐渐增大。例如,第二格的价值是 −15,智能体比较上、下两格的价值,发现上面格子的价值变为 −14,而下面的价值是 −16,因此智能体会选择往上走。
通过这两种不同的强化学习方法,智能体能够根据策略或价值评估来找到最佳路径,快速到达终点。这种结构化的学习方式使得智能体在复杂环境中能有效决策。
3.4、强化学习智能体类型
3.4.1、基于价值的智能体与基于策略的智能体
-
基于价值的智能体(Value-Based Agent)
-
定义:这种智能体显式地学习价值函数,并通过该价值函数隐式地学习策略。
-
特点:
-
通过评估状态或状态-动作对的价值,智能体能够推导出最佳策略。
-
通常使用 Q 函数或状态价值函数来指导决策。
-
-
示例:Q-learning 算法就是一种典型的基于价值的学习方法,智能体通过学习 Q 值来选择最佳动作。
-
-
基于策略的智能体(Policy-Based Agent)
-
定义:这种智能体直接学习策略,给定一个状态时输出对应动作的概率。
-
特点:
-
不学习价值函数,而是专注于优化策略本身。
-
可以有效处理连续动作空间和高维状态空间。
-
-
示例:策略梯度方法是基于策略的强化学习方法,智能体通过优化策略参数来提高预期奖励。
-
演员-评论员智能体(Actor-Critic Agent)
-
定义:这种智能体同时学习策略和价值函数,通过两者的交互来得到最佳动作。
-
特点:
-
“演员”(Actor)负责选择动作,即直接优化策略;“评论员”(Critic)则评估当前策略的价值,即学习价值函数。
-
结合了基于价值和基于策略的优点,能够更高效地学习。
-
-
示例:A3C(Asynchronous Actor-Critic)算法就是一种流行的演员-评论员方法,利用多个智能体并行学习来提高训练效率。
Q: 基于策略和基于价值的强化学习方法有什么区别?
A: 基于策略和基于价值的强化学习方法的主要区别在于它们如何做出决策和优化。
基于策略的方法:
定义: 智能体直接学习一个策略,即在给定状态下选择动作的概率分布。
优化方式: 通过试探和调整策略,以最大化预期奖励。
例子: 想象一个迷宫,智能体通过不断尝试不同的路径(策略),学习哪条路径能更快到达出口。
算法: 策略梯度(Policy Gradient)算法。
基于价值的方法:
定义: 智能体维护一个价值函数,评估不同状态和动作的价值。
优化方式: 通过选择具有最高价值的动作来决策,而不需要显式地定义策略。
例子: 在同一个迷宫中,智能体评估每个位置(状态)的价值,并选择价值最高的方向前进。
算法: Q学习(Q-learning)、Sarsa等。
Q: 可以给出一个简单的例子吗?
A:
基于策略的例子:
假设有一个智能体在玩投篮游戏。它会尝试不同的投篮方式(例如跳投、站立投篮等),根据每种方式的成功率调整自己的投篮策略。最终,智能体会选择最有可能得分的投篮方式。
基于价值的例子:
同样是投篮游戏,智能体会记录每个位置的投篮成功率,并为每个位置计算一个价值。比如,离篮筐较近的位置价值高,离得较远的位置价值低。智能体会选择价值最高的位置进行投篮。
3.4.2、有模型强化学习智能体与免模型强化学习智能体
智能体分类:
-
有模型(model-based)强化学习:智能体通过学习状态转移函数和奖励函数来进行决策,能够构建虚拟世界进行规划。
-
免模型(model-free)强化学习:智能体不对环境进行建模,通过学习价值函数和策略函数直接与真实环境交互。
马尔可夫决策过程:
强化学习任务可以用四元组 <S, A, P, R> 定义:
- S:状态集合
- A:动作集合
- P:状态转移函数
- R:奖励函数
如果这个四元组中所有元素均已知,且状态集合和动作集合在有限步数内是有限集,则智能体可以对真实环境进行建模,构建一个虚拟世界来模拟真实环境中的状态和交互反应。具体来说,当智能体知道状态转移函数 和奖励函数 后,它就能知道在某一状态下执行某一动作后能带来的奖励和环境的下一状态,这样智能体就不需要在真实环境中采取动作,直接在虚拟世界中学习和规划策略即可。这种学习方法称为有模型强化学习。有模型强化学习的流程如下图所示。
然而在实际应用中,智能体并不是那么容易就能知晓马尔可夫决策过程中的所有元素的。通常情况下,状态转移函数和奖励函数很难估计,甚至连环境中的状态都可能是未知的,这时就需要采用免模型强化学习。免模型强化学习没有对真实环境进行建模,智能体只能在真实环境中通过一定的策略来执行动作,等待奖励和状态迁移,然后根据这些反馈信息来更新动作策略,这样反复迭代直到学习到最优策略。
Q:有模型强化学习和免模型强化学习有什么区别?
A: 有模型强化学习和免模型强化学习的主要区别在于是否需要对真实环境进行建模。
有模型强化学习:
智能体通过学习环境的状态转移和奖励函数,构建一个虚拟世界。
同时在真实环境和虚拟世界中进行学习。
免模型强化学习:
智能体不对环境进行建模。
直接与真实环境交互,通过反馈信息来学习最优策略。
简单来说,有模型学习需要构建环境模型,而免模型学习则完全依赖于与环境的直接交互。
有模型强化学习与免模型强化学习的主要区别在于前者需要对真实环境进行建模。具体来说,有模型强化学习能够在智能体执行动作之前预测下一步的状态和奖励,而免模型强化学习通常依赖大量的数据采样来估计状态、动作及奖励函数,从而优化策略。
在实际应用中,如果能对环境进行建模,则可以使用有模型强化学习。例如,在《太空侵略者》游戏中,免模型深度强化学习需要约两亿帧的游戏画面才能达到理想效果,而有模型学习则可以通过在虚拟世界中进行训练来缓解数据不足的问题。
然而,免模型学习的泛化性通常优于有模型学习,因为后者需要对真实环境建模,而模型与真实环境之间可能存在差异,这限制了其泛化能力。虽然有模型强化学习具有“想象能力”,可以在虚拟世界中预测未来事件并采取最优策略,但大多数深度强化学习方法还是采用免模型方法,因为其实现相对简单、直观且有丰富的开源资料支持。总体来说,免模型强化学习在许多静态、可描述的环境中表现良好,如雅达利游戏平台,因此在这些情况下直接使用免模型学习即可获得较好效果。
如下图所示,我们可以把几类模型放到同一个图里面。图中有 3 个组成成分:价值函数、策略和模型。按一个智能体具有三者中的三者、两者或一者的情况可以把它分成很多类。