强化学习——值(二)

1 状态值和动作值

为了衡量一个策略的好坏就需要状态值,而策略是当前状态下采取动作的概率,所以需要使用动作值去评价应该使用的策略。

1.1 状态值(state value)

状态值就是当前状态到目标所经历的 trajectory 的期望 return,记为 v π ( s ) = E [ G t ∣ S t = s ] v_\pi(s)=E[G_t|S_t=s] vπ(s)=E[GtSt=s] G t G_t Gt是使用当前策略的 return 值的随机变量),它与当前状态以及所选取的策略相关。

1.2 动作值(action value)

动作值就是当前状态,采取某个动作后到达最终目标所经历的 trajectory 的期望 return,记为 q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] q_\pi(s,a)=E[G_t|S_t=s,A_t=a] qπ(s,a)=E[GtSt=s,At=a],它除了与当前状态相关还与采取的动作有关。

2 贝尔曼公式(Bellman Equation)

为了计算出当前状态的 v v v q q q,根据定义
v π ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] 习惯上把 R t + 1 当成 t 时刻下的奖励 = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s ) E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ] = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s ) E [ G t + 1 ∣ S t + 1 = s ′ ] memoryless property = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ E [ G t + 1 ∣ S t + 1 = s ′ ] ∑ a π ( a ∣ s ) p ( s ′ ∣ s , a ) = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ v π ( s ′ ) ∑ a π ( a ∣ s ) p ( s ′ ∣ s , a ) = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r + γ ∑ a π ( a ∣ s ) ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) , ∀ s ∈ S 贝尔曼公式可以对所有的状态进行列写,有很多条 \begin{align} v_\pi(s)&=E[G_t|S_t=s] \\ &=E[R_{t+1}|S_t=s]+\gamma E[G_{t+1}|S_t=s] &\text 习惯上把 R_{t+1}当成 t 时刻下的奖励\\ &=\displaystyle \sum_a \pi(a|s) \displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} p(s'|s) E[G_{t+1}|S_t=s,S_{t+1}=s']\\ &=\displaystyle \sum_a \pi(a|s) \displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} p(s'|s) E[G_{t+1}|S_{t+1}=s'] &\text {memoryless property}\\ &=\displaystyle \sum_a \pi(a|s) \displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} E[G_{t+1}|S_{t+1}=s'] \displaystyle \sum_a \pi(a|s) p(s'|s,a) \\ &=\displaystyle \sum_a \pi(a|s) \displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} v_\pi(s') \displaystyle \sum_a \pi(a|s) p(s'|s,a)\\ &=\displaystyle \sum_a \pi(a|s) \displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_a \pi(a|s) \displaystyle \sum_{s'} p(s'|s,a)v_\pi(s'), \forall s \in S &\text{贝尔曼公式可以对所有的状态进行列写,有很多条} \end{align} vπ(s)=E[GtSt=s]=E[Rt+1St=s]+γE[Gt+1St=s]=aπ(as)rp(rs,a)r+γsp(ss)E[Gt+1St=s,St+1=s]=aπ(as)rp(rs,a)r+γsp(ss)E[Gt+1St+1=s]=aπ(as)rp(rs,a)r+γsE[Gt+1St+1=s]aπ(as)p(ss,a)=aπ(as)rp(rs,a)r+γsvπ(s)aπ(as)p(ss,a)=aπ(as)rp(rs,a)r+γaπ(as)sp(ss,a)vπ(s),sS惯上把Rt+1当成t时刻下的奖励memoryless property贝尔曼公式可以对所有的状态进行列写,有很多条
这个是针对单个值来列的贝尔曼公式,从贝尔曼公式发现当前 v π ( s ) v_\pi(s) vπ(s)可以由下个状态 v π ( s ′ ) v_\pi(s') vπ(s)求出,称为 bootstrap。
action value 的推导与 state value 差不多。
q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] = E [ R t + 1 ∣ S t = s , A t = a ] + γ E [ G t + 1 ∣ S t = s ] = ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s ) E [ G t + 1 ∣ S t = s , S t + 1 = s ′ , A t = a ] = ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s ) E [ G t + 1 ∣ S t + 1 = s ′ ] memoryless property = ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ E [ G t + 1 ∣ S t + 1 = s ′ ] p ( s ′ ∣ s , a ) = ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ v π ( s ′ ) p ( s ′ ∣ s , a ) , ∀ s ∈ S 贝尔曼公式可以对所有的状态和动作的组合进行列写,有很多条 \begin{align} q_\pi(s,a)&=E[G_t|S_t=s,A_t=a] \\ &=E[R_{t+1}|S_t=s,A_t=a]+\gamma E[G_{t+1}|S_t=s] \\ &=\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} p(s'|s) E[G_{t+1}|S_t=s,S_{t+1}=s',A_t=a]\\ &=\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} p(s'|s) E[G_{t+1}|S_{t+1}=s'] &\text {memoryless property}\\ &=\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} E[G_{t+1}|S_{t+1}=s'] p(s'|s,a) \\ &=\displaystyle \sum_r p(r|s,a) r+\gamma \displaystyle \sum_{s'} v_\pi(s') p(s'|s,a), \forall s \in S &\text{贝尔曼公式可以对所有的状态和动作的组合进行列写,有很多条} \end{align} qπ(s,a)=E[GtSt=s,At=a]=E[Rt+1St=s,At=a]+γE[Gt+1St=s]=rp(rs,a)r+γsp(ss)E[Gt+1St=s,St+1=s,At=a]=rp(rs,a)r+γsp(ss)E[Gt+1St+1=s]=rp(rs,a)r+γsE[Gt+1St+1=s]p(ss,a)=rp(rs,a)r+γsvπ(s)p(ss,a),sSmemoryless property贝尔曼公式可以对所有的状态和动作的组合进行列写,有很多条
比较两个式子也可以得出 v π ( s ) v_\pi(s) vπ(s)关于 q π ( s , a ) q_\pi(s,a) qπ(s,a)的表达式 v π ( s ) = ∑ a π ( a ∣ s ) q π ( s , a ) v_\pi(s)=\displaystyle \sum_a \pi(a|s) q_\pi(s,a) vπ(s)=aπ(as)qπ(s,a)

3 贝尔曼公式求解

单个值的贝尔曼公式无法写出解析解,往往需要多个公式联立,进而可以用矩阵乘法简化。
由公式 v π ( s ) = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] v_\pi(s)=E[R_{t+1}|S_t=s]+\gamma E[G_{t+1}|S_t=s] vπ(s)=E[Rt+1St=s]+γE[Gt+1St=s],当 v π , r π v_\pi,r_\pi vπ,rπ是一个多个状态的 v π ( s ) v_\pi(s) vπ(s) E [ R t + 1 ∣ S t = s ] E[R_{t+1}|S_t=s] E[Rt+1St=s]的向量时。当状态空间维度为 n 时。
[ v π ( s 1 ) v π ( s 2 ) ⋮ v π ( s n ) ] = [ r π ( s 1 ) r π ( s 2 ) ⋮ r π ( s n ) ] + γ [ p ( s 1 ∣ s 1 ) p ( s 1 ∣ s 2 ) ⋯ p ( s 1 ∣ s n ) p ( s 2 ∣ s 1 ) p ( s 2 ∣ s 2 ) ⋯ p ( s 2 ∣ s n ) ⋮ ⋮ ⋱ ⋮ p ( s n ∣ s 1 ) p ( s n ∣ s 2 ) ⋯ p ( s n ∣ s n ) ] [ v π ( s 1 ) v π ( s 2 ) ⋮ v π ( s n ) ] \begin{bmatrix} v_\pi(s_1)\\ v_\pi(s_2)\\ \vdots\\ v_\pi(s_n) \end{bmatrix}= \begin{bmatrix} r_\pi(s_1)\\ r_\pi(s_2)\\ \vdots\\ r_\pi(s_n)\\ \end{bmatrix}+\gamma \begin{bmatrix} p(s_1|s_1)&p(s_1|s_2)&\cdots&p(s_1|s_n)\\ p(s_2|s_1)&p(s_2|s_2)&\cdots&p(s_2|s_n)\\ \vdots&\vdots&\ddots&\vdots\\ p(s_n|s_1)&p(s_n|s_2)&\cdots&p(s_n|s_n) \end{bmatrix} \begin{bmatrix} v_\pi(s_1)\\ v_\pi(s_2)\\ \vdots\\ v_\pi(s_n) \end{bmatrix} vπ(s1)vπ(s2)vπ(sn) = rπ(s1)rπ(s2)rπ(sn) +γ p(s1s1)p(s2s1)p(sns1)p(s1s2)p(s2s2)p(sns2)p(s1sn)p(s2sn)p(snsn) vπ(s1)vπ(s2)vπ(sn)
其中这个方阵称为状态转移矩阵 P,整个公式可以写成 v π = r π + γ P v π v_\pi=r_\pi+\gamma P v_\pi vπ=rπ+γPvπ
可以写出解析解为 v π = ( I − γ P ) − 1 r π v_\pi=(I-\gamma P)^{-1} r_\pi vπ=(IγP)1rπ
为了减少运算量,在实际中不求逆,而是求迭代解 v k + 1 = r π + γ P v k ( k = 0 , 1 , 2 , ⋯ ) v_{k+1}=r_\pi+\gamma P v_k(k=0,1,2,\cdots) vk+1=rπ+γPvkk=0,1,2,。可以证明当 k → ∞ k\to\infty k v k + 1 → v π v_{k+1} \to v_\pi vk+1vπ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值