强化学习中的Q函数和V函数是什么?


30

在我看来,函数可以轻松地由函数表示,因此函数对我来说似乎是多余的。但是,我是强化学习的新手,所以我想我做错了。VQV

定义

Q学习和V学习是在马尔可夫决策过程的背景下进行的。甲MDP是一个5元组与(S,A,P,R,γ)

  • S是一组状态(通常是有限的)
  • A是一组动作(通常是有限的)
  • P(s,s,a)=P(st+1=s|st=s,at=a)是通过动作从状态到状态的概率。ssa
  • R(s,s,a)R中的是通过动作从状态到状态后的立即奖励。(在我看来,通常只有重要)。ssas
  • γ[0,1]被称为折扣因子,它确定是关注即时奖励(),总奖励()还是某种权衡。γ=0γ=1

一个政策π,根据强化学习:简介由萨顿和巴托是一个功能(这可能是概率)。π:SA

根据Mario Martins的幻灯片函数为 ,并且Q函数V

Vπ(s)=Eπ{Rt|st=s}=Eπ{k=0γkrt+k+1|st=s}
Qπ(s,a)=Eπ{Rt|st=s,at=a}=Eπ{k=0γkrt+k+1|st=s,at=a}

我的想法

该的状态,功能状态有什么预期整体价值(不奖励!)的政策下是。Vsπ

在的功能状态的状态值是什么和一个动作 策略下的是。Qsaπ

这意味着

Qπ(s,π(s))=Vπ(s)

对?那么,为什么我们要拥有价值功能呢?(我想我把事情弄混了)

Answers:


15

Q值是使动作明确的好方法,因此您可以处理转换函数不可用(无模型)的问题。但是,当您的动作空间很大时,事情就不会那么好,Q值也不会那么方便。考虑大量的动作,甚至是连续的动作空间。

从采样角度看,的维数高于因此与相比,获取足够的样本可能会变得更加困难。如果您可以使用转换功能,则有时是很好的选择。Q(s,a)V(s)(s,a)(s)V

结合使用还有其他用途。例如,优势函数。如果您有兴趣,可以在这里找到使用优势功能的最新示例:A(s,a)=Q(s,a)V(s)

深度强化学习的决斗网络架构

王子瑜,汤姆·绍尔,马特奥·黑塞尔,哈多·范·哈瑟尔特,马克·兰科特和南多·德·弗雷塔斯。


19

Vπ(s)是MDP(马尔可夫决策过程)的状态值函数。它的预期收益从状态开始以下策略。sπ

在表达中

Vπ(s)=Eπ{Gt|st=s}

Gt- [R π是从时间步的总DISCOUNTED奖励,而是立即返回。在这里,您根据策略采取了所有操作。tRtπ

Qπ(s,a)小号π 一个是作用值函数。这是从状态开始,遵循策略采取操作的预期收益。它专注于特定状态下的特定动作。sπa

Qπ(s,a)=Eπ{Gt|st=s,at=a}

与之间的关系(处于该状态的值)为QπVπ

Vπ(s)=aAπ(a|s)Qπ(a,s)

您将每个操作值乘以采取该操作的概率(策略)相加。π(a|s)

如果以网格世界为例,则将(上/下/右/左)的概率乘以(上/下/右/左)的一步状态值。


5
这是最简洁的答案。
布雷特

我有资料指出。您如何将这个方程式与答案中提供的方程式?在方程式中,您是根据值的加权和定义。这是从定义我有,它定义不同的作为最高。V π小号= Σ 一个 π | š * Q πš V Q V QVπ(s)=maxaAQπ(s,a)Vπ(s)=aAπ(as)Qπ(a,s)VQVQ
nbro

@nbro我相信这取决于您所遵循的政策。在一个纯粹的贪婪政策中,您是正确的。但是,如果这是一项更具探索性的政策,是为随机决定一项行动而建立的,那么以上内容将是正确的
deltaskelta

7

没错,函数为您提供状态的值,而为您提供状态下的操作的值(遵循给定策略)。我在汤姆·米切尔(Tom Mitchell)的著作《机器学习》(Machine Learning)(1997),第ch中找到了关于Q学习的最清晰的解释。13,这是可下载的。被定义为一个无限级数的和,但在这里并不重要。重要的是函数定义为VQπVQ

Q(s,a)=r(s,a)+γV(δ(s,a))
Q V 其中,如果您遵循最佳策略,则V *是状态的最佳值不知道 然而,它在方面具有很好的特征。 计算是通过替换第一个方程中的给出 Q
V(s)=maxaQ(s,a)
QV
Q(s,a)=r(s,a)+γmaxaQ(δ(s,a),a)

起初这似乎是一个奇怪的递归,因为它以后继状态的最佳Q值表示当前状态下动作的Q值,但是当您查看备份过程如何使用它时,这是有道理的:当过程达到目标状态并收集奖励时,该过程将停止,该奖励将成为最终转换的Q值。现在,在后续的训练中,当探索过程达到该先前状态时,备份过程将使用上述等式来更新先前状态的当前Q值。下一次,访问前任状态的Q值将被更新,如此反复进行下去(Mitchell的书描述了一种更有效的方式,通过存储所有计算并在以后重播它们)。如果经常访问每个状态,则此过程最终会计算出最佳Q

有时您会看到学习率用于控制实际更新多少Q: 现在注意,对Q值的更新确实取决于当前的Q值。Mitchell的书还解释了为什么会这样,以及为什么您需要:它用于随机MDP。如果没有,则每次尝试状态,动作对时,都会得到不同的奖励,因此Q ^函数将在所有位置反弹而不会收敛。在那里,因此新知识仅部分被接受。α

Q(s,a)=(1α)Q(s,a)+α(r(s,a)+γmaxaQ(s,a))
=Q(s,a)+α(r(s,a)+γmaxaQ(s,a)Q(s,a))
ααααααααα设置为高,以使Q的当前(主要是随机值)影响较小。随训练的进行而减少,因此新的更新影响越来越小,现在Q学习收敛α


0

这是亚伦答案中状态值和动作值之间关系的更详细说明。首先让我们看一下策略下的值函数和操作值函数的定义: 其中是时间的返回。这两个值函数之间的关系可以推导为 π

vπ(s)=E[Gt|St=s]qπ(s,a)=E[Gt|St=s,At=a]
Gt=k=0γkRt+k+1t
vπ(s)=E[Gt|St=s]=gtp(gt|St=s)gt=gtap(gt,a|St=s)gt=ap(a|St=s)gtp(gt|St=s,At=a)gt=ap(a|St=s)E[Gt|St=s,At=a]=ap(a|St=s)qπ(s,a)
上式很重要。它描述了强化学习中两个基本价值函数之间的关系。它对任何策略均有效。此外,如果我们有确定性策略,则。希望这对您有帮助。(以了解有关Bellman最优性方程式https://stats.stackexchange的更多信息 vπ小号=qπ小号π小号vπ(s)=qπ(s,π(s))


0

价值函数是效用的抽象表述。Q函数用于Q学习算法。


对于此问题,和是不同的。QVQ
宋锡Th
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.