织梦做的网站打开空白,全球网站制作,公司找私人做网站,前端开发主要使用的工具有笔者近期上了国科大周晓飞老师《强化学习及其应用》课程#xff0c;计划整理一个强化学习系列笔记。笔记中所引用的内容部分出自周老师的课程PPT。笔记中如有不到之处#xff0c;敬请批评指正。 文章目录 2.1 动态规划#xff1a;策略收敛法/策略迭代法2.2 动态规划#xf… 笔者近期上了国科大周晓飞老师《强化学习及其应用》课程计划整理一个强化学习系列笔记。笔记中所引用的内容部分出自周老师的课程PPT。笔记中如有不到之处敬请批评指正。 文章目录 2.1 动态规划策略收敛法/策略迭代法2.2 动态规划值迭代法 总的来说DP方法就是在已知bellman方程的环境参数回报R和转移概率P的情况下求取最优策略 u ∗ u^* u∗和最优值 v ∗ v^* v∗。
2.1 动态规划策略收敛法/策略迭代法
总体思路算V -- 算Q -- 策略改进 不断重复 初始化最优策略 u Step1 策略评估: 确定当前策略 的值函数 V π V^π Vπ可通过下面的式子求解。
Step2 计算动作值函数Q: 使用值函数 V π V^π Vπ来计算每个状态-动作对的动作值函数 Q π ( s , a ) Q^π(s,a) Qπ(s,a)。这一步是为了计算在当前策略 下每个状态-动作对的期望回报。
Step3 策略改进: 对每个状态 选择能使 Q π ( s , a ) Q^π(s,a) Qπ(s,a)最大的动作从而形成新的策略 ′。这一步是为了更新策略使其更接近最优策略。 Step4: goto Step1, 直到最优策略不变。
2.2 动态规划值迭代法
值迭代Value Iteration是一种用于求解马尔可夫决策过程MDP的经典动态规划算法。它通过迭代地更新值函数逐步逼近最优值函数 V ∗ V^* V∗ 最终得到最优策略 π ∗ π^* π∗。
值迭代一般分为这几个步骤 step1 初始化设定初始值函数 V ( s ) V(s) V(s)为零或其他任意值。 step2 迭代更新对于每个状态 根据当前值函数 V k V_k Vk计算新的值函数 V k 1 V_{k1} Vk1。这个更新过程通过遍历所有状态和所有可能的动作计算在每个状态下采取每个动作所能获得的期望累计奖励并选择其中的最大值作为新的值函数值。 step3 收敛判定当值函数的变化小于某个预设的阈值 时认为值函数已经收敛可以停止迭代。 step4 策略提取在值函数收敛后通过值函数 V ∗ V^* V∗ 提取最优策略 π ∗ π^* π∗
关于值迭代也有很多处理技巧这里简单介绍三种。 1In-place Dynamic Programming 在标准的值迭代过程中我们通常会维护两个值函数一个用于保存当前迭代的结果另一个用于保存上一次迭代的结果。而在 In-place Dynamic Programming 中我们只使用一个值函数数组在每次更新时直接覆盖旧的值。 特点只需要一个数组来存储值函数减少了内存消耗。
2Prioritized Sweeping 是一种加速值迭代的方法通过优先更新那些对值函数变化影响较大的状态从而提高收敛速度。
3Real-time Dynamic Programming (RTDP) 是一种在实际运行过程中更新值函数的方法适用于在线学习。