深度强化学习(王树森)笔记01

深度强化学习(DRL)

本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。

参考链接

Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL

源代码链接:https://github.com/DeepRLChinese/DeepRL-Chinese

B站视频:【王树森】深度强化学习(DRL)

豆瓣: 深度强化学习

文章目录

  • 深度强化学习(DRL)
    • 概率论复习
      • 随机变量
      • 概率密度函数
      • 数学期望
      • 随机抽样
    • 强化学习专业术语
      • state 和 action
      • policy
      • reward
      • state transition
      • RL中的agent和environment的交互
      • 两种随机性
      • trajectory
      • return 和 discounted return
      • value functions
        • action-value function Q(s, a)
        • optimal action-value function
        • state-value funciton
      • policy-based RL 和 value-based RL
    • summary
    • 后记

概率论复习

随机变量

随机变量是概率论和统计学中的一个重要概念,它用来描述随机试验的结果。随机变量可以分为两大类:离散型随机变量和连续型随机变量。

  1. 离散型随机变量: 这种随机变量的取值是可数的,通常是整数。例如,抛一枚骰子,随机变量可以是骰子的点数,取值范围为1到6。离散型随机变量的概率分布可以通过概率质量函数(Probability Mass Function,PMF)来描述,它给出了随机变量每个可能取值的概率。

  2. 连续型随机变量: 这种随机变量的取值是不可数的,通常是实数。例如,测量一件物品的长度,随机变量可以是任意实数值。连续型随机变量的概率分布可以通过概率密度函数(Probability Density Function,PDF)来描述,它表示在某一点附近的概率密度,而实际概率则是通过对概率密度函数进行积分得到。

无论是离散型还是连续型随机变量,它们都可以用来描述随机现象的不确定性,以及在概率论和统计学中进行推断和分析。

在使用随机变量时,我们通常关注以下几个方面:

  • 分布函数(Cumulative Distribution Function,CDF): 描述随机变量小于或等于某个特定值的概率。

  • 期望值(Expectation): 表示随机变量的平均值,反映了分布的中心位置。

  • 方差(Variance): 衡量随机变量取值的分散程度,即分布的宽窄程度。

随机变量和概率密度函数或概率质量函数的概念在概率论、统计学、以及应用领域如机器学习等方面都扮演着关键的角色。

概率密度函数

概率密度函数(Probability Density Function,简称PDF)是描述随机变量在各个取值上的概率分布的数学函数。对于连续型随机变量,概率密度函数是定义在整个实数轴上的非负函数,其满足以下两个条件:

  1. 对于任意实数x,概率密度函数f(x)都是非负的: f ( x ) ≥ 0 f(x) \geq 0 f(x)0

  2. 整个实数轴上的概率密度函数的积分等于1: ∫ − ∞ ∞ f ( x ) d x = 1 \int_{-\infty}^{\infty} f(x) \,dx = 1 f(x)dx=1

这两个条件确保了概率密度函数对于所有可能的取值都提供了非负的概率,并且整个概率空间的总和是1。

对于一个连续型随机变量X,它落在某个区间 a , b a, b a,b上的概率可以通过对概率密度函数在该区间上的积分来计算: P ( a ≤ X ≤ b ) = ∫ a b f ( x ) d x P(a \leq X \leq b) = \int_{a}^{b} f(x) \,dx P(aXb)=abf(x)dx

需要注意的是,概率密度函数并不直接给出具体的概率值,而是在某个取值范围内的概率密度。概率密度函数的图形在某个区间上的曲线下方的面积表示该区间内的概率。

常见的概率密度函数包括正态分布、指数分布、均匀分布等。每种分布有其特定的数学形式和性质,适用于不同类型的随机现象建模。

数学期望

数学期望(或均值)是随机变量的一个重要性质,它用来描述随机变量的平均值。对于一个离散型随机变量X,其数学期望(期望值)表示为E(X),定义如下:

E ( X ) = ∑ i x i ⋅ P ( X = x i ) E(X) = \sum_{i} x_i \cdot P(X = x_i) E(X)=ixiP(X=xi)

对于一个连续型随机变量X,其数学期望表示为E(X),定义如下:

E ( X ) = ∫ − ∞ ∞ x ⋅ f ( x ) d x E(X) = \int_{-\infty}^{\infty} x \cdot f(x) \,dx E(X)=xf(x)dx

其中, x i x_i xi 是离散型随机变量X的可能取值, P ( X = x i ) P(X = x_i) P(X=xi)是相应取值的概率。对于连续型随机变量X,f(x) 是其概率密度函数。

