首页 > 其他分享 >offline RL | ABM:从 offline dataset 的好 transition 提取 prior policy

offline RL | ABM:从 offline dataset 的好 transition 提取 prior policy

时间:2024-01-21 11:33:52浏览次数:27  
标签:advantage transition dataset RL policy offline pi


  • ICLR 2020,6 6 6。
  • 材料:
  • 总结:
    • 是 2020 年的 offline RL 算法。
    • 算法框架:Policy Iteration,即先搞出一个 policy,再算 policy 的 Q function,再 a = argmax Q(s,a) 搞出新 policy,再算 policy 的 Q function,…
      • ① 在 policy evaluation 时,使用 offline dataset 里的 transition 来更新。
      • ② 在 policy improvement 时,maximize Q(s, \(\pi\)(s)) ,同时约束 \(\pi\) 与一个 prior policy 的 KL 散度,这是为了不要与 in-distribution 的 state-action 离太远,离得越远,Q 的 over-estimate 越严重。
    • 核心 idea 是 prior policy 如何得到。在先前的 BCQ 和 BEAR-QL 中,直接去学 offline dataset 的总的 policy,maximize Σ_{offline dataset} log(a|s)。
    • 这篇文章的核心 trick 叫做 ABM(Advantage-weighted Behavior Model)。
      • 在从 offline dataset 里提取 policy 的过程中,对 log(a|s) 进行一个基于 advantage 的加权。对 (s0, a0) 的 advantage = Q - V = Return(s0,a0,s1,...,sn,V(sn)) - V(s0) 。
      • 若 advantage ≥ 0,则 加权 = 1,否则加权 = 0。即,只在具有正 advantage 的环境转变的“好”数据上拟合模型。(这个加权函数还尝试了 exp 之类,但效果差异不大)。
  • 思考:
    • advantage weighted 的思想,感觉好像 performance 非常好…
    • offline RL 有两种主要思想,一种是 Q update 时拉低 OOD 的 Q value(CQL PBRL),或在 policy update 添加不要离 behavior policy 太远的正则项(TD3+BC),另一种是对 offline dataset 的 policy 进行 advantage-weighted(AWR)。IQL 是一股清流,用 (s,a,r,s',a') 来做 Q update。

0 abstract

  • background:
    • off-policy RL 适用于只有固定数据集(batch)且无法获得新 experience 的 setting,对机器人控制等现实世界的问题很有吸引力。然而在实践中,标准的 off-policy RL 在 continuous control 的 batch 设置中失败。
  • method:
    • 在本文中,我们提出了简单解决方案:承认使用任意 behavior policy 生成的数据,并使用学习的先验(优势加权行为模型 (ABM))将 RL 策略偏向于先前已执行并可能在新任务上取得成功的操作。我们的方法可以看作是最近 batch RL(offline RL)工作的扩展,可以从冲突的数据源中稳定地学习。
  • results:
    • 在各种 RL 任务中,performance 比起强 baseline 都有所改进,包括在标准的 continuous control benchmark 以及 simulation 和真机的 multi-task learning。

1 intro

  • Stay close to the relevant data:① 学习一个先验,哪些候选策略可能得到数据支持(同时确保先验 focus on 相关轨迹),② 进行 policy improvement,stay close to the learned prior policy。
  • 提出了一种 policy iteration 算法,学习先验,建立 behavior data 的优势加权模型,使 RL 策略偏向于以前经历过的、并且在当前任务中也很可能成功的 action。
  • 我们还发现,利用适当的先验足以稳定学习;证明当使用 policy iteration 算法时, policy evaluation 步骤是 implicitly stabilized 的 —— 只要忠实评估 TD-error 式 update 的值函数。这导致了比以前的工作更简单的算法(Fujimoto 等人,2018;Kumar 等人,2019 年)。
  • advantage-weighted behavior model(ABM)。

3 method

A learned prior for offline off-policy RL from imperfect data - 从不完美数据中学习 offline RL 的先验。

使用策略迭代(policy iteration)框架,在 policy improvement 步骤中有约束(参见 appendix A 的 Algorithm 1)。

  • 首先,从迭代 i 中的给定策略 \(\pi_i\) 开始,去找一个近似的 action-value 函数 \(Q^{\pi_i}(s,a)\) 。
  • 然后,使用 \(\hat Q^{\pi_i}\) 来优化 \(\pi_{i+1}\) ,同时约束 确保接近 empirical state-action distribution。

notation:D_μ 是 offline dataset,θ 是 policy 的参数,φ 是 Q function 的参数。

3.1 Policy Evaluation

  • 同时学 value function 和 Q function。
  • \(\arg\min \big[ r(s_t,a_t) + γ\hat V(s_{t+1})-\hat Q_{new}(s_t,a_t)\big]^2\) ,其中 V hat 为前一个 Q hat (s, \(\pi\)(s)) 。(公式 1)

