当前位置: 首页 > article >正文

强化学习笔记(一)

强化学习笔记(一)

  • 回报与价值函数
  • 贝尔曼方程
  • 全期望公式
  • 自举
  • 策略
  • 马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别
  • 马尔可夫决策过程中的价值函数
  • 贝尔曼期望方程
  • 备份图

参考书目:蘑菇书,链接蘑菇书
本系列笔记仅为个人学习所用,不涉及商业价值

回报与价值函数

范围是指一个回合的长度,即每个回合最大的时间步数,是由有限个步数决定的。

回报指奖励的逐步叠加。假设时间 t t t后奖励序列为 r t + 1 , r t + 2 , ⋯   , r t + 3 r_{t+1},r_{t+2},\cdots,r_{t+3} rt+1,rt+2,,rt+3,那么回报为
G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + ⋯ + γ T − t − 1 r T G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \gamma^3 r_{t+4} + \cdots + \gamma^{T-t-1} r_T Gt=rt+1+γrt+2+γ2rt+3+γ3rt+4++γTt1rT
其中 γ \gamma γ为折扣因子,越往后得到的奖励,折扣越多,即希望得到现有的奖励,对未来的奖励打折扣。 γ = 0 \gamma=0 γ=0则只关注当前的奖励。

状态价值函数:定义为回报的期望,即
V t ( s ) = E [ G t ∣ s t = s ] = E [ r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + ⋯ + γ T − t − 1 r T ∣ s t = s ] \begin{aligned} V^t(s) &= \mathbb{E} \left[ G_t \vert s_t = s \right] \\ &= \mathbb{E} \left[ r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \gamma^3 r_{t+4} + \cdots + \gamma^{T-t-1} r_T \Big\vert s_t = s \right] \end{aligned} Vt(s)=E[Gtst=s]=E[rt+1+γrt+2+γ2rt+3+γ3rt+4++γTt1rT st=s]其中 G t G_t Gt是折扣回报。对 G t G_t Gt取期望,可以看成是对未来可能获得奖励的当前价值的表现,即进入某一个状态后,现在有多大的价值

贝尔曼方程

