强化学习二(动态规划)
水系规划增强生态环境 #生活技巧# #园艺绿化建议# #园林景观规划#
动态规划 (Dynamic Programming)
动态规划的核心思想是使用价值函数来结构化的组织对最优策略的搜索。
首先,回顾一下贝尔曼最优方程:
V ∗ ( s ) = max a ( R s a + γ ∑ s , ∈ S P s s , a V ∗ ( s , ) ) V^*(s)=\max_a(R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}V^*(s^,)) V∗(s)=amax(Rsa+γs,∈S∑Pss,aV∗(s,))最优动作状态价值函数
Q ∗ ( s , a ) = R s a + γ ∑ s , ∈ S P s s , a max a , Q ∗ ( s , , a , ) Q^*(s,a)=R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}\max_{a^,}Q^*(s^,,a^,) Q∗(s,a)=Rsa+γs,∈S∑Pss,aa,maxQ∗(s,,a,)
1 策略评估 (Policy Evaluation)
对于一个任意策略 π \pi π,计算其状态价值函数 V π V_{\pi} Vπ的过程,叫做策略评估,也有文章中称为策略预测。
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) = ∑ a ∈ A π ( a ∣ s ) [ R s a + γ ∑ s , ∈ S P s s , a V π ( s , ) ] Vπ(s)=∑a∈Aπ(a|s)Qπ(s,a)=∑a∈Aπ(a|s)[Ras+γ∑s,∈SPass,Vπ(s,)]
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)=a∈A∑π(a∣s)[Rsa+γs,∈S∑Pss,aVπ(s,)]
从上式可知,如果状态集 S \mathcal{S} S中含有 n n n个状态,那么上式就是一个含有 n n n个未知数以及 n n n个等式的线性方程组。
一般地,使用迭代法来求解上述问题。如下所示
V k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) [ R s a + γ ∑ s , ∈ S P s s , a V k ( s , ) ] Vk+1(s)=∑a∈Aπ(a|s)[Ras+γ∑s,∈SPass,Vk(s,)]
Vk+1(s)=a∈A∑π(a∣s)[Rsa+γs,∈S∑Pss,aVk(s,)]
除了终止状态值必须为0外,初始近似值 V 0 V_0 V0可以任意选取。事实上,在保证 V π V_\pi Vπ存在的条件下,序列 { V k } \{V_k\} {Vk}在 k k k趋于无穷时将会收敛到 V π V_\pi Vπ。整个过程即迭代策略评估。
2 策略提升 (Policy Improvement)
策略评估的意义在于:通过计算该策略 π \pi π下的状态价值函数 V π V_\pi Vπ来评估该策略的好坏。
假设对于策略 π \pi π,已经通过策略评估得到其状态价值函数 V π V_\pi Vπ。如果从状态 s s s,继续使用策略 π \pi π,则其状态价值为 V π V_\pi Vπ。但是如果换一个策略,结果会怎样?
如果在状态 s s s选择另外的动作 a ≠ π ( s ) a\neq \pi(s) a=π(s)后,继续使用当前策略 π ( s ) \pi(s) π(s),那么根据定义,需要使用到状态动作价值函数来描述在状态 s s s选择另外的动作 a ≠ π ( s ) a\neq \pi(s) a=π(s)以后的期望回报,如下所示。
Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = R s a + γ ∑ s , ∈ S P s s , a V π ( s , ) Qπ(s,a)=Eπ[Gt|St=s,At=a]=Ras+γ∑s,∈SPass,Vπ(s,)
Qπ(s,a)=Eπ[Gt∣St=s,At=a]=Rsa+γs,∈S∑Pss,aVπ(s,)
注:这里的 a a a不是由策略 π ( s ) \pi(s) π(s)产生的,可以认为是别的策略 π , ( s ) \pi^,(s) π,(s)产生的 , a a a也可以使用别的符号代替。
接下来,可以通过比较 V π V_\pi Vπ和 Q π Q_\pi Qπ的大小来决定动作 a a a在这里是不是比原策略 π ( s ) \pi(s) π(s)产生的动作要好还是劣。
如果 V π V_\pi Vπ和 Q π Q_\pi Qπ之间存在如下关系:
Q π ( s , π , ( s ) ) ≥ V π ( s ) Q_\pi(s,\pi^,(s))\geq V_\pi(s) Qπ(s,π,(s))≥Vπ(s)
那么可以认为改进后的策略 π , ( s ) \pi^,(s) π,(s)比原策略 π ( s ) \pi(s) π(s)好,值得说明的是,我们可以这样理解这个不等式,可以认为策略 π , ( s ) = a ≠ π ( s ) \pi^,(s)=a\neq\pi(s) π,(s)=a=π(s),在其他地方 π , ( s ) \pi^,(s) π,(s)和 π ( s ) \pi(s) π(s)完全相同。
进一步地,就有
V π , ( s ) ≥ V π ( s ) V_{\pi^,}(s)\geq V_\pi(s) Vπ,(s)≥Vπ(s)
基于上面的原理,对于每一个状态和每一个动作,可以得到一个新的贪心策略 π , ( s ) \pi^,(s) π,(s),如下所示
π , ( s ) = arg max a Q π ( s , a ) = arg max a [ R s a + γ ∑ s , ∈ S P s s , a V π ( s , ) ] π,(s)=\argmaxaQπ(s,a)=\argmaxa[Ras+γ∑s,∈SPass,Vπ(s,)]
π,(s)=aargmaxQπ(s,a)=aargmax[Rsa+γs,∈S∑Pss,aVπ(s,)]
根据原有策略计算得到状态价值函数获知状态动作价值函数,进而根据计算好的价值函数更新一个新的策略,称作策略提升。
3 策略迭代
策略迭代的整个流程如下
π 0 → V π 0 → π 1 → V π 1 → π 2 → V π 2 → … → π ∗ → V ∗ \pi_0\rightarrow V_{\pi_0}\rightarrow\pi_1\rightarrow V_{\pi_1}\rightarrow\pi_2\rightarrow V_{\pi_2}\rightarrow\dotsc\rightarrow\pi^*\rightarrow V^* π0→Vπ0→π1→Vπ1→π2→Vπ2→…→π∗→V∗
π 0 → V π 0 \pi_0\rightarrow V_{\pi_0} π0→Vπ0的过程就是前面提到的策略评估过程, V π 0 → π 1 V_{\pi_0}\rightarrow\pi_1 Vπ0→π1的过程就是前面提到的策略提升过程。其中每一次策略评估都是一个迭代求解的过程。
策略迭代算法步骤:
初始化随机策略得到随机策略的值函数,即策略评估如果不是最优,找到一种新的改进策略,即策略提升重复2,3,直到找到最优策略4 值迭代
策略迭代算法的一个缺点在于在策略评估阶段需要迭代求解状态价值函数直到其收敛。值迭代的思想是在策略评估阶段只对策略评估做一次迭代,可以认为是一边策略评估,一边策略提升。使用更新公式可以表述这个过程。
V k + 1 ( s ) = max a Q π ( s , a ) = max a [ R s a + γ ∑ s , ∈ S P s s , a V k ( s , ) ] Vk+1(s)=maxaQπ(s,a)=maxa[Ras+γ∑s,∈SPass,Vk(s,)]
Vk+1(s)=amaxQπ(s,a)=amax[Rsa+γs,∈S∑Pss,aVk(s,)]
下面给出值迭代的算法步骤
值迭代算法步骤:
异步动态规划
对于状态数目很多的任务,对于每一个状态进行价值迭代更新的话,将会陷入到很庞大状态集的更新中。异步动态规划的思想是:以任意的顺序来更新状态值。就是说,这些状态值的更新不是同步的,即,有的状态已经更新了好几遍了,有的状态很有可能还没有开始更新。但是,需要说明的是,异步动态规划需要设计一个计算节点,来确保计算节点后,该算法不能忽略任何一个状态。异步动态规划是一种更新价值函数和策略的思想,根据不同的文献,会有不同具体可行的更新方式。
网址:强化学习二(动态规划) https://www.yuejiaxmz.com/news/view/465676
相关内容
强化学习实现日程规划手把手教你强化学习 (四)动态规划与策略迭代、值迭代
强化学习笔记二
算法动态规划01背包问题
大学生个人学习成长规划
个人理财规划学习
学习强国怎么规划日程 学习强国创建日程方法介绍
强化规划引领 优化空间布局 推动“工业锈带”蝶变“生活秀带”
大学生学习生涯规划范文2021
个人学习与规划.pptx