RL——Diffusion-QL

本文介绍Diffusion-QL(Diffusion Q-Learning)方法


基本思路

  • 目标:解决 Offline RL 的问题
  • 基本思想:通过Diffusion模型 \(\epsilon_\theta(a^i,s_t,i)\) 来建模策略,具体地通过反向过程的多次采样得到当前状态 \(s_t\) 下的最优的动作 \(a_{t}^0\),其中 \(i\) 表示Diffusion采样时间步
  • 学习策略时,使用Diffusion模型的模仿能力保证决策的动作不要偏离原始数据集太多(利用DDPM损失函数来学习);同时使用普通强化学习思路找到使得Q值最大的动作

Diffusion-QL方法

  • 伪代码:
  • 训练Q值时,就是普通的贝尔曼算子对应的损失函数,其中下个状态的最优动作通过Diffusion模型 \(\epsilon_\theta(a^i,s_t,i)\) 来采样得到
  • 训练策略网络(即Diffusion模型 \(\epsilon_\theta(a^i,s_t,i)\) )时包含两部分损失:
    • 最大化Q网络:通过Diffusion模型 \(\epsilon_\theta(a^i,s_t,i)\) 来采样得到动作 \(a_{t}^0\),该动作包含了 \(\theta\) 的梯度信息,将该动作\(a_{t}^0\) 填充到Q网络中即可通过梯度更新 \(\theta\) 的参数(类似DDPG的方式)
    • 最小化DDPM的损失函数,保证生成的动作分布符合原始状态动作对 \((s,a)\)

一些补充

  • 为什么需要使用Diffusion的损失函数?
    • Online RL中,理论上找到使得Q值最大的动作就可以了
    • Offline RL中,加入DDPM的损失函数之后有一种拟合原始数据策略的含义,保证生成的动作不会偏离原始数据集太多,有助于缓解Offline RL的OOD问题