type
status
password
date
slug
summary
category
URL
tags
icon
无论是在线策略(on-policy)算法还是离线策略(off-policy)算法,都有一个共同点:智能体在训练过程中可以不断和环境交互,得到新的反馈数据。二者的区别主要在于在线策略算法会直接使用这些反馈数据,而离线策略算法会先将数据存入经验回放池中,需要时再采样。离线强化学习(offline reinforcement learning)的目标是,在智能体不和环境交互的情况下,仅从已经收集好的确定的数据集中,通过强化学习算法得到比较好的策略。

重要挑战
外延误差
如果策略产生的状态-动作对,经过环境反馈后得到的,不在训练集中,那么就会产生处理分布外(out-of-distribution,OOD)问题。既外延误差
解决方案
离线强化学习的主要方法在于设计训练中的限制,从而避免分布外问题,可以大致分为无模型的方法和基于模型的方法。

为了减少外推误差,当前的策略需要做到只访问与数据集中相似的数据。满足这一要求的策略称为批量限制策略(batch-constrained policy)。具体来说,这样的策略在选择动作时有 3 个目标:
- 最小化选择的动作与数据集中数据的距离;
- 采取动作后能到达与离线数据集中状态相似的状态;
- 最大化函数。
批量限制 Q-learning 算法——BCQ
把策略能选择的动作限制在数据集内。
离散动作
仅仅使用在数据集支撑上的进行计算。
连续动作
BCQ 采用了一种巧妙的方法:训练一个生成模型。对于数据集和其中的状态,生成模型能给出与中数据接近的一系列动作用于网络的训练。更进一步,为了增加生成动作的多样性,减少生成次数,BCQ 还引入了扰动模型。输入时,模型给出一个绝对值最大为的微扰并附加在动作上。这两个模型综合起来相当于给出了一个批量限制策略
训练流程
- 随机初始化网络、扰动网络、生成网络
- 用初始化目标网络,用初始化目标扰动网络
- for 训练次数 do
- 从数据集中采样一定数量的
- 编码器生成均值和标准差
- 解码器生成动作,其中
- 更新生成模型:
- 从生成模型中采样个动作:
- 对每个动作施加扰动:
- 计算网络的目标值:
- 更新网络:
- 更新扰动网络:
- 更新目标网络:
- 更新目标扰动网络:
- end for
生成网络负责,每次更新会最小化选择的动作与数据集中的真实动作之间的距离小。
Q网络用于更新价值函数
扰动网络用于最大化Q值,每次更新会使扰动向Q指最大的动作靠近
保守 Q-learning 算法——CQL
离线强化学习面对的巨大挑战是如何减少外推误差。实验证明,外推误差主要会导致在远离数据集的点上函数的过高估计,甚至常常出现值向上发散的情况。因此,如果减少策略生成的Q值期望,并增加数据中真实动作的Q值期望,从而有效降低分布偏移带来的不良影响,这就是保守 Q-learning(conservative Q-learning,CQL)算法的基本思想。
其中