数学期望的直观理解是随机变量在长期重复试验中的平均值。它是一个对分布中心位置的度量,反映了随机变量的集中趋势。

数学期望具有一些性质,例如:

  1. 线性性质: 对于常数a和b以及随机变量X、Y,有 E ( a X + b Y ) = a E ( X ) + b E ( Y ) E(aX + bY) = aE(X) + bE(Y) E(aX+bY)=aE(X)+bE(Y)

  2. 独立性质: 如果X和Y是相互独立的随机变量,则 E ( X Y ) = E ( X ) E ( Y ) E(XY) = E(X)E(Y) E(XY)=E(X)E(Y)

数学期望在概率论和统计学中有广泛的应用,它不仅用于描述随机变量的平均值,还在推断、决策理论等领域中发挥着重要作用。

随机抽样

随机抽样是一种用来选择样本的方法,其中每个个体有相等的机会被选中,从而确保样本是代表总体的。随机抽样是统计学中的基本概念,它有助于减小选择偏差,使样本更具有代表性,从而更好地反映总体的特征。

以下是一些常见的随机抽样方法:

  1. 简单随机抽样: 在简单随机抽样中,每个个体被选中的概率是相等的,且每个样本的选择是独立的。这通常通过随机数生成器来实现,确保每个个体都有等概率地进入样本。

  2. 分层随机抽样: 将总体划分为若干层(或称为分层),然后在每个层内进行简单随机抽样。这样可以确保每个子群体在样本中都有代表性,特别适用于总体内存在明显差异的情况。

  3. 系统随机抽样: 选择一个随机的起始点,然后按照一个固定的步长或间隔进行抽样。这种方法适用于总体中个体的排列是有规律的情况。

  4. 整群抽样: 将总体划分为若干群,然后随机选择一些群,再从选中的群中抽取所有个体。这种方法适用于总体内群与群之间存在相似性,但群内个体差异较大的情况。

  5. 多阶段抽样: 将抽样过程分为多个阶段,每个阶段在前一阶段的基础上进行抽样。这种方法适用于总体内存在层级结构的情况。

随机抽样的目的是确保样本是随机的、无偏的,从而使样本结果对总体具有代表性。这有助于推断性统计分析,使得通过样本的结果能够对总体的特征进行推断。

强化学习专业术语

state 和 action

在强化学习中,状态(state)和动作(action)是两个关键的概念,它们用于描述智能体(agent)与环境(environment)之间的交互和学习过程。

  1. 状态(State): 状态是描述系统或环境的特定瞬时条件的表示。在强化学习中,状态是智能体观察到的关键信息,它包含了有关环境的所有必要信息,以便智能体可以做出决策。状态可以是离散的或连续的,具体取决于问题的性质。智能体的策略和动作通常依赖于当前的状态。

  2. 动作(Action): 动作是智能体基于当前状态所采取的行为或决策。在强化学习中,智能体从可选的动作中选择一个来影响环境,并进入新的状态。动作可以是离散的,例如在棋盘游戏中的移动一枚棋子,也可以是连续的,例如在机器人控制中的连续运动。

在强化学习的框架中,智能体与环境之间的互动通常可以描述为一个序列的状态、动作、奖励(reward)和下一个状态。这被称为马尔可夫决策过程(Markov Decision Process,MDP)。

  • 奖励(Reward): 每个动作执行后,智能体会收到一个奖励信号,表示该动作的好坏程度。奖励是智能体学习的驱动力,其目标是最大化累积奖励。

智能体的目标是通过学习从状态到动作的映射,即策略,以最大化期望累积奖励。这个学习过程可以通过不同的强化学习算法来实现,如Q学习、深度Q网络(DQN)、策略梯度方法等。

总之,状态描述了环境的当前情况,动作是智能体对当前状态的响应,而奖励是系统提供的反馈,用于指导智能体学习正确的行为。这三个元素共同构成了强化学习中的核心概念。

policy

在强化学习中,策略(policy)是智能体(agent)在特定状态下选择动作的规则或策略函数。策略定义了从环境的状态到智能体选择的动作的映射。形式上,对于某一状态 (s),策略可以表示为:

π ( a ∣ s ) \pi(a|s) π(as)

其中,( π \pi π) 是策略函数,它告诉我们在状态 (s) 下选择动作 (a) 的概率。这可以是一个确定性策略(确定性地选择一个动作)或一个概率性策略(以一定概率选择不同的动作)。

