前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >强化学习-4:无模型预测 model-free prediction

强化学习-4:无模型预测 model-free prediction

作者头像
列夫托尔斯昊
发布2020-08-25 17:17:45
5330
发布2020-08-25 17:17:45
举报
文章被收录于专栏:探物及理探物及理

对于Env来说,属于MP,但是不是参数已知的MDP 比如元组中a、s、P的关系不确定 or 未知 Prediction -> Control Evaluation -> Optimization

蒙特卡洛法 Monte-Carlo learning

基于大数定律: \(V(s) -> V_\pi(s)\) as \(N(s)->\infty\)

均值累计计算: \[ \begin{aligned} \mu_{k} &=\frac{1}{k} \sum_{j=1}^{k} x_{j} \\ &=\frac{1}{k}\left(x_{k}+\sum_{j=1}^{k-1} x_{j}\right) \\ &=\frac{1}{k}\left(x_{k}+(k-1) \mu_{k-1}\right) \\ &=\mu_{k-1}+\frac{1}{k}\left(x_{k}-\mu_{k-1}\right) \end{aligned} \] 类似于PID的P 增益 改写计算方式,用\(\alpha\)代替\(\frac{1}{N(s_t)}\) \(V(S_t) \leftarrow V(S_t)+\alpha(G_t - V(S_t))\)

可以看到这里的\(\alpha\)和机器学习里面用的学习率是一个符号

差分法Temporal-Difference learning

  • 直接从episodes 的经验学习
  • model-free:不知道MDP的Transition转移和Reward回报
  • Bootstrapping自举学习,从部分例子学习

Goal:学习\(v_{\pi}\) 的值,under policy \(\pi\)

TD(0)方法:

\[ V\left(S_{t}\right) \leftarrow V\left(S_{t}\right)+\alpha\left(R_{t+1}+\gamma V\left(S_{t+1}\right)-V\left(S_{t}\right)\right) \] TD target 是

与MC方法区别

项目

MC

TD

不完整片段学习能力

在线学习(every step)能力

update until the end

loop环境学习能力

无,必须terminating

收敛性好

初值敏感

偏差bias

zero

some

方差variance

high

low

对于最优估计

  • MC方法:最小化均方根MSE \[ \sum_{k=1}^{K} \sum_{t=1}^{T_{k}}\left(G_{t}^{k}-V\left(s_{t}^{k}\right)\right)^{2} \]
  • TD(0)方法:最大似然估计 max likelihood Markov model Solution to the MDP \(\langle\mathcal{S}, \mathcal{A}, \hat{\mathcal{P}}, \hat{\mathcal{R}}, \gamma\rangle\) that best fits the data \[ \hat{\mathcal{P}}_{s, s^{\prime}}^{a} =\frac{1}{N(s, a)} \sum_{k=1}^{K} \sum_{t=1}^{T_{k}} 1\left(s_{t}^{k}, a_{t}^{k}, s_{t+1}^{k}=s, a, s^{\prime}\right) \] \[ \hat{\mathcal{R}}_{s}^{a} =\frac{1}{N(s, a)} \sum_{k=1}^{K} \sum_{t=1}^{T_{k}} 1\left(s_{t}^{k}, a_{t}^{k}=s, a\right) r_{t}^{k} \]

总结:DP、MC、TD

  • Bootstrapping自举:利用自己估计值update
  • Sampling采样 :更新样本期望

项目

动态规划DP

蒙特卡洛MC

差分TD

自举Bootstrapping

1

0

1

采样Sampling

0

1

1

TD用了Markov特性,因此在MP过程高效 MC相反,统计规律,非MP过程更高效

TD(\(\lambda\))法

扩展TD(0),视野扩展到N个step,N=全过程时,变为MC

TD(N)推导

对于某个问题来说,没有那个N值是最优的 因此,用几何加权的方法来对视野做平均

Forward

\(\lambda\):对视野的平均 for iteration: t -> t+1 update value function

引入权重概念,前面的重要,指数衰减

Backward

Credit assignment: 引入 Eligibility Traces:关于状态s的权重 当s重复出现,E值升高,不出现,指数下降 \(E_{0}(s)=0\) \(E_{t}(s)=\gamma \lambda E_{t-1}(s)+\mathbf{1}\left(S_{t}=s\right)\)

Backward步骤:

  • 对每个状态s 创建 迹值
  • 对每个状态s 更新 V(s)
  • 与 TD-error(\(\delta_t\)) 和 Eligibility trace \(E_t(s)\) 成比例

\[ \begin{aligned} \delta_{t} &=R_{t+1}+\gamma V\left(S_{t+1}\right)-V\left(S_{t}\right) \\ V(s) & \leftarrow V(s)+\alpha \delta_{t} E_{t}(s) \end{aligned} \]

\[ \sum_{t=1}^{T} \alpha \delta_{t} E_{t}(s)=\sum_{t=1}^{T} \alpha\left(G_{t}^{\lambda}-V\left(S_{t}\right)\right) 1\left(S_{t}=s\right) \] 对于\(\lambda \in [0,1]\),满足TD error = \(\lambda-error\)

对于online 的updates来说,TD(\(\lambda\))前后向视图稍有不同,引入Exact online TD(\(\lambda\))

总结

TD(0) 向后看一步 TD(\(\lambda\)) 视野距离按\(\lambda\)指数衰减,叠加 TD(1) 视野不按指数衰减 对于离线更新来说: TD(0) = TD(\(\lambda\)) = TD(1)

对于在线更新,引入Exact online TD(\(\lambda\))

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 蒙特卡洛法 Monte-Carlo learning
  • 差分法Temporal-Difference learning
    • TD(0)方法:
      • 与MC方法区别
        • 对于最优估计
      • 总结:DP、MC、TD
      • TD(\(\lambda\))法
        • Forward
          • Backward
            • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档