【强化学习入门】四.强化学习中的V值和Q值


在这里插入图片描述

1.背景知识

马尔可夫链中:当智能体从一个状态 s s s,选择动作 a a a,会进入另外一个状态 s ′ s' s;同时,也会给智能体奖励 r r r

奖励有正有负。“正” 代表我们鼓励智能体在这个状态下继续这么做;“负” 代表我们并不希望智能体这么做。在强化学习中,我们会用奖励 r r r 作为智能体学习的引导,期望智能体获得尽可能多的奖励。

但更多的时候,我们并不能单纯地只通过 r r r 来衡量一个动作的好坏,我们必须用长远的眼光来看待问题。

以考前玩游戏or复习为例:玩游戏会感到快乐,奖励+10;复习会觉得苦闷,奖励-50;考试通过了,心情大好,奖励+100;考试没通过,回家挨训-100。(假设,考前复习一定通过,玩游戏一定不通过),那么:

  • 考前游戏+10,考试没通过-100,最后得到-90的奖励。
  • 考前复习-50,考试通过+100,最后得到+50的奖励。

如果我们单纯地只从当前的一个奖励 r r r 来衡量一个动作(“游戏”or“复习”)的好坏,那肯定是游戏得到的奖励 r r r 更多
我们要把未来的奖励也计算到当前状态下,再进行决策。

2.V值和Q值的理解

  • V V V值:评估状态的价值,我们称为 V V V值。它代表了智能体在这个状态下,一直到最终状态得到总的奖励的期望。

  • Q Q Q值:评估动作的价值,我们称为 Q Q Q值。它代表了智能体选择该动作后,一直到最终状态得到总的奖励的期望。

3.V值介绍

V V V值定义:评估状态的价值,我们称为 V V V值。它代表了智能体在这个状态下,一直到最终状态得到总的奖励的期望。

V V V值计算:就是要计算当前状态 S S S到最终状态,得到总的奖励的期望值。通俗来说就是:从某个状态,按照策略 π \pi π,走到最终状态时,最终获得奖励总和的平均值(奖励期望),就是 V V V值。

【举例】 以下图为例,从状态 s 0 s_0 s0开始可以执行两个动作,分别是 a 1 a_1 a1 a 2 a_2 a2。从状态 s 0 s_0 s0开始,执行动作 a 1 a_1 a1,到最终状态得到的总奖励 R 1 R_1 R1为+10;从状态 s 0 s_0 s0开始,执行动作 a 2 a_2 a2,到最终状态得到的总奖励 R 2 R_2 R2为+20。
在这里插入图片描述

假设1: 在状态 s 0 s_0 s0时,执行动作 a 1 a_1 a1的概率为40%,执行动作 a 2 a_2 a2的概率为60%,那么从状态 s 0 s_0 s0到最后状态时,得到的奖励期望为:

V = R ‾ = p ( a 1 ∣ s 0 ) ⋅ R 1 + p ( a 2 ∣ s 0 ) ⋅ R 2 = 40 % ⋅ 10 + 60 % ⋅ 20 = 16 \begin{aligned} V = \overline{R} &= p(a_1|s_0) \cdot {R_1} + p(a_2|s_0) \cdot {R_2} \\ &= 40\% \cdot 10+60\% \cdot 20 \\ &=16\\ \end{aligned} V=R=p(a1s0)R1+p(a2s0)R2=40%10+60%20=16

其中, p ( a 1 ∣ s 0 ) p(a_1|s_0) p(a1s0)是指在状态 s 0 s_0 s0时,选择动作 a 1 a_1 a1的概率; p ( a 2 ∣ s 0 ) p(a_2|s_0) p(a2s0)是指在状态 s 0 s_0 s0时,选择动作 a 2 a_2 a2的概率。

假设2: 在状态 s 0 s_0 s0时,执行动作 a 1 a_1 a1的概率为50%,执行动作 a 2 a_2 a2的概率为50%。那么从状态 s 0 s_0 s0到最后状态得到的奖励期望 R ‾ \overline{R} R为:

V = R ‾ = p ( a 1 ∣ s 0 ) ⋅ R 1 + p ( a 2 ∣ s 0 ) ⋅ R 2 = 50 % ⋅ 10 + 50 % ⋅ 20 = 15 \begin{aligned} V = \overline{R} &= p(a_1|s_0) \cdot {R_1} + p(a_2|s_0) \cdot {R_2} \\ &= 50\% \cdot 10+50\% \cdot 20 \\ &=15\\ \end{aligned} V=R=p(a1s0)R1+p(a2s0)R2=50%10+50%20=15

