成都市网站建设公wordpress前台发视频图片
强化学习笔记(一)
- 回报与价值函数
- 贝尔曼方程
- 全期望公式
- 自举
- 策略
- 马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别
- 马尔可夫决策过程中的价值函数
- 贝尔曼期望方程
- 备份图
参考书目:蘑菇书,链接蘑菇书
本系列笔记仅为个人学习所用,不涉及商业价值
回报与价值函数
范围是指一个回合的长度,即每个回合最大的时间步数,是由有限个步数决定的。
回报指奖励的逐步叠加。假设时间 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+⋯+γT−t−1rT
其中 γ \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[Gt∣st=s]=E[rt+1+γrt+2+γ2rt+3+γ3rt+4+⋯+γT−t−1rT 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)+未来奖励的折扣总和 γs′∈S∑p(s′∣s)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]=i∑E[X∣Ai]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[g′∣s′]=g′∑g′p(g′∣s′)(2.9)如果 X , Y X,Y X,Y都是离散型随机变量,则条件期望 E [ X ∣ Y = y ] \mathbb{E} [ X \vert Y=y ] E[X∣Y=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[X∣Y=y]=x∑xp(X=x∣Y=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+1∣st+1]∣st]=E[g′∣s]=E[Gt+1∣st]
贝尔曼方程推导:
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[Gt∣st=s]=E[rt+1+γrt+2+γ2rt+3+γ3rt+4+⋯∣st=s]=R(s)+γE[Gt+1∣st=s]=R(s)+γE[V(st+1)∣st=s]=R(s)+γs′∈S∑p(s′∣s)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 ) π(a∣s)=p(at=a∣st=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π(s′∣s)=a∈A∑π(a∣s)p(s′∣s,a)(2.18)理解为:从 s → s ′ s\rightarrow s' s→s′的概率=采取 a a a时从 s → s ′ s\rightarrow s' s→s′的概率 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)=a∈A∑π(a∣s)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π[Gt∣st=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π[Gt∣st=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)=a∈A∑π(a∣s)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[Gt∣st=s,at=a]=[rt+1+γrt+2+γ2rt+3+⋯∣st=s,at=a]=E[rt+1∣st=s,at=a]+γE[rt+2+γrt+3+γ2rt+4+⋯∣st=s,at=a]=R(s,a)+γE[Gt+1∣st=s,at=a]=R(s,a)+γE[V(st+1)∣st=s,at=a]=R(s,a)+γs′∈S∑p(s′∣s,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π[Gt∣st=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)=a∈A∑π(a∣s)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)+γs′∈S∑p(s′∣s,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)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑p(s′∣s,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)+γs′∈S∑p(s′∣s,a)a∈A∑π(a′∣s′)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)+γs′∈S∑p(s′∣s)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)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑p(s′∣s,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π(s′∣s)=a∈A∑π(a∣s)p(s′∣s,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)=a∈A∑π(a∣s)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)+γ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′)]即为式(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)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑p(s′∣s,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} {π(a∣s)−从s出发,采取a的概率p(s′∣s,a)−s状态下,从a出发,发展为s′的概率
备份图
备份图中,每一个实心圆圈代表一个状态-动作对,每一个空心圆圈代表一个状态。
在上图中:
- 奖励 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)。