深度强化学习课程文档

两种基于价值的方法

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

两种基于价值的方法

在基于价值的方法中,我们学习一个价值函数,它将状态映射到处于该状态的期望价值。

Value Based Methods

状态的价值是智能体如果从该状态开始,然后根据我们的策略行动可以获得的预期折扣回报

但是,根据我们的策略行动是什么意思? 毕竟,在基于价值的方法中,我们没有策略,因为我们训练的是价值函数而不是策略。

请记住,强化学习智能体的目标是拥有最优策略 π*。

为了找到最优策略,我们学习了两种不同的方法

  • 基于策略的方法: 直接训练策略 以选择在给定状态下采取什么行动(或在该状态下行动的概率分布)。 在这种情况下,我们没有价值函数。
Two RL approaches

策略将状态作为输入,并输出在该状态下要采取的行动(确定性策略:给定状态输出一个行动的策略,与输出行动概率分布的随机策略相反)。

因此,我们不会手动定义策略的行为; 是训练定义了它。

  • 基于价值的方法: 间接地,通过训练一个价值函数,该函数输出状态或状态-行动对的价值。 给定此价值函数,我们的策略将采取行动。

由于策略没有被训练/学习,我们需要指定其行为。 例如,如果我们想要一个策略,在给定价值函数的情况下,将采取始终导致最大奖励的行动,我们将创建一个贪婪策略。

Two RL approaches
给定一个状态,我们的行动-价值函数(我们训练的)输出该状态下每个行动的价值。 然后,我们预定义的贪婪策略选择将产生给定状态或状态-行动对的最高价值的行动。

因此,无论您使用哪种方法来解决问题,您都将拥有一个策略。 在基于价值的方法的情况下,您不训练策略:您的策略只是一个简单的预先指定的功能 (例如,贪婪策略),该功能使用价值函数给出的价值来选择其行动。

所以区别在于

  • 在基于策略的训练中,最优策略(表示为 π*)是通过直接训练策略来找到的。
  • 在基于价值的训练中,找到最优价值函数(表示为 Q* 或 V*,我们将在下面研究差异)会导致拥有最优策略。
Link between value and policy

实际上,在大多数情况下,在基于价值的方法中,您将使用 Epsilon-贪婪策略,该策略处理探索/利用的权衡; 当我们在本单元的第二部分讨论 Q-Learning 时,我们将讨论这一点。

正如我们上面提到的,我们有两种类型的基于价值的函数

状态价值函数

我们将策略 π 下的状态价值函数写成这样

State value function

对于每个状态,状态价值函数输出智能体如果从该状态开始,然后永远遵循策略(如果您愿意,可以用于所有未来的时间步)的预期回报。

State value function
如果我们取值为 -7 的状态:这是从该状态开始并根据我们的策略(贪婪策略)采取行动的预期回报,因此右、右、右、下、下、右、右。

行动价值函数

在行动价值函数中,对于每个状态和行动对,行动价值函数输出预期回报,如果智能体从该状态开始,采取该行动,然后永远遵循该策略。

采取行动的价值aa在状态ss策略下ππ

Action State value function Action State value function

我们看到区别在于

  • 对于状态价值函数,我们计算 状态StS_t 的价值
  • 对于行动价值函数,我们计算 状态-行动对 (St,AtS_t, A_t ) 的价值,因此是状态下采取该行动的价值。
Two types of value function
注意:我们没有为行动价值函数的示例填充所有状态-行动对

在任何一种情况下,无论我们选择哪种价值函数(状态价值函数或行动价值函数),返回的价值都是预期回报。

但是,问题是为了计算状态或状态-行动对的每个价值,我们需要将智能体如果从该状态开始可以获得的所有奖励相加。

这可能是一个计算量很大的过程,而这正是 贝尔曼方程可以帮助我们的地方。

< > 在 GitHub 上更新