如何理解RL中on-policy与off-policy

2023-05-16

   on-policy 和off-policy是强化学习中出现最多的两个概念,也是最容易让初学者迷惑的概念之一。网上很多博客都是从是否使用当前policy和其它policy角度出发解释的,但是笔者认为这样解释诚然正确但是总给人感觉看过之后还是茫茫然。今天我们就从另外的角度探讨一下他们两者的区别与联系。

    On-policy methods attempt to evaluate or improve the policy that is used to make decisions, whereas  off-policy methods evaluate or improve a policy different from that used to generate the data.

   提到on-policy和off-policy就不得不提起另外一对方法:SARSA和Q-learning算法啊,前者是on-policy,后者是q-learning(想当初笔者参加夏令营面试,老师就问了我这样一个概念,当时就蒙蔽了后悔没好好辨析概念,似是而非是科研的大忌)。话不多说先上伪代码:


由伪代码可以看到两者的区别就在于更新Q(s,a)的时候(即evaluation current policy),s'的选择是max还是原先的策略(current policy)π(这里是ε-greedy)。看到这里是否感觉似曾相识,是的。这两者的对比不就是policy evaluation跟value iteration的对比吗?

由代码可知,policy evaluation只是在用DP更新迭代V(s),期间并没有改变behavior/current policy(一直是π(a|s)),更新迭代利用的数据一直是current π生成的,经过一定迭代次数v(s)会收敛。value iteration是policy evaluation+policy improvement,但是每一步都用max (区别current π即ε-greedy,所以此时 更新/evaluation 的π有别于生current π)去选择最大的更新V(s) ,因此后者计算开销要远小于前者,收敛速度也更快,更贪心。

   In short,on-policy属于policy evaluation 其寻找最优策略的过程基于所给的behavior policy(current policy),或者说其evaluation的是current π;而off-policy属于value iteration其寻找最优策略的过程更新的策略有别于生成数据的策略(如贪心策略)。

