强化学习的数学原理-04值迭代与策略迭代

Value iteration algorithm

image.png

\[v_{k+1} = f(v_k) = \max_{\pi}\left( r_{\pi} + \gamma P_{\pi}v_k \right) \:, \: k\: = \: 1,2,3,... \]

算法可以被分为两步去做:

\(Step1:policy \: update\)

\[\pi_{k+1} \: = \: \arg \max_{\pi} \: (r_{\pi} + \gamma P_{\pi}) v_k \: \:, where \: v_k \: is \: given \]

\(Step2:value \: update\)

\[v_{k+1} \: = \: r_{\pi_{k+1}} + \gamma P_{\pi_{k+1}}v_k \]

Q:\(v_k\)是否是一个\(state \: value \:\)\(A:\)不是的

Matrix-vector form对于理论分析通常是有用的

Elementwise form对于具体实现是有用的

\(Step1:policy \: update\)

\[The \: eleementwise \: form \: of \: \pi_{k+1}(s) \: = \: \arg \max_{\pi} \left( r_{\pi + \gamma P_{\pi} v_k} \right) \: is \]

\[\pi_{k+1}(s) \: = \: \arg \: \max_{\pi} \sum_a \pi(a \mid s) \left( \sum_r p(r \mid s, a) r + \gamma \sum_s^{'}p(s^{'} \mid s, a)v_{s^{'}} \right) \:,s \in S \]

对应的最优策略应该是:\(q_k(s, a)\)最大的\(action\)

\[\pi_{k+1}(a \mid s) =\begin{cases}1, & \text{if } a = a_k^*(s) \\ 0, & \text{if } a \neq a_k^*(s)\end{cases}, where \: a^*_k \: = \: arg \: max_a q_k(s, a)\]

\(\pi_{k+1}\)是一个贪心的策略,因为他只是单纯地寻找最大的\(q-value\)

\(Step2:value \: update\)

因为\(\pi_{k+1}\)是贪心的,上面的等式就变为

\[v_{k+1}(s) \: = \: \max_a q_k(s, a) \]

也就是说\(state \: value\)就是\(action \: value\)最大的那个\(action\)对应的

image.png

Policy iteration algorithm

给一个随机初始化的策略\(\pi_0\)

​ 第一步进行:策略评估(PE, policy evaluation)

​ $$v_{\pi_k} : = : r_{\pi_k} + \gamma P_{\pi_{k}}v_{\pi_k}$$

​ 根据贝尔曼方程可以计算出\(v_{\pi_k}\)

​ 第二步进行:策略改进(PI,policy improvement)

​ $$\pi_{k+1} ; = ; \arg \max_{\pi}\left( r_{\pi} + \gamma P_{\pi} v_{\pi_k} \right)$$

具体实现需要看\(elementwise \: form\)

image.png

Truncated policy iteration algorithm

是上面\(value \; iteration \:\)\(policy \; iteration \:\)算法的推广

对比一下\(value \; iteration \:\)\(policy \; iteration \:\)

image.png

1730086595111.png

\(value \; iteration \:\)\(policy \; iteration \:\)主要的区别在Value更新的那一步

1730086687465.png

\(value \; iteration \:\)在计算了一步之后就用\(v_1\)去更新策略了,而\(policy \; iteration \:\)是在计算了无穷步之后用收敛的\(v_{\pi_1}\)去更新的\(v_{\pi}\)

而实际中我们是不可能去计算无穷步的,我们之后计算算有限步,当\(error\)很小的时候就停止更新,这就是\(Truncated \: policy \: iteration \: algorithm\)

1730087062036.png

posted @ 2024-10-28 11:49  cxy8  阅读(30)  评论(0编辑  收藏  举报