zoukankan      html  css  js  c++  java
  • 强化学习-3:动态规划 planning by dynamic programming(DP)

    概述

    动态规划分为两步,Prediction、Control

    • (Prediction)Value:是对策略(pi)的评价
    • (Control)Policy (pi):是对Value的选择
      # 例
      问题:每走一步,r = -1,走到出口可以停止
      在随机策略下,迭代k,最使v收敛
      得到(v^{pi}(s)) 然后最简单的策略,greedy,往v值高的地方走。

    Solution

    Policy iteration:以greedy为例

    Find optim policy:

    [
    v_{pi}(s)=max _{a in mathcal{A}} q_{pi}(s, a)
    ]
    主动改变策略,策略改变之后进行评估
    根据q值,从集合A中选a,更新策略(pi),使新q大于之前一步
    [
    q_{pi}left(s, pi^{prime}(s) ight)=max _{a in mathcal{A}} q_{pi}(s, a) geq q_{pi}(s, pi(s))=v_{pi}(s)
    ]
    所以

    [
    egin{aligned}
    v_{pi}(s) & leq q_{pi}left(s, pi^{prime}(s) ight)=mathbb{E}_{pi^{prime}}left[R_{t+1}+gamma v_{pi}left(S_{t+1} ight) mid S_{t}=s ight] \
    & leq mathbb{E}_{pi^{prime}}left[R_{t+1}+gamma q_{pi}left(S_{t+1}, pi^{prime}left(S_{t+1} ight) ight) mid S_{t}=s ight] \
    & leq mathbb{E}_{pi^{prime}}left[R_{t+1}+gamma R_{t+2}+gamma^{2} q_{pi}left(S_{t+2}, pi^{prime}left(S_{t+2} ight) ight) mid S_{t}=s ight] \
    & leq mathbb{E}_{pi^{prime}}left[R_{t+1}+gamma R_{t+2}+ldots mid S_{t}=s ight]=v_{pi^{prime}}(s)
    end{aligned}
    ]
    迭代一次,对应一个时刻

    Value iteration:值迭代

    Find optim value:

    [
    v_{*}(s)=max _{a} mathcal{R}_{s}^{a}+gamma sum_{s^{prime} in mathcal{S}} mathcal{P}_{s s^{prime}}^{a} v_{*}left(s^{prime} ight)
    ]

    根据值函数,选择策略

    值迭代和policy迭代的区别

    • ration每次迭代v(s)都会变大;而value iteration则不是。

    • 在迭代过程中,因为policy iteration中是policy->value->policy,所以每个value function对应的policy都是有意义的,但是在value iteration迭代中,value function可能是没有意义的(不完整的)

    异步更新,提高效率

    三种值迭代方法

    常规的值迭代,要遍历过所有s之后,才进行一次迭代,因此存在old、new两个v(s)

    • in-place DP:用最新的值
      只保存一个v(s),遍历过用新值替换。收敛更快,更新顺序影响收敛性
    • Prioritised sweeping:state的影响力
      比较贝尔曼误差绝对值,大的更新,小的忽略
    • Real-time DP:有用程度
      遍历过的s才更新,没有涉及的不管
  • 相关阅读:
    【光学相机】关于网络通信的方法及函数
    InvokeRequired与Invoke
    线程基本概念
    线程同步与线程异步
    AutoResetEvent和ManualResetEvent
    C#图像亮度调式与伪彩色图的处理
    Github文件高速下载方法
    JDK11以上版本没有JRE的解决方法
    mysql 随机函数生成某个范围内的整数
    mysql主键id重置
  • 原文地址:https://www.cnblogs.com/tolshao/p/qiang-hua-xue-xi3-dong-tai-gui-hua-planning-by-dyn.html
Copyright © 2011-2022 走看看