强化学习中的目标是学习一个最优策略,使得智能体在与环境的交互中获得最大的累积奖励。学习最优策略的方法主要有两类:

  1. 值函数方法(Value Function Methods): 这类方法通过估计每个状态或状态动作对的值来指导策略的更新。值函数可以是状态值函数(V-function)或动作值函数(Q-function)。根据值函数,可以选择使值最大化的动作。

  2. 直接策略优化方法(Direct Policy Optimization Methods): 这类方法直接对策略进行优化,通过参数化的策略函数来寻找最优的策略。常见的方法包括策略梯度方法,其中通过梯度上升更新策略的参数,使得累积奖励增加。

一些常见的策略表示方式包括:

  • 确定性策略: ( π ( s ) = a \pi(s) = a π(s)=a),即在每个状态下直接选择一个确定的动作。

  • 概率性策略: ( π ( a ∣ s ) \pi(a|s) π(as)),即在每个状态下以一定的概率分布选择不同的动作。

  • 参数化策略: 使用一组参数化的函数来表示策略,例如神经网络。这种策略可以通过学习参数的方式进行优化。

强化学习中策略的选择对于智能体在环境中的表现至关重要。在学习过程中,智能体通过不断尝试不同的策略,根据奖励信号来更新策略,从而逐渐优化其行为。

在这里插入图片描述

reward

在强化学习中,奖励(reward)是环境提供给智能体(agent)的一个信号,用于评估智能体在特定状态下采取特定动作的好坏。奖励是智能体学习和改进其策略的主要驱动力。

奖励的作用是引导智能体朝着在特定环境下取得更好结果的方向学习。智能体的目标通常是最大化累积奖励,而奖励信号则在每个时间步鼓励或惩罚智能体的行为。

强化学习中的奖励具有以下一些重要性质:

  1. 即时奖励(Immediate Reward): 指的是在智能体执行一个动作后立即获得的奖励。即时奖励有助于智能体快速学习适应环境。

  2. 延迟奖励(Delayed Reward): 指的是与智能体的动作相对应但不是立即获得的奖励。例如,智能体在迷宫中走了一段路程后才获得奖励。延迟奖励要求智能体具备长期规划和记忆能力。

  3. 稀疏奖励(Sparse Reward): 指的是在许多状态下,奖励为零或非常小。这可能使得智能体面临挑战,因为它需要在大量无奖励的情况下学会正确的行为。

  4. 稠密奖励(Dense Reward): 指的是在许多状态下,奖励都有非零值。稠密奖励有助于更频繁地提供反馈,促使智能体更快地调整其策略。

在强化学习任务中,设计有效的奖励结构对于训练稳定、高效的智能体至关重要。合理的奖励设置可以帮助克服挑战,引导智能体学到期望的行为。不同的强化学习问题可能需要不同的奖励设计,以便平衡即时奖励和长期目标,以及稀疏和稠密奖励之间的关系。

state transition

在强化学习中,状态转移(state transition)是指智能体从一个状态转移到另一个状态的过程。状态转移是强化学习中马尔可夫决策过程(Markov Decision Process,MDP)的一部分,其中智能体与环境互动,并根据其采取的动作和环境的反馈来改变状态。

具体而言,状态转移可以通过一个转移概率函数来表示。对于一个离散时间步 (t),状态 ( s t ) (s_t) (st),和动作 ( a t a_t at),状态转移函数 (P) 给出了下一个状态 ( s t + 1 s_{t+1} st+1) 的概率分布:

P ( s t + 1 ∣ s t , a t ) P(s_{t+1} | s_t, a_t) P(st+1st,at)

这个概率分布表示在当前状态 ( s t s_t st) 下,执行动作 ( a t a_t at) 后转移到下一个状态 ( s t + 1 s_{t+1} st+1) 的概率。在马尔可夫决策过程中,状态转移满足马尔可夫性质,即下一个状态的概率只依赖于当前状态和执行的动作。

状态转移概率是强化学习算法中的重要组成部分,因为它影响了智能体对环境的理解和学习。智能体根据状态转移的概率分布来估计在不同状态下采取不同动作的结果,从而选择最优的策略来最大化累积奖励。

在连续状态空间中,状态转移函数可能被替代为状态转移密度函数,通常用概率密度函数来表示状态转移到某个区域的概率。这在连续时间的强化学习问题中很常见。

总的来说,状态转移是描述强化学习问题中智能体与环境之间交互的重要概念,对于智能体的决策和学习过程至关重要。