不知道笔者这样解释,是否会给你带来对这两个问题更深刻认识,欢迎讨论~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何理解RL中on-policy与off-policy 的相关文章

  • Vim 自动补全插件 YouCompleteMe 安装与配置

    本文系转载文章 xff0c 原文链接 http howiefh github io 2015 05 22 vim install youcompleteme plugin Contents 1 概述 2 安装 2 1 完全安装 2 2 Ub
  • Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

    转载请注明出处 xff1a http kyang cc 栈是什么 xff1f 栈有什么作用 xff1f 首先 xff0c 栈 stack 是一种串列形式的 数据结构 这种数据结构的特点是 后入先出 LIFO Last In First Ou
  • SD-WAN 到底是什么?

    转载请注明出处 xff1a http kyang cc In a nutshell SD WAN Virtualizes the networkEnables a secure overlaySimplifies services deli
  • SDN, SD-WAN, NFV, VNF: What Is All This?

    本文转载至 xff1a http www velocloud com sd wan blog sdn sd wan nfv vnf Inscrutable alphabet soup Even the fully expanded term
  • Top-down Design简介

    自顶向下 xff0c 逐步求精的方法 在英文中称作Top down Design xff0c 是一种计算机编程使用的算法思想 xff0c 顾名思义 xff0c 这种方法的思想就是对现在遇到的复杂或者抽象化的问题 xff0c 进行纵向深入分解
  • The Advantages of SD‐WAN over Traditional WAN

    转载请注明出处 xff1a http kyang cc An SD WAN has several advantages over a traditional WAN 重点内容 Simplified WAN Rapid deployment
  • 玩转 SSL 证书

    Introduction Openssl 是一个很牛逼的工具 xff0c 基本能搞定 PKI amp HTTPS 证书相关的事情 这篇博文归类了一堆常用的命令 xff0c 全部都是关于 key amp csr amp crt 本文分成两部分
  • linux简易书单

    1 Linux程序设计 xff08 第4版 xff09 万千读者推荐的Linux经典入门书 程序设计实战型图书 xff0c 以简单易懂 内容全面和示例丰富而受到广泛好评 如果你没有Linux基础 xff0c 可以先读这本 话说回来 xff0
  • 数字图像处理的技术方法和应用

    所谓数字图像处理 xff0c 是指将图像信号转换成数字信号并利用计算机对其进行处理的过程 20 世纪 50 年代 xff0c 电子计算机已经发展到一定水平 xff0c 人们开始利用计算机来处理图形和图像信息 xff0c 这便是早期的图像处理
  • hadoop安装完后打开网页http://localhost:50070/ 没反应

    在hadoop安装完后 xff0c 依次执行hadoop namenode format xff0c start dfs sh xff0c start yarn sh 之后 打开浏览器 输入 http localhost 50070 无反应
  • 关于CSDN代码段的背景颜色修改

    当我第一次去在CSDN中写代码时会发现自己的是用的 代码段 是如图下所示这种黑色的背景 那么自己想要去修改因该如何设置 1 鼠标悬停到头像上 2 点击内容管理标签 3 点击博客设置 4 在代码片样式中选择自己喜欢的样式就可以了
  • 利用VSPD、串口调试助手、Keil做串口调试

    下面详细介绍下如何用虚拟串口调试串口发送接收程序 需要用到三个软件 xff1a KEIL VSPD XP5 xff08 virtual serial ports driver xp5 1虚拟串口软件 xff09 串口调试助手 xff08 个
  • 基于机器学习的雷达信号分选和目标识别(论文阅读学习记录—持续记录)

    机器学习在雷达信号分选技术上的应用包括信号分离 确定脉冲参数 形成单部雷达脉冲序列 xff0c 然后针对雷达目标识别进行分类并划分威胁程度等 在一维距离像识别过程中包括去噪和雷达目标型号识别 该论文 xff08 学习内容 xff09 重点研
  • CMake Error: The following variables...set to NOTFOUND

    今天在编译开源OpenVslam时 xff0c 在最后阶段出现如下问题 说是DBOW2的库招不到 查看了dbow2都是正常安装的 xff0c 但是就是出问题 然后我就找到了对应的cmakelist txt文件 xff0c 将LIBS地址打印
  • PCL库调试过程中,显示当前不会命中断点,还没有为该文档加载任何符合

    最近在读PCL库中NDT源码 xff0c 搞了一个vs2019的工程将NDT部分跑了起来 xff0c 想通过打断点的方式进入源码中一步步走读代码 但是有些部分的源码可以通过断点的方式进 hpp文件 xff0c 有些确不能 比如kdtree
  • 相机矩阵(camera matrix)

    本博文主要介绍camera的参数矩阵 目录 相机小孔模型 相机矩阵 xff08 内参 xff09 相机矩阵 xff08 Intrinsic matrix xff09 图像坐标系 相机的外参矩阵 xff08 extrinsic matrix
  • Pytorch模型转ONNX

    参考https blog csdn net qq 37546267 article details 106767640 利用下面代码将pth模型转换为onnx import torch from torch autograd import
  • File already exists in database google/protobuf/descriptor.proto

    以加载静态库的方式加载protobuf库时出现如下问题 xff1a libprotobuf ERROR google protobuf descriptor database cc 57 File already exists in dat
  • assign()测试

    assign 应该属于赋值 std deque lt int gt di 1 2 3 4 5 std cout lt lt 34 at first 34 lt lt std endl std cout lt lt 34 di 61 34 f
  • 解析力评测(1) MTF和SFR

    成像系统的解析力一直是摄像头最关键的指标之一 所有用户拿到一张照片的时候首先看到的是照片清楚不清楚 xff0c 图像的清楚说得就是解析力 但是如何评价一个成像系统的解析力也是大家一直在探讨的问题 目前主流的办法主要有三种TV line检测

随机推荐