David Silver强化学习公开课自学笔记——Lec3动态规划

David Silver强化学习公开课自学笔记——Lec3动态规划
摘要由CSDN通过智能技术生成

本笔记摘自知乎博主旺财的搬砖历险记和叶强,仅用于自学

1.动态规划介绍

(1)定义

Dynamic: sequential or temporal component to the problem.
Programming:optimising a “problem”

动态:该问题的时间或序列部分
规划:优化一个策略,与线性规划不同

🎀动态规划

  • 是解决复杂问题的一个方法
  • 把复杂问题分解问子问题
    • 求解子问题
    • 通过整合子问题的解得到整个问题的解
  • 子问题的结果通常被存储从而解决后续复杂问题

(2)求解问题范围

不是所有的问题都能用动态规划方法来求解,能用动态规划求解的问题必须满足两个性质:

  • 最优子结构(Optimal substructure)
    • 保证问题能够使用最优性原理
    • 问题的最优解可以分解为子问题的最优解
  • 重叠子问题(Overlapping subproblems)
    • 子问题重复多次
    • 可以缓存并重用子问题的解

多阶段决策过程的最优决策序列具有这样的性质:
不管初始状态和初始决策如何,对于前面决策所造成的某一状态而言,其后各阶段的决策序列必须构成最优策略

💡MDP满足最优子结构和重叠子问题:

  • 贝尔曼方程是递归的形式,把问题递归为求解子问题
  • 值函数相当于存储了子问题的解,可以重用

(3)MDP

🏆规划:

  • 用动态规划算法,在了解整个MDP的基础上,求解最优策略。即,在清楚模型结构(状态行为空间、转换矩阵、奖励等)的基础上,用规划来进行预测和控制
1)预测

⭐输入:给定一个MDP ⟨ S , A , P , R , γ ⟩ \langle{\mathcal{S}},\mathcal{A},\mathcal{P}, {\mathcal{R}},{\mathcal{\gamma}}\rangle S,A,P,R,γ和策略 π \pi π,或者给定一个MRP ⟨ S , P π , R π , γ ⟩ \langle{\mathcal{S}},\mathcal{P}^\pi, {\mathcal{R}}^\pi,{\mathcal{\gamma}}\rangle S,Pπ,Rπ,γ
⭐输出:基于当前策略的值函数 v π v_\pi vπ

2)控制

⭐输入:给定一个MDP ⟨ S , A , P , R , γ ⟩ \langle{\mathcal{S}},\mathcal{A},\mathcal{P}, {\mathcal{R}},{\mathcal{\gamma}}\rangle S,A,P,R,γ
⭐输出:最优价值函数 v ∗ v_* v和最优策略 π ∗ \pi_* π

(5)DP解决其他问题

(Richard Bellman在1957年出版作品《Dynamic Programming》)

  • 调度算法 Scheduling algorithms
  • 字符串算法 String algorithms (eg. sequence alignment)
  • 图算法 Graph algorithms(eg. shortest path algorithms)
  • 图形模型 Graphical models(eg. Viterbi algorithm)
  • 生物信息学 Bioinformatics(eg. lattice models)

2.策略评估

(1)迭代策略评估

❓问题:评估一个给定的策略,也就是解决“预测”问题

  • 给定一个策略 π \pi π,求对应的值函数 v π ( s ) v_\pi(s) vπ(s) q π ( s , a ) q_\pi(s,a) qπ(s,a)