在这里插入图片描述

RL中的agent和environment的交互

agent采取行动 a t a_{t} at,环境会将状态变成 s t + 1 s_{t+1} st+1,并且给一个奖励 r t r_{t} rt

在这里插入图片描述

让我们通过《超级马里奥兄弟》(Super Mario Bros.)这个游戏来解释强化学习中的几个重要概念。

  1. 状态(State): 在《超级马里奥兄弟》中,状态可以是游戏中马里奥所处的具体位置、当前的生命值、关卡的时间等。每一个瞬时的游戏状态都可以被看作一个状态,它描述了游戏的当前情况。

  2. 动作(Action): 动作是智能体(玩家或马里奥)可以执行的操作,如向左移动、向右跳跃等。在马里奥游戏中,玩家通过按键或操纵杆来执行这些动作,每个动作对应着不同的玩家输入。

  3. 奖励(Reward): 奖励是智能体根据其动作在特定状态下获得的反馈信号。在《超级马里奥兄弟》中,奖励可以是吃到蘑菇增加生命值,通过管道到达新的区域,或者躲避敌人而保持生命等。获得奖励有助于玩家最终完成关卡。

  4. 状态转移(State Transition): 状态转移描述了智能体从一个状态到另一个状态的过程。在游戏中,这可以是玩家控制马里奥移动,穿越管道,跳跃到新的平台等。状态转移与玩家的动作和当前状态密切相关。

  5. 策略(Policy): 在马里奥游戏中,策略是指玩家在特定状态下选择的动作的规则。例如,当马里奥面临一个深坑时,策略可能是选择跳跃以避免掉入坑中。策略可以随着游戏的进行而调整,以最大化累积的奖励。

  6. 环境(Environment): 游戏环境包括了马里奥、敌人、平台、管道等所有与玩家交互的元素。智能体(玩家)与环境互动,智能体的动作影响环境的状态,并产生奖励信号。

强化学习的目标是学习一个策略,使得在给定状态下选择动作的智能体能够最大化累积奖励,从而高效地完成任务,比如通关关卡。通过理解这些概念,我们可以将强化学习的思想应用于《超级马里奥兄弟》这样的游戏中,以让智能体学会优秀的玩家策略。

两种随机性

动作的随机性

在这里插入图片描述

状态的随机性

环境用状态转移函数算出概率p,然后随机抽样得到下一个状态 S ′ S^{'} S

在这里插入图片描述

这两者的随机性分别来自策略函数和状态转移函数

在这里插入图片描述

trajectory

Trajectory(轨迹)在强化学习中指的是智能体(agent)在环境中执行一系列动作的序列,从初始状态开始,通过与环境的交互,经过一系列状态和动作,最终达到终止状态或满足某个结束条件。Trajectory记录了智能体在环境中的轨迹,描述了其行为的历史。

一个典型的强化学习轨迹可以用如下表示:

( s 0 , a 0 , r 1 , s 1 , a 1 , r 2 , s 2 , … , s T − 1 , a T − 1 , r T , s T ) (s_0, a_0, r_1, s_1, a_1, r_2, s_2, \ldots, s_{T-1}, a_{T-1}, r_T, s_T) (s0,a0,r1,s1,a1,r2,s2,,sT1,aT1,rT,sT)

其中:

  • ( s t ) s_t) st) 是在时间步 (t) 时的状态(state)。
  • ( a t a_t at) 是在时间步 (t) 时智能体选择的动作(action)。
  • ( r t + 1 r_{t+1} rt+1) 是在执行动作 ( a t a_t at) 后智能体获得的奖励(reward)。
  • ( s t + 1 s_{t+1} st+1) 是在执行动作 ( a t ) (a_t) (at)后环境转移到的下一个状态。
  • (T) 表示轨迹的结束时刻。

Trajectory包含了智能体与环境的交互历史,对于理解智能体在学习过程中是如何与环境互动的至关重要。在强化学习的许多算法中,学习的目标是通过分析轨迹,优化策略以最大化累积奖励。一些算法如蒙特卡洛方法和时序差分方法都涉及到对轨迹的分析和利用。

轨迹的长度可以因任务的性质而异,可能是有限的,也可能是无限的(例如,在一个连续的控制问题中)。对轨迹的理解有助于研究智能体的行为模式、评估学习算法的性能,并改进智能体的决策策略。

在这里插入图片描述

return 和 discounted return