假设3: 在状态 s 0 s_0 s0时,执行动作 a 1 a_1 a1的概率为60%,执行动作 a 2 a_2 a2的概率为40%。那么从状态 s 0 s_0 s0到最后状态得到的奖励期望 R ‾ \overline{R} R为:

V = R ‾ = p ( a 1 ∣ s 0 ) ⋅ R 1 + p ( a 2 ∣ s 0 ) ⋅ R 2 = 60 % ⋅ 10 + 40 % ⋅ 20 = 14 \begin{aligned} V = \overline{R} &= p(a_1|s_0) \cdot {R_1} + p(a_2|s_0) \cdot {R_2} \\ &= 60\% \cdot 10+40\% \cdot 20 \\ &=14\\ \end{aligned} V=R=p(a1s0)R1+p(a2s0)R2=60%10+40%20=14

由上述三个假设可以看到:采取不同的策略 π \pi π方案,最终得到的 V V V值是不同的!!!也就是说, V V V值跟策略 π \pi π具有直接关系。

4.Q值介绍

Q Q Q值定义:评估动作的价值,我们称为 Q Q Q值。它代表了智能体选择该动作后,一直到最终状态得到总的奖励的期望。

Q Q Q值计算:就是要计算采取动作 A A A之后,到最终状态时,得到总的奖励的期望值。通俗来说就是:从某个动作出发,走到最终状态时,最终获得奖励总和的平均值(奖励期望),就是 Q Q Q

注:与V值不同,Q值和策略 π \pi π并没有直接关系,而是与环境的状态转移概率有关(环境的状态转移概率是未知的,我们无法学习也无法改变)。

【举例】 以下图为例,采取动作 a 1 a_1 a1,跳转到状态 s 1 s_1 s1,到最终状态时,得到的奖励为+10;跳转到状态 s 2 s_2 s2,到最终状态时,得到的奖励为+20;跳转到状态 s 3 s_3 s3,到最终状态时,得到的奖励为+5;
在这里插入图片描述

Q ( s 0 ) = R ‾ ( s 0 ) = p ( s 1 ∣ s 0 , a 1 ) ⋅ R 1 + p ( s 2 ∣ s 0 , a 1 ) ⋅ R 2 + p ( s 3 ∣ s 0 , a 1 ) ⋅ R 3 = p ( s 1 ∣ s 0 , a 1 ) ⋅ 10 + p ( s 2 ∣ s 0 , a 1 ) ⋅ 20 + p ( s 3 ∣ s 0 , a 1 ) ⋅ 5 \begin{aligned} Q(s_0) = {\overline R}(s_0) &= p(s_1|s_0,a_1) \cdot {R_1} + p(s_2|s_0,a_1) \cdot {R_2} + p(s_3|s_0,a_1) \cdot {R_3} \\ &= p(s_1|s_0,a_1) \cdot {10} + p(s_2|s_0,a_1) \cdot {20} + p(s_3|s_0,a_1) \cdot {5} \\ \end{aligned} Q(s0)=R(s0)=p(s1s0,a1)R1+p(s2s0,a1)R2+p(s3s0,a1)R3=p(s1s0,a1)10+p(s2s0,a1)20+p(s3s0,a1)5

其中,
p ( s 1 ∣ s 0 , a 1 ) p(s_1|s_0,a_1) p(s1s0,a1)是指在状态 s 0 s_0 s0时,选择动作 a 1 a_1 a1后跳转到状态 s 1 s_1 s1的概率;
p ( s 2 ∣ s 0 , a 1 ) p(s_2|s_0,a_1) p(s2s0,a1)是指在状态 s 0 s_0 s0时,选择动作 a 1 a_1 a1后跳转到状态 s 2 s_2 s2的概率;
p ( s 3 ∣ s 0 , a 1 ) p(s_3|s_0,a_1) p(s3s0,a1)是指在状态 s 0 s_0 s0时,选择动作 a 1 a_1 a1后跳转到状态 s 3 s_3 s3的概率。

注意:状态转移概率 p ( s 1 ∣ s 0 , a 1 ) p(s_1|s_0,a_1) p(s1s0,a1) p ( s 2 ∣ s 0 , a 1 ) p(s_2|s_0,a_1) p(s2s0,a1) p ( s 3 ∣ s 0 , a 1 ) p(s_3|s_0,a_1) p(s3s0,a1) 是系统决定的,我们无法学习也无法改变。

