学习资料:bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接:强化学习的数学原理 西湖大学 赵世钰
一、值迭代算法
值迭代算法主要包括两部分。
第一部分:policy update。给定 v k v_k vk ,求解 m a x max max 最优化问题,其实就是求 π \pi π 。
第一部分:value update。根据求解出来的新的策略 π \pi π,即 π k + 1 \pi_{k+1} πk+1 ,把新策略代入到式子中,求出新的state value v k + 1 v_{k+1} vk+1。

下面详细看policy update的过程。首先要对每一个状态s,求出其 q k ( s , a ) q_k(s,a) qk(s,a) 。因为各变量都是已知的,所以能很方便地求出结果。然后,对于每一个状态s的 q k ( s , a ) q_k(s,a) qk(s,a) : q k ( s , a 1 ) q_k(s,a_1) qk(s,a1)、 q k ( s , a 2 ) q_k(s,a_2) qk(s,a2)、 q k ( s , a 3 ) q_k(s,a_3) qk(s,a3)…找出其中最大的 q k q_k qk,选择对应的动作a作为策略 π k + 1 ( a ∣ s ) \pi_{k+1}(a|s) πk+1(a∣s) 。所以这种策略是一个确定性的策略,且是一个贪婪的策略,只会寻求最大的 q q q 值。

下面详细看value update的过程。类似地,要对每一个状态s,求出其 q k ( s , a ) q_k(s,a) qk(s,a) 。因为各变量都是已知的, v k ( s ′ ) v_k(s') vk(s′)也是已知的(要么是刚开始赋值的,要么是前一轮算出来的 v k + 1 ( s ) v_{k+1}(s) vk+1(s)拿过来继续用),所以能很方便地求出结果。在上一步已经求出来最优的 π k + 1 ( a ∣ s ) \pi_{k+1}(a|s) πk+1(a∣s) 了,所以直接代入相应的值,就能得出 v k + 1 ( s ) v_{k+1}(s) vk+1(s)。因为 π k + 1 ( a ∣ s ) \pi_{k+1}(a|s) πk+1(a∣s) 只有在q值最大的情况下才等于1,在其他情况下都等于0,所以 v k + 1 ( s ) v_{k+1}(s) vk+1(s)直接就等于 m a x a q k ( s , a ) \mathop{max}\limits_{a}q_k(s,a) amaxqk(s,a)。

下面是值迭代方法的伪代码。一开始有一个初值 v k v_k vk,当 v k v_k vk还没有收敛( v k − v k − 1 v_k-v_{k-1} vk−vk−1的值不够小)的时候,就进行下面的步骤。对于第k次迭代,对于状态空间中的每一个状态s,算出其 q k ( s , a ) q_k(s,a) q

最低0.47元/天 解锁文章
812

被折叠的 条评论
为什么被折叠?