回报(return)是指从当前时刻开始,直到本回合结束的所有奖励的总和,因此回报也被称为累计奖励(cumulative future reward)。将时刻 (t) 的回报表示为随机变量 ( U t U_t Ut)。如果一回合游戏结束,已经观测到所有奖励,那么将回报记作 ( u t u_t ut)。设本回合在时刻 (n) 结束。定义回报为:

U t = R t + R t + 1 + R t + 2 + R t + 3 + … + R n U_{t} = R_{t} + R_{t+1} + R_{t+2} + R_{t+3} + \ldots + R_{n} Ut=Rt+Rt+1+Rt+2+Rt+3++Rn

回报的应用主要在于它代表了未来获得的奖励总和,因此智能体的目标是让回报尽量大,即越大越好。强化学习的目标是找到一个策略,使得回报的期望最大化,这个策略被称为最优策略(optimum policy)。

强化学习的目标是最大化回报,而不是最大化当前的奖励。以下棋为例,玩家的目标是赢得一局比赛(回报),而不仅仅是吃掉对方当前的一个棋子(奖励)。

在马尔可夫决策过程(MDP)中,通常使用折扣回报(discounted return),对未来的奖励进行折扣。折扣回报的定义如下:

U t = R t + γ ⋅ R t + 1 + γ 2 ⋅ R t + 2 + γ 3 ⋅ R t + 3 + … U_{t} = R_{t} + \gamma \cdot R_{t+1} + \gamma^{2} \cdot R_{t+2} + \gamma^{3} \cdot R_{t+3} + \ldots Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+

其中,( γ ∈ \gamma \in γ [0,1]) 被称为折扣率。对于越久远的未来,奖励打的折扣越大。这种折扣考虑了时间的因素,使得在计算回报时更加关注即时奖励。

return: cumulative future reward

在这里插入图片描述

discounted return:cumulative discounted future reward

未来的reward比现在的reward价值低,所以会加一个折扣因子。

在这里插入图片描述

return的随机性

discredounted return依赖于 S t , A t , S t + 1 , A t + 1 , ⋯ , S n , A n . S_t,{A_t},S_{t+1},{A_{t+1}},\cdots,{S_n},{A_n}. St,At,St+1,At+1,,Sn,An.即return依赖于从t时刻开始的状态和行动

在这里插入图片描述

value functions

action-value function Q(s, a)

t 时刻,假如我们知道 U t U_{t} Ut 的值,我们就知道游戏是快赢了还是快输了。然而在 t 时刻我们并不知道 U t U_{t} Ut 的值,因为此时 U t U_{t} Ut 仍然是个随机变量。在 t 时刻,我们不知道 U t U_{t} Ut 的值,而我们又想预判 U t U_{t} Ut 的值从而知道局势的好坏。该怎么办呢?解决方案就是对 U t U_{t} Ut 求期望,消除掉其中的随机性。

假设我们已经观测到状态 s t s_{t} st,而且做完决策,选中动作 a t a_{t} at。那么 U t U_{t} Ut 中的随机性来自于 t + 1 时刻起的所有的状态和动作:

S t + 1 , A t + 1 , S t + 2 , A t + 2 , ⋯ , S n , A n . \begin{matrix}S_{t+1},A_{t+1},&S_{t+2},A_{t+2},&\cdots,&S_{n},A_{n}.\end{matrix} St+1,At+1,St+2,At+2,,Sn,An.

U t U_t Ut关于变量 S t + 1 , A t + 1 , ⋯ , S n , A n S_{t+1},A_{t+1},\cdots,S_n,A_n St+1,At+1,,Sn,An 求条件期望,得到

Q π ( s t , a t ) = E S t + 1 , A t + 1 , ⋯ , S n , A n [ U t ∣ S t = s t , A t = a t ] . ( 3.1 ) Q_{\pi}(s_{t},a_{t})=\mathbb{E}_{S_{t+1},A_{t+1},\cdots,S_{n},A_{n}}\bigg[U_{t}\bigg|S_{t}=s_{t},A_{t}=a_{t}\bigg].\quad(3.1) Qπ(st,at)=ESt+1,At+1,,Sn,An[Ut St=st,At=at].(3.1)

期望中的 S t = s t S_t=s_t St=st A t = a t A_t=a_t At=at 是条件,意思是已经观测到 S t S_t St A t A_t At 的值。条件期望的结果 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 被称作动作价值函数 (action-value function)。

在这里插入图片描述