5.根据Q值计算V值

V V V值代表了智能体在这个状态下,一直到最终状态得到总的奖励的期望。一个状态的 V V V值,就是这个状态下的所有动作的 Q Q Q值,在策略 π \pi π下的期望。
在这里插入图片描述

V π ( s 0 ) = p ( a 1 ∣ s 0 ) ⋅ q ( s 0 , a 1 ) + p ( a 2 ∣ s 0 ) ⋅ q ( s 0 , a 2 ) = ∑ a ∈ A π ( a ∣ s 0 ) ⋅ q π ( s 0 , a ) \begin{aligned} V_\pi(s_0)&= p(a_1|s_0) \cdot q(s_0,a_1) + p(a_2|s_0) \cdot q(s_0,a_2) \\ &= \sum\limits_{a\in A} \pi(a|s_0) \cdot q_{\pi}(s_0, a) \end{aligned} Vπ(s0)=p(a1s0)q(s0,a1)+p(a2s0)q(s0,a2)=aAπ(as0)qπ(s0,a)

其中,
p ( a 1 ∣ s 0 ) p(a_1|s_0) p(a1s0)是指在状态 s 0 s_0 s0下选择动作 a 1 a_1 a1的概率;
q ( s 0 , a 1 ) q(s_0,a_1) q(s0,a1)是指在状态 s 0 s_0 s0下选择动作 a 1 a_1 a1后的 Q Q Q值(获得的奖励期望);
p ( a 2 ∣ s 0 ) p(a_2|s_0) p(a2s0)是指在状态 s 0 s_0 s0下选择动作 a 2 a_2 a2的概率;
q ( s 0 , a 2 ) q(s_0,a_2) q(s0,a2)是指在状态 s 0 s_0 s0下选择动作 a 2 a_2 a2后的 Q Q Q值(获得的奖励期望);
π ( a ∣ s 0 ) \pi(a|s_0) π(as0)是指策略 π \pi π在状态 s 0 s_0 s0时采取某个动作 a ∈ A , A = ( a 1 , a 2 , a 3 , … , a n ) a\in A,A=(a_1, a_2, a_3, …, a_n) aA,A=(a1,a2,a3,,an)的概率;
q π ( s 0 , a ) q_{\pi}(s_0, a) qπ(s0,a)是指在状态 s 0 s_0 s0时,采取某个动作 a ∈ A , A = ( a 1 , a 2 , a 3 , … , a n ) a\in A,A=(a_1, a_2, a_3, …, a_n) aA,A=(a1,a2,a3,,an)对应的 Q Q Q值(获得的奖励期望)。

6.根据V值计算Q值

定义 q π ( s 0 , a 1 ) q_\pi(s_0, a_1) qπ(s0,a1)为某个状态 s 0 s_0 s0时,根据策略 π \pi π采取动作 a 1 a_1 a1 Q Q Q值。
在这里插入图片描述

