zoukankan      html  css  js  c++  java
  • 强化学习(David Silver)8:集成学习和计划

    1、介绍

    这课中的规划就是预测

    1.1、Model-Based的两层含义

    agent学习环境从一个状态向另一个状态的转移

    agent学习状态转移收益

    ps: model的学习主体是agent

    1.2、利弊

    利: 通过监督学习高效学习; 解释model的不确定原因

    弊: 学习模型+构造值函数, 叠加两部分误差

    1.3、形式

    MDP(S, A, P, R) 中S, A已知;P, R未知, model预估P, R

    2、基于模型的强化学习

    2.1、Table Lookup Model

    直接通过统计历史, 计算P, R

    基于model的planning: 在有了Model以后, 使用值迭代, 策略迭代求解问题

    2.2、规划

    在已知模型的情况下, 求解MDP, 可以使用策略迭代, 值迭代, 树搜索等方法

    2.3、Sample-based Learning

    学习Moddel; 从Model中采样; 对Model使用Model-Free的学习

    模型的准确性,决定了RL的上限; 模型不准确时, RL会学到次优的策略

    模型不准确时, 考虑使用Model-free方法

    3、Learing/planning集成框架

    3.1、learn和plan含义

    Model-free是从真实样本从Learn一个值/策略函数

    Model-free是从模拟样本从plan一个值/策略函数

    3.2、Dyna结构

    1) 从真实样本中学习Model

    2) 从真实/模拟样本中learn+plan 值/策略函数

    3.3、Dyna-Q算法

    1) 初始化Q(S,A) 和Model(S, A)

    2) 循环

        a) 获取当前状态S

        b) 厄普西隆贪心生成A

        c) Q-learing学习Q(S, A)

        d) 训练Model(S, A)

        e) 重复N次(Model-Based部分)

             选择S, A??? 如何选择??

             通过Model(S,A)计算R, S'

             Update Q(S, A)

    PS: 一次Dyna-Q迭代中, 有两次使用到Model-free的计算

    4、基于模拟的搜索

    4.1、模拟搜索

    1) 前向搜索: 关注当前状态, 而非全空间搜索, 希望在当前状态中学习得足够好; 无需求解整个MDP, 只需要求解当前状态相关的分支

    2) 模拟搜索: 是一种前向搜索(PPT中说前向搜索使用模拟搜索, 讲课时说模拟搜索是前向搜索, 意思差不多)

        从模型中, 模拟一个当前状态的后续片段; 然后用Model-free的方法去学习这个片段

    4.2、MC搜索

    1) 简单MC搜索(假定已知模型和一个策略)

        模型产生行为片段; MC评估Q(s, a); a = maxQ(s, a'); 这里一步只从一个state出发, 选择出一个a

    2) MCTS(蒙特卡洛树搜索):

    和SMSC差别在于, MCTS计算时是计算了所有的K的片段中出现的所有s, a的均值;

    而不只是计算重初始点出发的s的均值(这也就是Silver说的活的策略的意思, 每个片段中都在学习)

    3) MCTS模拟

        有存储的MCTS生成A,没有的随机生成
        使用MC评估; 尔普斯隆贪心优化(或者bandit算法的其它分支优化)

    4) 优势

        动态评估状态; 而不像DP一样,在整个空间评估

    4.3、TD搜索

    4.4、Dyna-2

    使用ForwardSearch的Dyna

    长期记忆从Real Exprience从获取, 使用TD计算

    短期记忆从模拟样本从获取, 使用TD search计算

    Question:

    1、Model-Based方法是基于监督学习的? 监督学习在哪里体现的呢? 

    2、为什么Model-Based采样, 不直接在历史数据中采样?优势是什么?

    3、大家都知道AlphaGo使用的是MCTS,但是Silver说Dyna比MCTS厉害???Why?? 

    如果发现文中有问题,敬请联系作者批评指正,真诚欢迎您的指教,谢谢!

    微信: legelsr0808

    邮箱: legelsr0808@163.com

  • 相关阅读:
    结对编程
    四则运算
    认清自我,创造未来!!!
    浅谈GIT
    典型用户及用例故事
    结对编程 四则运算
    四则运算
    《未来的程序员》
    java项目命名规范
    四则运算测试
  • 原文地址:https://www.cnblogs.com/ai1024/p/7712636.html
Copyright © 2011-2022 走看看