动作价值函数 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 依赖于 s t s_t st a t a_t at, 而不依赖于 t + 1 t+1 t+1 时刻及其之后的状态和动作,因为随机变量 S t + 1 , A t + 1 , ⋯ , S n , A n S_{t+1},A_{t+1},\cdots,S_n,A_n St+1,At+1,,Sn,An 都被期望消除了。由于动作 A t + 1 , ⋯ , A n A_{t+1},\cdots,A_n At+1,,An 的概率质量函数都是 π \pi π,公式(3.1)中的期望依赖于 π \pi π;用不同的 π \pi π, 求期望得出的结果就会不同。因此 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 依赖于π, 这就是为什么动作价值函数有下标 π。

综上所述, t t t 时刻的动作价值函数 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 依赖于以下三个因素:

·第一,当前状态 s t s_t st。当前状态越好,那么价值 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 越大,也就是说回报的期 望值越大。在超级玛丽的游戏中,如果玛丽奥当前已经接近终点,那么 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 就非常大。

·第二,当前动作 a t a_t at。智能体执行的动作越好,那么价值 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at)越大。举个例子, 如果玛丽奥做正常的动作,那么 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at)就比较正常。如果玛丽奥的动作 a t a_t at是跳下悬崖,那么 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 就会非常小。

·第三,策略函数π。策略决定未来的动作 A t + 1 , A t + 2 , ⋯ , A n A_{t+1},A_{t+2},\cdots,A_n At+1,At+2,,An 的好坏:策略越好,那 么 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at) 就越大。举个例子,顶级玩家相当于好的策略 π, 新手相当于差的策略。让顶级玩家操作游戏,回报的期望非常高。换新手操作游戏,从相同的状态出发,回报的期望会很低。

optimal action-value function

最优动作价值函数

怎么样才能排除掉策略 π 的影响,只评价当前状态和动作的好坏呢?解决方案就是最优动作价值函数 (optimal action-value function):

Q ⋆ ( s t , a t ) = max ⁡ π Q π ( s t , a t ) , ∀ s t ∈ S , a t ∈ A . Q_{\star}(s_{t},a_{t})\:=\:\operatorname*{max}_{\pi}\:Q_{\pi}(s_{t},a_{t}),\quad\forall\:s_{t}\in\mathcal{S},\quad a_{t}\in\mathcal{A}. Q(st,at)=πmaxQπ(st,at),stS,atA.
意思就是有很多种策略函数 π \pi π 可供选择,而我们选择最好的策略函数:

π ⋆ = argmax ⁡ π Q π ( s t , a t ) , ∀ s t ∈ S , a t ∈ A . \pi^{\star}\:=\:\operatorname*{argmax}_{\pi}\:Q_{\pi}(s_{t},a_{t}),\quad\forall\:s_{t}\in\mathcal{S},\quad a_{t}\in\mathcal{A}. π=πargmaxQπ(st,at),stS,atA.

最优动作价值函数 Q ⋆ ( s t , a t ) Q_\star(s_t,a_t) Q(st,at) 只依赖于 s t s_t st a t a_t at, 而与策略 π \pi π 无关。

