【强化学习入门笔记】1.3 Return, 状态值, 动作值

科技   2024-11-21 08:00   上海  

1.3 Return, 状态值, 动作值

1.3.1 如何计算return

1.3.1.1 return与轨迹质量相关

这里给出了上图3个不同轨迹return的计算表达式, 来说明return与轨迹质量的相关性:

用于第3个情况, 是存在策略分布的, 这里我们求两条轨迹return的平均值:

显然, , 较为简单不再赘述.

1.3.1.2 Bootstrapping

将起始点的状态索引为的轨迹return定义为.

这里举了一个轨迹回到起点的例子, 以4个不同的状态为起点, 每个return分别可以写作如下形式:

从这组式子我们能够看出来, 这里每个return都依赖于下个状态的return. 依赖, 依赖... 换句话说, 从不同状态出发的得到return,它是依赖于从其他状态出发所得到的return。

当这个轨迹是个循环时, 最终会依赖自己. 这反映了Bootstrapping的思想.

1.3.1.3 计算return

我们将上面的式子写成线性方程组:

简洁的表达为下式, 并求解:

实际上, 这就是贝尔曼公式表达, 下一节我们会介绍它的一般形式

1.3.2 State values 状态值

1.3.2.1 基本概念

我们考虑简单的一步:

  • 时间步
  • 时间步的状态
  • 状态采取的动作
  • 状态采取的动作后的奖励
  • 状态采取的动作转台转移之后的状态

都是随机变量. 从时刻开始, 可以得到状态-动作-奖励组成的轨迹:

该轨迹的discounted return定义为 , 它也是随机变量:

这里我们将 的期望定义为State value function, 即状态值函数, 定义如下:

  • 状态值函数依赖于条件状态
  • 状态值函数依赖于策略, 因为轨迹所由策略定义的, 不同的策略对应不同的状态值
  • 状态值函数不依赖于, 因为智能体在状态空间中转移时, 它的策略和状态都与时间步无关

需要声明的是, 状态值函数与return的区别在于:

  • return是用来计算一条固定轨迹的
  • 状态值函数是计算多条轨迹return的平均值
  • 当策略分布, 奖励值概率分布, 状态转移概率分布: 全部唯一时, 也就是从某个状态出发只存在一条唯一的轨迹, 那么它的状态值和return是相同的

1.3.2.2 例子

仍然以这三个轨迹为例子, 很简单可以计算出他们的状态值:

其中第3条, 计算的是不同轨迹return的期望

1.3.3 动作值

状态值是指从一个状态出发的轨迹的return的期望; 对应的, 动作值是指从一个状态采取某一个动作出发的轨迹的return的期望.

1.3.3.1 定义

动作值定义可以写成:

展开可以写出:

简单的说, 动作值是状态值的一部分, 某一个状态下所有的动作值加权和就是状态值.

1.3.3.2 例子

我们可以很简单的写出来这几个动作值:

不过需要注意的是, 即使在这个策略中, 其他的动作的概率是0, 但是它们依然有动作值:

只不过在计算状态值的时候, 它们的权重 策略概率为0

推荐阅读:

自动驾驶小白说
输出专业自动驾驶算法教程的开发者社区. 🦈 官网: https://www.helloxiaobai.cn
 最新文章