3.2 Prior Learning and Policy Improvement

  • 把 policy learning 当作约束优化问题:maximize Q hat(s, \(\pi\)(s)),同时约束 policy 与 prior policy 的 KL 散度<ε。(公式 2)
  • 考虑两种算法来得到 prior policy:
    • 类似于 BCQ 和 BEAR-QL 的方法:直接 argmax Σ log(a | s) ,这里面的 s a 来自于 offline dataset。(公式 3)
    • weighted advantage 方法:argmax Σ log(a | s) f(Return - V hat) 。(公式 4)
      • Return 用 \(Σγ^{N-i} r(s,a) + γ^{N-t}\hat V\) 来算,f 是一个递增的非负函数。
      • 这里采用 f(x) = 1 if x≥0 else 0。还尝试了 f(x) = exp x 之类,但实验结果差不多。
      • 只在“好”数据上拟合模型(即具有正 advantage 的环境转变, 其中 advantage 是使用当前策略估计的)
  • (如果 offline dataset 质量足够高,可以直接在 dataset 里学 \(\pi_{abm}\) 和 Q abm ,作为输出策略:用 \(\pi_{abm}\) 计算 advantage,然后用 advantage-weight 计算新的 Q abm)
  • 如何优化公式 2 | EM-style optimization:(两步方法)
    • 首先,公式 2 的 \(\arg\max\pi\) 最优解可以写为, \(\hat \pi(a|s)\propto \pi_{prior}(a|s)\exp(\hat Q^{\pi_i}\big(s,a\big)/\eta)\) ,其中 η 可用凸优化确定。没有听懂,非常神秘……
    • 然后,去用 \(\pi_{prior}\) 来查询 \(\hat Q^{\pi_i}\) 的值,等价于 maximize 一个 weighted log likelihood,用梯度下降 + 约束 KL 散度(trust-region constraint)来实现。(没懂)
  • 如何优化公式 2 | Stochastic value gradient optimization:
    • 把 KL 散度的约束用 Lagrange 松弛塞到目标函数里。
  • 算法流程:
image-20240121103416693

5 experiment

实验环境:DeepMind control suite,(multi-task setting)Mujoco 的 Sawyer robot arm(以及对应的真机)。



标签:advantage,transition,dataset,RL,policy,offline,pi
From: https://www.cnblogs.com/moonout/p/17977655

相关文章

  • rke2 offline install kubernetes v1.26.12
    文章目录1.准备2.安装ansible3.基础配置3.1配置hosts3.2安装软件包3.3内核参数3.4连接数限制3.5关闭swap、selinux、防火墙3.6时间同步4.RKE2安装4.1下载安装4.2配置其他管理节点4.3新增worker节点1.准备7台主机主机名ipcpu内存diskos角色user密码kube-mast......
  • 想给组件加上进入离开动画?试试 react-transition-group
    列表是很常见的场景:如果我们想给它加上进入离开的动画效果:怎么做呢?一般我们会用react-transition-group来做。在npm官网可以看到,这个包每周有750w下载量,还是非常流行的:那这个包怎么用呢?我们写下代码试一下:npxcreate-react-apptransition-group-test用create-react-app创......
  • MySQL修改安全策略时报错:ERROR 1193 (HY000): Unknown system variable ‘validate_pa
    我使用的版本是MySQL5.73,环境是LinuxCentOS7,其他版本不知道是否可行,望谅解。当我们想设置简单的密码的时候,看了别人发的如何修改安全策略的代码,如下:setglobalvalidate_password_policy=0;setglobalvalidate_password_length=1;但是当我们使用的时候,却报了这样一个......
  • 4.k8s-配置网络策略 NetworkPolicy
    一、基本了解官方文档:https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/基本了解:1.网络策略通过网络插件来实现,创建一个NetworkPolicy资源对象而没有控制器来使它生效的话,是没有任何作用的,而我们搭建K8s集群时安装的calico网络组件就支持网......
  • Proximal Policy Optimization (PPO): A Robust and Efficient RL Algorithm
    1.背景介绍ProximalPolicyOptimization(PPO)是一种强化学习(ReinforcementLearning,RL)算法,它在许多实际应用中表现出色,具有较强的鲁棒性和效率。在这篇文章中,我们将详细介绍PPO的核心概念、算法原理、具体实现以及潜在的未来趋势和挑战。1.1强化学习简介强化学习是一种......
  • ACL/IP-PREFIX +ROUTE-POLICY
    1、实验拓扑图2、实验目的测试“全允许则允许,有拒绝则拒绝”3、实验步骤3.1访问控制列表aclnumber2000rule5permitsource3.3.3.30.0.0.03.2配置路由策略route-policyp1permitnode10if-matchacl20003.3调用路由策略ospf100//进入进程模式import-routeisis200ty......
  • Traffic-policy
    1、实验拓扑图2、实验目标策略路由可以设置如下参数:限速(car SpecifyCAR(CommittedAccessRate)feature)、下一跳路由(redirect Redirectpackets)、优先级、队列(queue  Specifyqueuefeature)等待,可以根据需求来规划和配置网络带宽资源3、实验配置3.1定义感应兴趣流(只能使......
  • 内置组件-Transition
    介绍<Transition>是一个内置组件,这意味着它在任意别的组件中都可以被使用,无需注册。它可以将进入和离开动画应用到通过默认插槽传递给它的元素或组件上。进入或离开可以由以下的条件之一触发:由v-if所触发的切换由v-show所触发的切换由特殊元素切换的动态组件改变特殊......
  • 内置组件-TransitionGroup
    介绍<TransitionGroup>是一个内置组件,用于对v-for列表中的元素或组件的插入、移除和顺序改变添加动画效果。和<Transition>的区别​<TransitionGroup>支持和<Transition>基本相同的props、CSS过渡class和JavaScript钩子监听器,但有以下几点区别:默认情况下,它不......
  • CSS transition属性
    在给定的transition属性中,有三个参数:过渡属性、过渡时间和过渡速度曲线。过渡属性:all表示对元素的所有属性进行过渡动画,包括宽度、高度、颜色、位置等。你也可以指定单个属性进行过渡,例如opacity,表示只对透明度进行过渡动画。过渡时间:0.3s表示过渡的持续时间,单位为秒。这......