最优动作价值函数 Q ⋆ Q_{\star} Q非常有用,它就像是一个先知,能指引智能体做出正确决策。比如玩超级玛丽,给定当前状态 s t s_t st,智能体该执行动作空间 A = { \mathcal{A}=\{ A={左,右,上}中的哪个动作呢?假设我们已知 Q ⋆ Q_{\star} Q 函数,那么我们就让 Q ⋆ Q_{\star} Q 给三个动作打分,比如:
Q ⋆ ( s t , 左 ) = 130 , Q ⋆ ( s t , 右 ) = − 50 , Q ⋆ ( s t , 上 ) = 296. Q_{\star}(s_{t},\:\text{左})\:=\:130,\quad Q_{\star}(s_{t},\:\text{右})\:=\:-50,\quad Q_{\star}(s_{t},\:\text{上})\:=\:296. Q(st,)=130,Q(st,)=50,Q(st,)=296.

这三个值是什么意思呢?

Q ⋆ ( s t , 左 ) = 130 Q_\star ( s_t, 左) = 130 Q(st,)=130 的意思是:如果现在智能体选择向左走,那么不管以后智能体用什么策略函数 π \pi π, 回报 U t U_t Ut 的期望最多不会超过130。同理,如果现在向右走,则回报的期望最多不超过 -50。如果现在向上跳,则回报的期望最多不超过296。

智能体应该执行哪个动作呢?毫无疑问,智能体当然应该向上跳,这样才能有希望获得尽量高的回报。

state-value funciton

状态价值函数

假设 AI 用策略函数 π \pi π 下围棋。AI 想知道当前状态 s t s_t st (即棋盘上的格局) 是否对自已有利,以及自己和对手的胜算各有多大。该用什么来量化双方的胜算呢?答案是状态价值函数 (state-value function):

V π ( s t ) = E A t ∼ π ( ⋅ ∣ s t ) [ Q π ( s t , A t ) ] = ∑ σ = A π ( a ∣ s t ) ⋅ Q π ( s t , a ) . \begin{array}{rcl}V_\pi(s_t)&=&\mathbb{E}_{A_t\sim\pi(\cdot|s_t)}\Big[Q_\pi(s_t,A_t)\Big]\\&=&\sum_{\sigma=A}\pi(a|s_t)\cdot Q_\pi(s_t,a).\end{array} Vπ(st)==EAtπ(st)[Qπ(st,At)]σ=Aπ(ast)Qπ(st,a).

公式里把动作 A t A_t At 作为随机变量,然后关于 A t A_t At 求期望,把 A t A_t At 消掉。得到的状态价值函数 V π ( s t ) V_\pi(s_t) Vπ(st) 只依赖于策略 π 与当前状态 s t s_t st, 不依赖于动作。

状态价值函数 V π ( s t ) V_{\pi}(s_t) Vπ(st) 也是回报 U t U_t Ut 的期望:

V π ( s t ) = E A t , S t + 1 , A t + 1 , ⋯ , S n , A n [ U t ∣ S t = s t ] . V_\pi(s_t)~=~\mathbb{E}_{A_t,S_{t+1},A_{t+1},\cdots,S_n,A_n}\left[U_t\Big|S_t=s_t\right]. Vπ(st) = EAt,St+1,At+1,,Sn,An[Ut St=st].

期望消掉了 U t U_t Ut 依赖的随机变量 A t , S t + 1 , A t + 1 , ⋯ , S n , A n A_t,S_{t+1},A_{t+1},\cdots,S_n,A_n At,St+1,At+1,,Sn,An。状态价值越大,就意味着回报的期望越大。用状态价值可以衡量策略 π \pi π 与状态 s t s_t st 的好坏。

在这里插入图片描述

上面的期望计算:对所有可能的动作按照策略 π 的概率进行加权求和

Understanding the Value Functions

·Action-value function: Q π ( s , a ) = E [ U t ∣ S t = s , A t = a ] . Q_\pi(s,\color{red}{a})=\mathbb{E}\left[U_t|S_t=s,\color{red}{A_t=a}\right]. Qπ(s,a)=E[UtSt=s,At=a].

·Given policy π \pi π, Q π ( s , α ) Q_{\pi}(s,\color{red}{\alpha}) Qπ(s,α) evaluates how good it is for an agent to pick action a \color{blue}{a} a while being in state s.

· State-value function: V π ( s ) = E A [ Q π ( s , A ) ] V_{\pi}(s)=\mathbb{E}_{\color{red}{A}}\left[Q_{\pi}(s,A)\right] Vπ(s)=EA[Qπ(s,A)]
·For fixed policy π , V π ( s ) \pi,V_{\pi}(s) π,Vπ(s) evaluates how good the situation is in state s.
· E S [ V π ( S ) ] \mathbb{E}_S[V_\pi(S)] ES[Vπ(S)] evaluates how good the policy π \pi π is.

在这里插入图片描述

AI如何控制agent?

两种方法:

policy-based RL 和 value-based RL

在这里插入图片描述

Policy-based Reinforcement Learning(基于策略的强化学习)和 Value-based Reinforcement Learning(基于值的强化学习)是强化学习中两种主要的方法,它们在解决问题的策略和价值函数的表示上有所不同。

  1. Policy-based RL (基于策略的强化学习):

特点:

  • 直接学习最优策略,而不是通过价值函数间接得到。
  • 策略通常表示为一个参数化的概率分布,例如高斯分布。
  • 直接优化策略参数以最大化累积奖励。
  • 在连续动作空间和高维状态空间中表现良好,适用于非确定性策略。

优势:

  • 可以处理高度非线性和连续动作空间。
  • 收敛性更好,特别适用于大规模、高维度的问题。

缺点:

  • 训练通常更为计算密集。
  • 对样本效率要求较高。
  1. Value-based RL (基于值的强化学习):

特点:

  • 通过价值函数(通常是状态值函数或动作值函数)来评估动作或状态的好坏。
  • 通常使用贝尔曼方程来更新价值函数。
  • 通过最优值函数来选择最优动作。

优势:

  • 通常更为稳定,对样本效率的要求较低。
  • 在有限状态、离散动作的问题中表现良好。

缺点:

  • 对于连续动作空间和高维状态空间的处理可能不够灵活。
  • 可能会收敛到局部最优解,特别是在非线性问题上。

共同点:

  • 目标是学习一个在不同状态或状态-动作对上的策略,以最大化累积奖励。
  • 两者都依赖于策略评估和改进的迭代过程。

结论:

  • 选择基于策略的方法还是基于值的方法通常取决于具体问题的性质和对问题的建模方式。在实际应用中,有时会结合两者,使用Actor-Critic等混合方法,以发挥它们的优势并弥补彼此的不足。

summary

在这里插入图片描述

后记

从2024年1月26日开始学习王树森的《深度强化学习》课程,看看需要花费多久学习完这门课。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/434755.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文+App试玩+图像到视频】2311.Animate-anyone:上传1张图片为任何人制作动画(用于角色动画的一致且可控的图像到视频合成)(暂未开源)

项目主页:https://humanaigc.github.io/animate-anyone/ 论文: Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation 摩尔线程复现代码:https://github.com/MooreThreads/Moore-AnimateAnyone 摩尔windows一…

S275智慧煤矿4G物联网网关:矿山开采的未来已来

随着经济发展煤矿需求不断激增,矿山矿井普遍处于偏远山区,生产管理、人员安全、生产效率是每个矿山矿井都需要考虑的问题,利用网关对现场终端设备连接组网,实现智慧煤矿远程管理。 各矿山矿井分布范围比较广泛,户外环…

体验 AutoGen Studio - 微软推出的友好多智能体协作框架

体验 AutoGen Studio - 微软推出的友好多智能体协作框架 - 知乎 最近分别体验了CrewAI、MetaGPT v0.6、Autogen Studio,了解了AI Agent 相关的知识。 它们的区别 可能有人要问:AutoGen我知道,那Autogen Studio是什么? https://g…

Linux-ROS学习之旅-话题编程(二)

##承接上一篇文章的知识,有下面的实例操作 通过代码新生一个海龟,放置在(5,5)点,命名为turtle2,通过代码订阅turtle2的实时位置并打印在终端,控制turtle2实现旋转运动 步骤: 1.创建一个工作空间和一个功…

JDK8新特性:Stream

Stream 认识Stream 也叫Stream流,是jdk8开始新增的一套API(java.util.stream.*),可以用于操作集合或者数组的数据。优势:Stream流大量的结合了Lambda的语法风格来编程,提供了一种更强大,更加简…

微信小程序-04

rpx(responsive pixel)是微信小程序独有的,用来解决屏适配的尺寸单位。 import 后跟需要导入的外联样式表的相对路径,用 ; 表示语句结束。 定义在 app.wxss 中的样式为全局样式,作用于每一个页面。 在页面的 .wxss 文…

P1045 [NOIP2003 普及组] 麦森数题解

题目 形如的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P3021377,它有909526位。麦森数有许多重要应用,它与…

[网鼎杯 2018]Fakebook1

join一个用户后,点进去发现是这样的 查看这个页面的源代码,发现一个base64编码后的字串 decode之后就是我们join新用户时填入的blog网址 那我们是不是可以通过填入存储flag的地址,从而回显出来呢?当然,先按照常规sqli…

python学习20

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

flask_apscheduler源码分析

前言 遵循flask框架的标准的库,称为flask扩展,flask_apscheduler模块就是一个flask扩展,它使用了flask编程上下文,同时内部完全依赖apscheduler。 我近期使用flask_apscheduler遇到了一个所有job全部死亡的bug。现象:j…

【Linux工具篇】Linux项目自动化构建工具make/Makefile

目录 背景 make/makefile怎样完成项目 完成原理 依赖关系 依赖方法 项目清理 执行顺序 Q1:makefile对最新可执行程序不会默认重新生成 Q2:Q1是怎样做到的 规范的makefile 背景 会不会写makefile,从一个侧面说明了一个人是否具备完成…

搜狐新闻客户端使用Kotlin之后对JSON解析框架的探索

本文字数:7488字 预计阅读时间:45分钟 01 引言 自2017年Google发布Kotlin语言之后,Android开发由原来的Java开始向Kotlin过度,目前绝大部分Android开发岗位基本要求就是熟练使用Kotlin。事实上,很多有着多年历史的项目…