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

news2024/11/20 18:21:31

深度强化学习(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.coloradmin.cn/o/1416912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

80.网游逆向分析与插件开发-背包的获取-自动化助手显示物品数据1

内容参考于:易道云信息技术研究院VIP课 上一个内容:升级Notice类获得背包基址-CSDN博客 码云地址(ui显示角色数据 分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:3be017de38c50653b…

【算法专题】二分查找(进阶)

📑前言 本文主要是二分查找(进阶)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日…

【代码随想录】LC 242. 有效的字母异位词

文章目录 前言一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 前言 本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记,如有侵权,立即删除。 一、题目 1、原题链接 242. 有效的字母异位词 2、题目描述 二、解题…

【c++】类和对象 - 类的引入和定义

1.类的引入 C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如:之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C方式实现,…

java日志框架总结(三 、Log4j日志框架)

一、简介 Log4j ( Logger For Java ) , Java 日志的记录包。 官方网站 。Log4j 是 Apache 的一个开源项目, 为Java提供了日志记录功能。能够让程序员非常方便的记录日志, 并且提供了多种适配方式,能满足各种需求。 使用Log4j 只需要导入一个…

linux0.11源码看信号的处理流程

序 日常Linux写代码或者使用中难免会使用siganl,包括我们使用ctrl-c结束程序,使用kill命令发送信号,或者说程序core后操作系统向程序发送的信号,以及我们程序内部自定义的信号处理。 我们选择linux0.11一个原因是它比较简单&…

基于springboot宠物领养系统

摘要 随着社会的不断发展和人们生活水平的提高,宠物在家庭中的地位逐渐上升,宠物领养成为一种流行的社会现象。为了更好地管理和促进宠物领养的过程,本文基于Spring Boot框架设计和实现了一套宠物领养系统。该系统以用户友好的界面为特点&…

游戏开发丨基于Tkinter的扫雷小游戏

文章目录 写在前面扫雷小游戏需求分析程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于tkinter的扫雷小游戏 所需环境 pythonpycharm或anaconda 下载地址 https://download.csdn.net/download/m0_68111267/88790713 扫雷小游戏 扫雷是一款广为人知的单…

【SpringSpringBoot】概述

Spring&SpringBoot专题 【注】: 本专题围绕框架核心概念展开,渐进式深入总结学习、面试、开发经验,集中整理便于回顾 持续补充与施工中~~~~ 1.发展史 2.基本架构 Spring框架的基本架构是一个分层架构,包括多个模块&#x…

漏洞原理反射型XSS漏洞

漏洞原理XSS漏洞 1 反射型XSS php基础链接 Web渗透编程语言基础-CSDN博客 正常思维 http://127.0.0.1/websec/day01/xss_reflect.php?name%E6%88%91%E6%98%AF%E8%B0%81 http://127.0.0.1/14_WEBSEC/DAY01/xss_reflect.php?name我是谁 黑客思维 http://127.0.0.1/websec…

【Python基础017】Python中如何进行异常判断(try...except...的使用)

1、异常判断 在python程序在运行的过程中可能会出现很多错误,比如语法、未定义变量、分母为0等错误;而我们通常使用try...except...语句来处理程序在运行中出现的这些异常,并显示出现错误的原因。此外,我们还可以用try...finally.…

Java多线程基础-18:线程安全的集合类与ConcurrentHashMap

Java标准库提供了很多集合类,但有一些集合类是线程不安全的,也就是说,在多线程环境下可能会出问题的。常用的ArrayList,LinkedList,HashMap,PriorityQueue等都是线程不安全的(Vector, Stack, Ha…

AI技术大揭秘:探索人工智能的核心领域与必备技能

随着人工智能的不断进步,AI技术在各个领域都发挥着越来越关键的作用。想要成为AI领域的从业者,不仅需要对整体格局有清晰认识,更要掌握关键技术和必备技能。本文将深入解析AI的核心技术领域,以及在这个前沿领域里需要掌握的技能。…

java 基础学习1

目录 一.注释 二.关键字 三.字面量 四.变量和标识符 五.键盘录入 六.运算符 一.注释 1.单行注释://注释信息 2.多行注释:/* 注释信息*/ 3.文档注释:/** 注释信息*/ 注:文档注释暂时用不上 二.关键字 关键字: 被Java赋予了特定…

任意一个函数都可以写成一个奇函数与一个偶函数之和的形式

定义 张宇30讲明确指出 f(x)f(-x)必定是偶函数 f(x)-f(-x)必定是奇函数 前提:定义域关于原点对称 由上述结论得到:任意一个函数都可以写成一个奇函数与一个偶函数之和的形式,即使该函数是非奇非偶的。 f(x) 1 2 \frac 12 21​[f(x) f(-x)]…

麒麟系统—— openKylin 安装 mongodb

麒麟系统—— openKylin 安装 mongodb 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。 二、下载解压 MongoDB二、增加环境变量三、配置MongoDB创建数据目录创建日志文件运行 四、加入到服务中 MongoDB是一款高性能、开源的NoSQL数据库,因其灵活的数据结构、…

DCNv4:对视觉应用的动态和稀疏算子的重新思考

摘要 https://arxiv.org/pdf/2401.06197.pdf 我们介绍了可变形卷积v4(DCNv4),这是一种高效且有效的运算符,专为广泛的视觉应用而设计。DCNv4解决了其前身DCNv3的局限性,通过两个关键改进:1. 去除空间聚合中…

java抽象类概述——abstract关键字用法

前言: 打好基础,daydayup! 抽象类 抽象类概述 在java中有一个关键字叫abstract,代表抽象的意思,可用abstract修饰类,成员方法。 抽象类修饰方法 在方法或类前加上abstract关键字 例1:修饰类(在…

AI决策的解构与实践:初探可解释性技术(XAI)

随着人工智能(AI)技术在各个领域的广泛应用,解释性人工智能(XAI)的概念备受瞩目。作为开发者,我们深知AI系统的复杂性,以及对于用户和利益相关者来说理解AI决策过程的重要性。本文将深入探讨可解…

跟着pink老师前端入门教程-day12

二十六、HTML5CSS3的提高 1、HTML5 的新特性 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以…