从价值函数里推导出贝尔曼方程
V ( s ) = R ( s ) ⏟ 即时奖励 + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) ⏟ 未来奖励的折扣总和 V(s) = \underbrace{ R(s) }_{即时奖励} + \underbrace{ \gamma \sum_{s' \in S} p \left( s' \vert s \right) V (s') }_{未来奖励的折扣总和} V(s)=即时奖励 R(s)+未来奖励的折扣总和 γsSp(ss)V(s)

全期望公式

全期望公式也被称为叠期望公式(LIE)。如果 A i A_i Ai是样本空间的有限或可数的划分,则全期望公式为
E [ X ] = ∑ i E [ X ∣ A i ] p ( A i ) \mathbb{E} [X] = \sum_i \mathbb{E} [ X \vert A_i ] p (A_i ) E[X]=iE[XAi]p(Ai)即是一种加权求和。
同样地有
E [ G t + 1 ∣ s t + 1 ] = E [ g ′ ∣ s ′ ] = ∑ g ′ g ′ p ( g ′ ∣ s ′ ) (2.9) \begin{aligned} \mathbb{E} \left[ G_{t+1} \big\vert s_{t+1} \right] &= \mathbb{E} [g' \vert s'] \\ &= \sum_{g'} g' p \left( g' \vert s' \right) \end{aligned} \tag{2.9} E[Gt+1 st+1]=E[gs]=ggp(gs)(2.9)如果 X , Y X,Y X,Y都是离散型随机变量,则条件期望 E [ X ∣ Y = y ] \mathbb{E} [ X \vert Y=y ] E[XY=y]定义为
E [ X ∣ Y = y ] = ∑ x x p ( X = x ∣ Y = y ) \mathbb{E} [X \vert Y = y] = \sum_x x p ( X = x \vert Y = y ) E[XY=y]=xxp(X=xY=y)对式(2.9)求期望有
E [ E [ G t + 1 ∣ s t + 1 ] ∣ s t ] = E [ g ′ ∣ s ] = E [ G t + 1 ∣ s t ] \mathbb{E} \left[ \mathbb{E} \left[ G_{t+1} \vert s_{t+1} \right] \vert s_t \right] = \mathbb{E} [ g' \vert s ] = \mathbb{E} [ G_{t+1} \vert s_t ] E[E[Gt+1st+1]st]=E[gs]=E[Gt+1st]
贝尔曼方程推导:
V ( s ) = E [ G t ∣ s t = s ] = E [ r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + ⋯ ∣ s t = s ] = R ( s ) + γ E [ G t + 1 ∣ s t = s ] = R ( s ) + γ E [ V ( s t + 1 ) ∣ s t = s ] = R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) (2.11) \begin{aligned} V(s) &= \mathbb{E} [ G_t \vert s_t = s ] \\ &= \mathbb{E} \left[ r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \gamma^3 r_{t+4} + \cdots \vert s_t = s \right] \\ &= R(s) + \gamma \mathbb{E} [ G_{t+1} \vert s_t = s ] \\ &= R(s) + \gamma \mathbb{E} [ V(s_{t+1}) \vert s_t = s ] \\ &= R(s) + \gamma \sum_{s' \in S} p (s' \vert s) V(s') \end{aligned} \tag{2.11} V(s)=E[Gtst=s]=E[rt+1+γrt+2+γ2rt+3+γ3rt+4+st=s]=R(s)+γE[Gt+1st=s]=R(s)+γE[V(st+1)st=s]=R(s)+γsSp(ss)V(s)(2.11)上式也叫动态规划方程。表明当前状态的价值函数可以通过下个状态的价值函数来计算。它表明的是 V ( s ) V(s) V(s) V ( s ′ ) V(s') V(s)之间的关系。
向量形式的解析解:
V = ( I − γ P ) − 1 R \textbf{\textit{V}} = \left( \textbf{\textit{I}} - \gamma \textbf{\textit{P}} \right) ^{-1} \textbf{\textit{R}} V=(IγP)1R

自举

根据其他估算值来更新估算值的思想,称为自举。当最后更新的状态与我们上一个状态的区别不大时,更新就可以停止,可以输出最新的 V ′ ( s ) V'(s) V(s)作为当前状态的价值。此时贝尔曼方程变成了一个贝尔曼更新。

策略

策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,可以把当前状态代入策略函数,得到一个概率
π ( a ∣ s ) = p ( a t = a ∣ s t = s ) \pi (a \vert s) = p (a_t = a \vert s_t = s ) π(as)=p(at=ast=s)在状态 s s s下采取 a a a动作的概率。bf本质上是一个概率的表示。

当已经知道每个状态下可能采取的动作的概率后,可以直接把动作进行加和,去掉 a a a,得到对于马尔可夫奖励过程的转移,其中没有动作
P π ( s ′ ∣ s ) = ∑ a ∈ A π ( a ∣ s ) p ( s ′ ∣ s , a ) (2.18) P_\pi (s' \vert s) = \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \tag{2.18} Pπ(ss)=aAπ(as)p(ss,a)(2.18)理解为:从 s → s ′ s\rightarrow s' ss的概率=采取 a a a时从 s → s ′ s\rightarrow s' ss的概率 p p p × \times × s s s下采取 a a a的概率 π \pi π

对于奖励函数,亦可以把动作去掉,得到奖励函数
r π ( s ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) (2.19) r_\pi (s) = \sum_{a \in A} \pi (a \vert s) R(s,a) \tag{2.19} rπ(s)=aAπ(as)R(s,a)(2.19)

马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别

马尔可夫过程/马尔可夫奖励过程的状态转移是直接决定的,从当前 s s s直接通过转移概率决定下一个状态。
马尔可夫决策过程中间多了一层动作 a a a,智能体在当前 s s s首先要决定采取一种动作,到达下图的黑色节点。到达黑色节点后,由于具有不确定性,智能体进入未来的状态也是一个概率分布。在当前状态与未来状态转移过程中多了一层决策性,这是主要区别。在马尔可夫决策过程中,动作是由智能体决定的,智能体会采取动作来决定未来的状态转移。

马尔可夫过程对比

马尔可夫决策过程中的价值函数

V π ( s ) = E π [ G t ∣ s t = s ] (2.20) V_\pi (s) = \mathbb{E}_\pi [ G_t \vert s_t = s ] \tag{2.20} Vπ(s)=Eπ[Gtst=s](2.20)当策略决定后,对策略进行采样,得到一个期望,从而得出价值函数。

Q函数,也被称为动作价值函数,定义是在某一状态采取某一动作,可能得到的回报的期望
Q π ( s , a ) = E π [ G t ∣ s t = s , a t = a ] Q_\pi (s, a) = \mathbb{E}_\pi [G_t \vert s_t = s, a_t = a ] Qπ(s,a)=Eπ[Gtst=s,at=a]这里的期望也是基于策略函数的。Q是采取单个 a a a得到的价值,即单一动作 a a a动作价值
由于可能采取不同的策略,因此需要对策略函数进行加和,得到策略的价值。对Q函数中的动作进行加和(即遍历所有可能取到的动作),就可以得到价值函数
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) (2.22) V_\pi (s) = \sum_{a \in A} \pi(a \vert s) Q_\pi (s, a) \tag{2.22} Vπ(s)=aAπ(as)Qπ(s,a)(2.22)V是单一状态 s s s下所有动作带来的价值的期望,总体来说是单一状态 s s s状态价值

对Q函数的贝尔曼方程进行推导
Q ( s , a ) = E [ G t ∣ s t = s , a t = a ] = [ r t + 1 + γ r t + 2 + γ 2 r t + 3 + ⋯ ∣ s t = s , a t = a ] = E [ r t + 1 ∣ s t = s , a t = a ] + γ E [ r t + 2 + γ r t + 3 + γ 2 r t + 4 + ⋯ ∣ s t = s , a t = a ] = R ( s , a ) + γ E [ G t + 1 ∣ s t = s , a t = a ] = R ( s , a ) + γ E [ V ( s t + 1 ) ∣ s t = s , a t = a ] = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ( s ′ ) (2.23) \begin{aligned} Q(s, a) &= \mathbb{E} [ G_t \vert s_t = s, a_t = a] \\ &= \mathbb[ r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \cdots \vert s_t = s, a_t = a] \\ &= \mathbb{E} [r_{t+1} \vert s_t = s, a_t = a] + \gamma \mathbb{E} [r_{t+2} + \gamma r_{t+3} + \gamma^2 r_{t+4} + \cdots \vert s_t = s, a_t = a] \\ &= R(s, a) + \gamma \mathbb{E} [G_{t+1} \vert s_t = s, a_t = a] \\ &= R(s, a) + \gamma \mathbb{E} [V(s_{t+1}) \vert s_t = s, a_t = a] \\ &= R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V(s') \end{aligned} \tag{2.23} Q(s,a)=E[Gtst=s,at=a]=[rt+1+γrt+2+γ2rt+3+st=s,at=a]=E[rt+1st=s,at=a]+γE[rt+2+γrt+3+γ2rt+4+st=s,at=a]=R(s,a)+γE[Gt+1st=s,at=a]=R(s,a)+γE[V(st+1)st=s,at=a]=R(s,a)+γsSp(ss,a)V(s)(2.23) { 状态价值 V ( s ) ,某状态 s 的价值 动作价值 Q ( s , a ) ,采取某动作 a 的价值 \begin{cases} 状态价值V(s),某状态s的价值 \\ 动作价值Q(s,a),采取某动作a的价值 \end{cases} {状态价值V(s),某状态s的价值动作价值Q(s,a),采取某动作a的价值

贝尔曼期望方程

可以把状态价值函数V和动作价值函数Q进行拆分,拆分成即时奖励和后续状态的折扣价值,进而由式(2.20)得到贝尔曼期望方程
V π ( s ) = E π [ G t ∣ s t = s ] = E π [ r t + 1 + γ V π ( s t + 1 ) ∣ s t = s ] V_\pi (s) = \mathbb{E}_\pi [ G_t \vert s_t = s ] = \mathbb{E}_\pi [ r_{t+1} + \gamma V_\pi (s_{t+1}) \vert s_t = s] Vπ(s)=Eπ[Gtst=s]=Eπ[rt+1+γVπ(st+1)st=s]对于Q函数亦然
Q π ( s , a ) = E π [ r t + 1 + γ Q π ( s t + 1 , a t + 1 ) ∣ s t = s , a t = a ] Q_\pi (s,a) = \mathbb{E}_\pi [ r_{t+1} + \gamma Q_\pi (s_{t+1}, a_{t+1} ) \vert s_t = s, a_t = a] Qπ(s,a)=Eπ[rt+1+γQπ(st+1,at+1)st=s,at=a]根据式(2.22)
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) (2.22) V_\pi (s) = \sum_{a \in A} \pi(a \vert s) Q_\pi (s, a) \tag{2.22} Vπ(s)=aAπ(as)Qπ(s,a)(2.22)与式(2.23)
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) (2.23) Q_\pi(s, a) = R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \tag{2.23} Qπ(s,a)=R(s,a)+γsSp(ss,a)Vπ(s)(2.23)可以看出,式(2.22)为V和Q的关系(由Q推V),式(2.23)为Q和V的关系(由V推Q)。把式(2.23)代入(2.22)有
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) ) (2.28) V_\pi (s) = \sum_{a \in A} \pi(a \vert s) \left( R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right) \tag{2.28} Vπ(s)=aAπ(as)(R(s,a)+γsSp(ss,a)Vπ(s))(2.28)该式表明当前状态的V与未来状态的V之间的关系。
同样地,把(2.22)代入(2.23)有
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ∑ a ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) (2.29) Q_\pi(s, a) = R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) \sum_{a \in A} \pi(a' \vert s') Q_\pi (s', a') \tag{2.29} Qπ(s,a)=R(s,a)+γsSp(ss,a)aAπ(as)Qπ(s,a)(2.29)该式表明当前时刻的Q与未来时刻的Q的关系。
(2.28)和(2.29)都是贝尔曼方程的形式。

