强化学习的数学原理(四)Value iteration Policy iteration
由于全文太长,只好分开发了。(已完结!在专栏查看本系列其他文章)
个人博客可以直接看全文~
本系列为在学习赵世钰老师的“强化学习的数学原理” 课程后所作笔记。
课堂视频链接https://www.bilibili.com/video/BV1sd4y167NS/
第四章 Value iteration & Policy iteration
Value iteration algorithm(值迭代算法)
值迭代算法就是根据贝尔曼最优公式来迭代求解优化问题。
v k + 1 = f ( v k ) = m a x π ( r π + γ P π v π ) v_{k+1} = f(v_k) = \underset{\pi}{max}(r_\pi + \gamma P_\pi v_\pi) vk+1=f(vk)=πmax(rπ+γPπvπ)
**求解步骤:**最开始生成一个任意的状态 v 0 v_0 v0 ,不断循环以下两步
- policy update更新策略: π k + 1 = a r g m a x π ( r π + γ P π v k ) \pi_{k+1} = \underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_k) πk+1=πargmax(rπ+γPπvk)
- value update 更新值: v k + 1 = r π k + 1 + γ P π k + 1 v k v_{k+1} = r_{\pi_{k+1}}+\gamma P_{\pi_{k+1}} v_k vk+1=rπk+1+γPπk+1vk
需要注意的是 v k v_k vk 只是一个值,并不是一个state value。
不断迭代直到 v k − v k − 1 v_k-v_{k-1} vk−vk−1 足够小就认为已经收敛了。
Policy iteration algorithm(策略迭代算法)
最开始生成一个任意策略 π 0 \pi_0 π0
- policy evalution(PE): v π k = r π k + γ P π k v π k v_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k} v_{\pi_k} vπk=rπk+γPπkvπk
- policy improvement(PI): π k + 1 = a r g m a x π ( r π + γ P π v π k ) \pi_{k+1}=\underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_{\pi_k}) πk+1=πargmax(rπ+γPπvπk)
整体过程即 π 0 → P E v π 0 → P I π 1 → P E v π 1 → P I π 2 → P E v π 2 → P I π 3 . . . . \pi_0 \overset{PE}{\to}v_{\pi_0} \overset{PI}{\to}\pi_1\overset{PE}{\to}v_{\pi_1} \overset{PI}{\to}\pi_2\overset{PE}{\to}v_{\pi_2} \overset{PI}{\to}\pi_3.... π0→PEvπ0→PIπ1→PEvπ1→PIπ2→PEvπ2→PIπ3....
-
几个核心问题:
-
在policy evaluation中如何求解 state value?
-
为什么进行PI后, π k + 1 \pi_{k+1} πk+1比 π k \pi_k πk 更优?
-
为什么最终能找到最优解?
-
Policy iteration和Value iteration 有什么关系?
-
-
Q1: 有两种方法(即求解贝尔曼公式的两种方法):
- closed-form solution : v π k = ( I − γ P π k ) − 1 r π k v_{\pi_k} = (I-\gamma P_{\pi_k})^{-1} r_{\pi_k} vπk=(I−γPπk)−1rπk
- iterative solution: v π k j + 1 = r π k + γ P π k v π k ( j ) , j = 0 , 1 , 2 , . . . v^{j+1}_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k}v_{\pi_k}^{(j)} , j = 0,1,2,... vπkj+1=rπk+γPπkvπk(j),j=0,1,2,...
Q2: π k + 1 = a r g m a x π ( r π + γ P π v π k ) \pi_{k+1}=\underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_{\pi_k}) πk+1=πargmax(rπ+γPπvπk) ,因为 π k + 1 \pi_{k+1} πk+1 一定比 π k \pi_k πk 要更大
Q3: v π 0 ≤ v π 1 ≤ v π 2 ≤ . . . ≤ v π k ≤ v ∗ v_{\pi_0} \le v_{\pi_1} \le v_{\pi_2} \le ...\le v_{\pi_k} \le v^* vπ0≤vπ1≤vπ2≤...≤vπk≤v∗
Q4: 二者是两个极端
truncated policy iteration algorithm
他是值迭代算法和策略迭代算法的推广,值迭代算法和策略迭代算法是truncated policy iteration algorithm的极端情况。
Policy iteration: π 0 → P E v π 0 → P I π 1 → P E v π 1 → P I π 2 → P E v π 2 → P I π 3 . . . . \pi_0 \overset{PE}{\to}v_{\pi_0} \overset{PI}{\to}\pi_1\overset{PE}{\to}v_{\pi_1} \overset{PI}{\to}\pi_2\overset{PE}{\to}v_{\pi_2} \overset{PI}{\to}\pi_3.... π0→PEvπ0→PIπ1→PEvπ1→PIπ2→PEvπ2→PIπ3....
Value iteration: u 0 → P U π 1 ′ → V U u 1 → P U π 2 ′ → V U u 2 . . . u_0\overset{PU}{\to}\pi_1'\overset{VU}{\to}u_1\overset{PU}{\to}\pi_2'\overset{VU}{\to}u_2... u0→PUπ1′→VUu1→PUπ2′→VUu2...
Policy Iteration algorithm | Value iteration algorithm | Comments | |
---|---|---|---|
1)Policy: | π 0 \pi _0 π0 | N/A | |
2) Value: | v π 0 = r π 0 + γ P π 0 v π 0 v_{\pi_0} = r_{\pi_0}+\gamma P_{\pi_0} v_{\pi_0} vπ0=rπ0+γPπ0vπ0 | v 0 : = v π 0 v_0 := v_{\pi_0} v0:=vπ0 | |
3) Policy: | π 1 = a r g m a x π ( r π + γ P π v π 0 ) \pi_1 = \underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_{\pi_0}) π1=πargmax(rπ+γPπvπ0) | π 1 = a r g m a x π ( r π + γ P π v 0 ) \pi_1 = \underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_0) π1=πargmax(rπ+γPπv0) | 两个算法的第一步Policy是相同的。 |
4) Value: | KaTeX parse error: Invalid color: ' #FF0000' at position 52: …i_1} \textcolor{̲ ̲#̲F̲F̲0̲0̲0̲0̲}̲{v_{\pi_1}} | KaTeX parse error: Invalid color: ' #FF0000' at position 45: …pi_1}\textcolor{̲ ̲#̲F̲F̲0̲0̲0̲0̲}̲{v_0} | 两个算法求 v π v_\pi vπ 的方法是不一样的 |
5)Policy: | π 2 = a r g m a x π ( r π + γ P π v π 1 ) \pi_2 = \underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_{\pi_1}) π2=πargmax(rπ+γPπvπ1) | π 2 ′ = a r g m a x π ( r π + γ P π v 1 ) \pi_2' = \underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_1) π2′=πargmax(rπ+γPπv1) | |
… | … | … | … |
区别在于计算 v π 1 v_{\pi_1} vπ1的时候是使用贝尔曼公式求,还是直接继承上一步的求法。
考虑公式 v π 1 = r π 1 + γ P π 1 v π 1 v_{\pi_1} = r_{\pi_1} + \gamma P_{\pi_1} v _{\pi_1} vπ1=rπ1+γPπ1vπ1
KaTeX parse error: Invalid color: ' #FF0000' at position 143: …ion\ \textcolor{̲ ̲#̲F̲F̲0̲0̲0̲0̲}̲{v_1}\\ v_{\pi_…
可以发现,value iteration就是在得到第一个 v v v 后就进行下一步操作;policy iteration则是不断你迭代直到收敛。 那么 truncated policy iteraion则是二者的结合,选择在中间的某一步停下。