• 强化学习7日打卡营-世界冠军带你从零实践--基于表格型方法的 RL


    强化学习 Reinforce Learning 

    强化学习区别于机器学习的一点是,强化学习是来做决策的。根据环境的反馈,做出决策。 外界环境情况复杂,和环境的交互主要有 环境的状态 stat、智能体的动作、和对动作带来收益的评价 reward。

    这里面涉及2个对象,agent 和 env。 agent 根据环境状态 做出动作即决策,环境env根据 agent 当前的状态和动作,返回下一个状态。 循环往复,直到环境给出结束的状态。

    在算法实践里,环境 env 是人为设计好的,这个需要精心的构造,来反映客观世界的环境。学习者不用关心这部分,有现成的一些环境供实验。

    这里介绍的表格型算法,主要解决的是有限状态和有限动作的情况。这方面典型算法 SARSA 和 QLearning 。

    Sarsa  (state-action-reward-state'-action')
    Sarsa 是 On Policy 算法,学习特定 stat 、action 下的价值 Q,最终建立一个 Q 表格,stat 行、action 列。
    根据与环境交互得到的 reward 来更新 Q 表格。
     Q 表格更新公式: Q(St,At) = Q(St,At) + α * [ Rt+1 +γ * Q(St+1,At+1) - Q(S, At)]
    Rt+1 来自与环境对(St,At)得奖励。

    SARSA 在行动中学习。 只有1个 Policy ,使用了两次 greedy-epsilon 选出 Q(St,At) 和 Q(St+1,At+1)。

     
    Q Learninng
    Q learning 是 Off Policy 算法

    更新 Q 表格得公式:
    Q(St,At) = Q(St,At) + α * [ Rt+1 +γ * max ( Q(St+1, : ) ) - Q(S, At)] 
     
    SARSA 和 Q learning  差别仅在 下一步的  Q(St+1, At+1) 计算这里不一样。

    关于算法主要有2点:
    1. Q 表格更新 看似是需要用到下一个动作和状态的奖励,似乎是个迭代的过程,如何计算?
    当前的价值 要由 当前(St,At)和(St+1,At+1)的价值来确定,这样迭代下去不就是追溯到结束才能算出第一个动作的价值。其实这里做了简化处理,初始化 Q 表格后,确定性的动作和状态知道后就知道价值了,所以不用考虑那么长远,即 next_obs,reward = env.step(action) ,再根据 next_obs, 根据策略选择(有一定几率随机)next_action, 然后查 next_q 。
    2. 什么是 on Policy 和 off Policy ?
    知乎@三笠 On Policy 与 off Policy 的区别在于:更新价值所使用的方法沿着既定的策略(on Policy)抑或是新策略(off Policy) 。
    Sarsa 当前的Q是是基于既定策略, next_Q选择也是基于按既定策略多走一步得到的 Q。(这里有一定概率不是当前最优的。)
    而Q learning, 当前动作的 Q 既定策略的(有一定随机概率), 但 next_Q 直接选 max(Q(next_obs,:)) 最优的, 不选随机的项。
  • 相关阅读:
    嵌入式GUI FTK介绍(11)交叉编译
    3G手机 。Android 。Broncho
    PXA300/310的2D图形加速示例代码
    在终端下修改Android手机(Broncho A1)的系统设置
    FTK google group开通,欢迎加入交流。
    使用WebDeployment Project改善VS2005发布网站问题
    IIS 伪静态设置
    使用jQuery简化Ajax开发——Ajax开发入门[令狐葱翻译版part1]
    web.config文件中的特殊字符处理
    网上找的asp.net伪静态教程,大晚上补补课
  • 原文地址:https://www.cnblogs.com/parkin/p/13189067.html
Copyright © 2020-2023  润新知