(2.28)和(2.11)关系
这里列出两式:
V ( s ) = R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) (2.11) V(s) = R(s) + \gamma \sum_{s' \in S} p (s' \vert s) V(s') \tag{2.11} V(s)=R(s)+γsSp(ss)V(s)(2.11) V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) ) (2.28) V_\pi (s) = \sum_{a \in A} \pi(a \vert s) \left( R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right) \tag{2.28} Vπ(s)=aAπ(as)(R(s,a)+γsSp(ss,a)Vπ(s))(2.28)两式是开括号的关系。如果我们使用(2.18)和(2.19):
P π ( s ′ ∣ s ) = ∑ a ∈ A π ( a ∣ s ) p ( s ′ ∣ s , a ) (2.18) P_\pi (s' \vert s) = \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \tag{2.18} Pπ(ss)=aAπ(as)p(ss,a)(2.18) r π ( s ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) (2.19) r_\pi (s) = \sum_{a \in A} \pi (a \vert s) R(s,a) \tag{2.19} rπ(s)=aAπ(as)R(s,a)(2.19)把(2.18)和(2.19)代入(2.11)有
V ( s ) = R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) = R ( s ) + γ ∑ s ′ ∈ S [ ∑ a ∈ A π ( a ∣ s ) p ( s ′ ∣ s , a ) ] V ( s ′ ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) + γ ∑ s ′ ∈ S [ ∑ a ∈ A π ( a ∣ s ) p ( s ′ ∣ s , a ) ] V ( s ′ ) = ∑ a ∈ A π ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) ] \begin{aligned} V(s) &= R(s) + \gamma \sum_{s' \in S} p (s' \vert s) V(s') \\ &= R(s) + \gamma \sum_{s' \in S} \left[ \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \right] V(s') \\ &= \sum_{a \in A} \pi (a \vert s) R(s,a) + \gamma \sum_{s' \in S} \left[ \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \right] V(s') \\ &= \sum_{a \in A} \pi (a \vert s) \left[ R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right] \end{aligned} V(s)=R(s)+γsSp(ss)V(s)=R(s)+γsS[aAπ(as)p(ss,a)]V(s)=aAπ(as)R(s,a)+γsS[aAπ(as)p(ss,a)]V(s)=aAπ(as)[R(s,a)+γsSp(ss,a)Vπ(s)]即为式(2.28)。

式(2.28)的理解
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) ) (2.28) V_\pi (s) = \sum_{a \in A} \pi(a \vert s) \left( R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right) \tag{2.28} Vπ(s)=aAπ(as)(R(s,a)+γsSp(ss,a)Vπ(s))(2.28)式右边 γ ∑ p V \gamma \sum pV γpV表示: s ′ s' s为从 s s s出发,能够到达的那些状态。这些 s ′ s' s对应的状态价值函数 V ( s ′ ) V(s') V(s),乘以从 s s s采取动作 a a a到达 s ′ s' s的概率 p p p,再对所有 s ′ s' s求和,得到 ∑ p V \sum pV pV。折扣 γ \gamma γ后,加上 s s s本身离开自己的奖励 R R R,整理再乘以采取该动作 a a a的概率 π \pi π,再把所有可能的 a a a加和,就能得到 V V V了。
{ π ( a ∣ s ) − 从 s 出发,采取 a 的概率 p ( s ′ ∣ s , a ) − s 状态下,从 a 出发,发展为 s ′ 的概率 \begin{cases} \pi(a \vert s) - 从s出发,采取a的概率 \\ p (s' \vert s, a ) - s状态下,从a出发,发展为s'的概率 \end{cases} {π(as)s出发,采取a的概率p(ss,a)s状态下,从a出发,发展为s的概率

备份图

备份图中,每一个实心圆圈代表一个状态-动作对,每一个空心圆圈代表一个状态。
备份图2
在上图中:

  • 奖励 r r r只出现在实心圆到空心圈的过程中( ∙ → ∘ \bullet \rightarrow \circ ),因为必须先采取了动作 a a a(即 ∙ \bullet )才能有奖励 r r r

在式样书(2.28)中有2层加和:1)第一层对叶子节点 s ′ s' s进行加和,往上备份一层,这样就能把未来的价值 s ′ s' s备份到黑色节点。2)第二层是对动作进行加和,得到黑色节点( a a a)的价值后,再往上备份一层,得到根节点的价值,即当前状态 s s s的价值。
备份图
在上图中,(b)为第一层,对应为式(2.22),即从Q计算出V;( c )为第二层,对应式(2.23),即从V计算出Q。二式合并即得式(2.28)。


http://www.kler.cn/a/560820.html

相关文章:

  • 游戏引擎学习第120天
  • 鸿蒙-canvas-刮刮乐
  • 122页PPT!企业数字化IT架构蓝图规划设计方案:总体框架、IT治理全景图、IT治理管控框架、蓝图架构、演进路线、实施治理
  • 计算机网络与通讯知识总结
  • springcloud跟dubbo有什么区别
  • 设计模式教程:备忘录模式(Memento Pattern)
  • Grok 3.0 Beta 版大语言模型评测
  • 修改与 Git 相关的邮箱
  • 自动驾驶两个传感器之间的坐标系转换
  • imutils opencv-python 的一些操作
  • [杂学笔记]工厂模式、多态、内存空间区域划分、cp指令破坏软连接问题、UDP如何实现可靠传输、滑动窗口的原理、进程与线程、线程之间的通信
  • Java数据结构第十三期:走进二叉树的奇妙世界(二)
  • 发现问题 python3.6.13+django3.2.5 只能以asgi启动server 如何解决当前问题
  • Linux中的date命令
  • JavaSE学习笔记26-集合(Collection)
  • 【DeepSeek-R1背后的技术】系列十一:RAG原理介绍和本地部署(DeepSeekR1+RAGFlow构建个人知识库)
  • 数据结构:哈希表(unordered_map)
  • Eureka、ZooKeeper 和 Nacos 之间的对比
  • 八大排序算法(C语言实现)
  • ABC381E题解