q π ( s 0 , a 1 ) = [ p ( s 1 ∣ s 0 , a 1 ) ⋅ v π ( s 1 ) + r 1 ] + [ p ( s 2 ∣ s 0 , a 1 ) ⋅ v π ( s 2 ) + r 2 ] + [ p ( s 3 ∣ s 0 , a 1 ) ⋅ v π ( s 3 ) + r 3 ] = [ r 1 + r 2 + r 3 ] + P ( s ′ ∣ s 0 , a 1 ) ⋅ v π ( s ′ ) = R s 0 a 1 + γ ∑ s ′ P s 0 s ′ a 1 ⋅ v π ( s ′ ) \begin{aligned} q_\pi(s_0, a_1) &= [p(s_1|s_0,a_1) \cdot v_\pi(s_1) + r_1] + [p(s_2|s_0,a_1) \cdot v_\pi(s_2) + r_2] + [p(s_3|s_0,a_1) \cdot v_\pi(s_3) + r_3]\\ &=[ r_1+r_2+r_3] + P(s'|s_0, a_1) \cdot v_{\pi}(s')\\ &=R_{s_0}^{a_1} + \gamma \sum\limits_{s'} P_{{s_0}s'}^{a_1} \cdot v_\pi(s')\\ \end{aligned} qπ(s0,a1)=[p(s1s0,a1)vπ(s1)+r1]+[p(s2s0,a1)vπ(s2)+r2]+[p(s3s0,a1)vπ(s3)+r3]=[r1+r2+r3]+P(ss0,a1)vπ(s)=Rs0a1+γsPs0sa1vπ(s)

其中,
R s 0 a 1 R_{s_0}^{a_1} Rs0a1是指在状态 s 0 s_0 s0时,采取动作 a 1 a_1 a1跳转到新状态得到的奖励;
γ \gamma γ是折扣因子;
P s 0 s ′ a 1 P_{{s_0}s'}^{a_1} Ps0sa1是指在状态 s 0 s_0 s0时,采取动作 a 1 a_1 a1,跳转到新状态 s ′ s' s的状态转移概率;
v π ( s ′ ) v_\pi(s') vπ(s)是指跳转到的新状态 s ′ s' s V V V值。

7.根据V值计算V值

更多的时候,我们需要根据 V V V值来计算 V V V值。准确的说,是根据后面状态 s ′ s' s V V V值来计算前面状态 s s s V V V值。

已知:
V π ( s 0 ) = p ( a 1 ∣ s 0 ) ⋅ q ( s 0 , a 1 ) + p ( a 2 ∣ s 0 ) ⋅ q ( s 0 , a 2 ) = ∑ a ∈ A π ( a ∣ s 0 ) ⋅ q π ( s 0 , a ) \begin{aligned} V_\pi(s_0)&= p(a_1|s_0) \cdot q(s_0,a_1) + p(a_2|s_0) \cdot q(s_0,a_2) \\ &= \sum\limits_{a\in A} \pi(a|s_0) \cdot q_{\pi}(s_0, a) \\ \end{aligned} Vπ(s0)=p(a1s0)q(s0,a1)+p(a2s0)q(s0,a2)=aAπ(as0)qπ(s0,a)

q π ( s 0 , a 1 ) = [ p ( s 1 ∣ s 0 , a 1 ) ⋅ v π ( s 1 ) + r 1 ] + [ p ( s 2 ∣ s 0 , a 1 ) ⋅ v π ( s 2 ) + r 2 ] + [ p ( s 3 ∣ s 0 , a 1 ) ⋅ v π ( s 3 ) + r 3 ] = [ r 1 + r 2 + r 3 ] + P ( s ′ ∣ s 0 , a 1 ) ⋅ v π ( s ′ ) = R s 0 a 1 + γ ∑ s ′ P s 0 s ′ a 1 ⋅ v π ( s ′ ) q π ( s 0 , a 2 ) = R s 0 a 2 + γ ∑ s ′ P s 0 s ′ a 2 ⋅ v π ( s ′ ) \begin{aligned} q_\pi(s_0, a_1) &= [p(s_1|s_0,a_1) \cdot v_\pi(s_1) + r_1] + [p(s_2|s_0,a_1) \cdot v_\pi(s_2) + r_2] + [p(s_3|s_0,a_1) \cdot v_\pi(s_3) + r_3]\\ &=[ r_1+r_2+r_3] + P(s'|s_0, a_1) \cdot v_{\pi}(s')\\ &=R_{s_0}^{a_1} + \gamma \sum\limits_{s'} P_{{s_0}s'}^{a_1} \cdot v_\pi(s')\\ q_\pi(s_0, a_2) &=R_{s_0}^{a_2} + \gamma \sum\limits_{s'} P_{{s_0}s'}^{a_2} \cdot v_\pi(s')\\ \end{aligned} qπ(s0,a1)qπ(s0,a2)=[p(s1s0,a1)vπ(s1)+r1]+[p(s2s0,a1)vπ(s2)+r2]+[p(s3s0,a1)vπ(s3)+r3]=[r1+r2+r3]+P(ss0,a1)vπ(s)=Rs0a1+γsPs0sa1vπ(s)=Rs0a2+γsPs0sa2vπ(s)

所以:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ⋅ [ R s a + γ ∑ s ′ ∈ S P s s ′ a ⋅ v π ( s ′ ) ] \begin{aligned} V_\pi(s)&= \sum\limits_{a\in A} \pi(a|s) \cdot[ R_{s}^a + \gamma\sum\limits_{s'\in S} P_{ss'}^{a} \cdot v_\pi(s') ] \\ \end{aligned} Vπ(s)=aAπ(as)[Rsa+γsSPssavπ(s)]

参考文献:
[1] 张斯俊, 如何理解强化学习中的Q值和V值?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北下关吴中生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值