zoukankan      html  css  js  c++  java
  • 总结:比较SARSA、SARSA(lambda)、Q-learning、on policy and off policy

    前几天面试的时候被问到RL一些基础算法的区别,回来抽空做了一些整理方便加深理解。

    On policy与off policy

    为了解决强化学习中探索与利用的平衡问题,可以采用两个策略训练模型,一个策略为行为策略,用于保持探索性,提供多样化的数据,不断优化另一个策略(目标策略)。

    on policy的目标策略与行为策略是一个策略,在优化时,两个策略同时被优化。而off policy的目标策略与行为策略不同,可以采用重要性采样的方法实现这一目标,一个具体的例子是蒙特卡洛on policy算法与蒙特卡洛off polic算法。

     

    SARSA算法流程

    本质是时序差分算法,它是on policy的

    SARSA(lambda)即为TD(lambda)算法(eligibility trace),即在更新当前步时,也会同时对前面的步骤进行更新,具体算法如下

    和Sarsa相比,Sarsa(lambda)算法有如下优势:

     Sarsa虽然会边走边更新,但是在没有获得奶酪之前,当前步的Q值是没有任何变化的,直到获取奶酪后,才会对获取奶酪的前一步更新,而之前为了获取奶酪所走的所有步都被认为和获取奶酪没关系。Sarsa(lambda)则会对获取奶酪所走的步都进行更新,离奶酪越近的步越重要,越远的则越不重要(由参数lambda控制衰减幅度)。因此,Sarsa(lambda) 能够更加快速有效的学到最优的policy。

    在算法前几回合,老鼠由于没有头绪, 可能在原地打转了很久,从而形成一些重复的环路,而这些环路对于算法的学习没有太大必要。Sarsa(lambda)则可解决该问题,具体做法是:在E(s,a)←E(s,a)+1这一步之前,可先令E(s)=0,即把状态s对应的行置为0,这样就只保留了最近一次到达状态s时所做的action。

     

    Q-learning是sarsa的off-policy版本,对于Q-Learning,我们会使用ϵ−贪婪法来选择新的动作,这部分和SARSA完全相同。但是对于价值函数的更新,在选取下一步最优动作时,Q-Learning使用的是MAX贪婪法(用目标策略选取动作进行评估),而不是SARSA的ϵ−贪婪法(用行为策略选取动作进行评估)。这一点就是SARSA和Q-Learning本质的区别。Q-learning具体算法如下:

     

  • 相关阅读:
    [译]ASP.NET Core 2.0 依赖注入
    FineUIPro v4.0.0 发布了,全新 CSS3 动画惊艳登场!
    [译]ASP.NET Core 2.0 带初始参数的中间件
    [译]ASP.NET Core 2.0 中间件
    【原创】三招搞死你的IE11,可重现代码下载(IE Crash keyframes iframe)!
    立足中国,走向世界(Made in China, Go to World)
    【JS小技巧】JavaScript 函数用作对象的隐藏问题(F.ui.name)
    FineUIMvc v1.4.0 发布了(ASP.NET MVC控件库)!
    公安系统信息化业务概要系统设计
    2018年软件开发状态报告
  • 原文地址:https://www.cnblogs.com/statruidong/p/10856137.html
Copyright © 2011-2022 走看看