✏解决:

  • 直接解: v π = ( 1 − γ P π ) − 1 R π v_\pi=(1-\gamma \mathcal{P^{\pi}})^{-1}\mathcal{R}^{\pi} vπ=(1γPπ)1Rπ,可以求得精确解,但是复杂度 O ( n 3 ) \mathcal{O}(n^3) O(n3)
  • 迭代解:应用Bellman期望方程,反向迭代✅ v π ( s ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_\pi(s)=\mathbb{E}[R_{t+1}+\gamma v_\pi(S_{t+1})\vert S_t=s] vπ(s)=E[Rt+1+γvπ(St+1)St=s] v 1 → v 2 → … v π v_1\rightarrow v_2\rightarrow \ldots v_\pi v1v2vπ

💡方法:

  • 同步反向迭代(synchronous backups)

    • 在每次迭代过程中,对于第 k + 1 k+1 k+1次迭代,所有的状态 s ∈ S s\in\mathcal{S} sS的价值用 v k ( s ′ ) v_k(s^\prime) vk(s)计算,并以 v k ( s ′ ) v_k(s^\prime) vk(s)更新该状态在第 k + 1 k+1 k+1次迭代中的价值 v k + 1 ( s ) v_{k+1}(s) vk+1(s) s ′ s^\prime s s s s的后继状态)
    • 解释
      • synchronous:同步,指每次更新都要更新完所有的状态
      • backup:备份,即 v k + 1 ( s ) v_{k+1}(s) vk+1(s)需要用到 v k ( s ′ ) v_k(s^\prime) vk(s),以 v k ( s ′ ) v_k(s^\prime) vk(s)更新 v k + 1 ( s ) v_{k+1}(s) vk+1(s)的过程称为备份,更新状态 s s s的值函数称为备份状态 s s s
    • 公式
      • 一次迭代内,状态 s s s的价值等于前次迭代里该状态的即时奖励➕所有可能的下一个状态 s ′ s^\prime s的价值与其概率的乘积
        在这里插入图片描述
  • 异步反向迭代(asynchronous backups)

    • 在第 k k k次迭代时使用当此迭代的状态价值来更新状态价值

(2)举例:方格世界

|340

  • 已知条件
    • 状态空间 S S S S 1 − S 14 S1-S14 S1S14为非终止状态, S T ST ST为终止状态。
    • 动作空间 A A A:东南西北四个方向。
    • 转移概率 P P P:动不了就停在原地,其余按照动作方向运动。
    • 即时奖励 R R R:进入非终止状态的即时奖励为-1,进入终止状态即时奖励为0。
    • 衰减系数 γ \gamma γ:1。
    • 当前策略 π \pi π:随机策略,各动作的概率均为25%
  • 问题
    • 评估在这个方格世界里给定的策略。即,求解该方格世界在给定策略下的状态价值函数,求每一个状态的价值。
  • 迭代法求解
  • |300|300
迭代次数 注释
k=0 根据当前的状态价值,无法得出比随机策略更好的策略
k=1 向上到边界,位置不变,且v(s’)仍用k=0时的价值
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ∈ S ′ P S S ′ a v π ( s ′ ) ) v_\pi(s)=\sum_{a\in\mathcal{A}}\pi(a\vert s)(\mathcal{R}_s^a+\gamma \sum_{s\in S^{\prime}}\mathcal{P}_{SS^{\prime}}^av_\pi(s^{\prime})) vπ(s)=aAπ(as)(Rsa+γsSPSSavπ(s))
(1,2)处的 − 1 = ↑ 0.25 ( − 1 + 1 ∗ ( 1 ∗ 0 ) ) + → 0.25 ( − 1 + 1 ∗ ( 1 ∗ 0 ) ) + ↓ 0.25 ( − 1 + 1 ∗ ( 1 ∗ 0 ) ) + ← 0.25 ( − 1 + 1 ∗ ( 1 ∗ 0 ) ) -1=\uparrow 0.25(-1+1*(1*0))+ \rightarrow 0.25(-1+1*(1*0))+ \downarrow 0.25(-1+1*(1*0))+\leftarrow 0.25(-1+1*(1*0)) 1=0.25(1+1(10))+0.25(1+1(10))+0.25(1+1(10))+0.25(1+1(10))
k=2 目前未得到最优策略
(1,2)处的 − 1.7 = ↑ 0.25 ( − 1 + 1 ∗ ( 1 ∗ − 1 ) ) + → 0.25 ( − 1 + 1 ∗ ( 1 ∗ − 1 ) ) + ↓ 0.25 ( − 1 + 1 ∗ ( 1 ∗ − 1 ) ) + ← 0.25 ( − 1 + 1 ∗ ( 1 ∗ 0 ) ) -1.7=\uparrow 0.25(-1+1*(1*-1))+ \rightarrow 0.25(-1+1*(1*-1))+ \downarrow 0.25(-1+1*(1*-1))+\leftarrow 0.25(-1+1*(1*0)) 1.7=0.25(1+1(11))+0.25(1+
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值