隐式Q学习 (IQL)#

1. 引言#

IQL(Implicit Q-Learning)是一种面向离线强化学习(Offline RL)的经典算法。 它在不需要对未见动作进行显式策略外推的前提下,能够从静态数据集中学习高质量策略。

IQL 的核心思想是将价值学习和策略学习解耦:

  • Value (状态价值函数): 使用 expectile 回归学习偏向高回报区域的状态价值。

  • Critic (Q值函数): 通过 Bellman 目标拟合动作价值。

  • Actor (策略模型): 通过优势加权行为克隆(Advantage-Weighted BC)更新策略。

这种设计避免了直接对 OOD(out-of-distribution)动作进行过度估计,在 D4RL 等离线基准上表现稳定。

更多细节请参考原始论文 IQL.

2. 目标函数#

设状态价值函数为 \(V_{\psi}(s)\),Q 值函数为 \(Q_{\phi}(s, a)\),策略为 \(\pi_{\theta}(a|s)\)。 IQL 的训练通常包含以下三个目标:

(1) Q 函数回归

\[L_Q(\phi) = \mathbb{E}_{(s, a, r, s') \sim D} \left[ \left( Q_{\phi}(s, a) - \left(r + \gamma V_{\bar{\psi}}(s')\right) \right)^2 \right].\]

(2) Value 的 expectile 回归

\[L_V(\psi) = \mathbb{E}_{(s, a) \sim D} \left[ \rho_{\tau}\left( Q_{\bar{\phi}}(s, a) - V_{\psi}(s) \right) \right],\]

其中 \(\rho_{\tau}(u)=|\tau-\mathbb{I}(u<0)|u^2\)\(\tau\) 是 expectile 系数(例如 0.7)。

(3) Actor 的优势加权行为克隆

\[L_{\pi}(\theta) = -\mathbb{E}_{(s, a) \sim D} \left[ \exp\left( \frac{Q_{\bar{\phi}}(s, a)-V_{\bar{\psi}}(s)}{\beta} \right) \log \pi_{\theta}(a|s) \right],\]

其中 \(\beta\) 对应温度系数,用于控制优势权重的尺度。

3. 配置#

在 RLinf 中,IQL 可用于离线具身任务(如 D4RL)。 以 d4rl_iql_mujoco.yaml 为例,核心配置如下:

algorithm:
   loss_type: "offline_iql"
   batch_size: 256
   actor_lr: 3.0e-4
   value_lr: 3.0e-4
   critic_lr: 3.0e-4
   hidden_dims: [256, 256]
   discount: 0.99
   tau: 0.005
   expectile: 0.7
   temperature: 3.0
   gamma: 0.99
   dropout_rate: null
   opt_decay_schedule: "cosine"

env:
   dataset_type: "d4rl"
   train:
      env_type: "d4rl"
      env_name: "halfcheetah-medium-v2"

actor:
   worker_cls: "iql"