强化学习中的重要性采样:跨分布复用样本的核心技术

在强化学习中,智能体需与环境交互采集样本(轨迹、状态 - 动作对)以更新策略。但 “样本分布必须与目标策略分布一致” 的同策略限制,会导致采样效率低下(每次策略更新都需重新采样)。此时,** 重要性采样(Importance Sampling)** 成为突破分布限制、高效复用样本的关键技术。本文将从原理到应用,深入解析这一技术。

一、重要性采样的基本原理:解决分布不匹配的期望估计

假设我们需要计算 ** 目标分布 $p(x) $下函数 **** **** 的期望 **** ****,但由于采样限制(如 **** **** 难以直接采样),只能从提议分布 q(x)q(x)q(x)** 中采集样本 xxx

核心公式与符号解释

重要性采样通过 “积分变换 + 权重修正”,将对 p(x)p(x)p(x) 的期望转化为对 q(x)q(x)q(x) 的期望:

Ex∼p[f(x)]=∫f(x)p(x)dx=Ex∼q[f(x)⋅p(x)q(x)]\mathbb{E}_{x \sim p}[f(x)] = \int f(x) p(x) dx = \mathbb{E}_{x \sim q}\left[ f(x) \cdot \frac{p(x)}{q(x)} \right]Exp[f(x)]=f(x)p(x)dx=Exq[f(x)q(x)p(x)]

  • Ex∼p[⋅]\mathbb{E}_{x \sim p}[\cdot]Exp[]:表示 “样本 xxx 服从目标分布 ppp 时,括号内函数的期望”。

  • f(x)f(x)f(x):关于随机变量 xxx 的函数(在强化学习中,可理解为 “状态 / 轨迹的价值函数” 或 “策略梯度的加权项”)。

  • p(x)p(x)p(x)目标分布的概率密度 / 质量函数(强化学习中,是 “目标策略生成样本的分布”)。

  • q(x)q(x)q(x)提议分布的概率密度 / 质量函数(强化学习中,是 “实际采样策略生成样本的分布”)。

  • p(x)q(x)\frac{p(x)}{q(x)}q(x)p(x)重要性权重,用于修正 “提议分布 qqq 与目标分布 ppp 的差异”,让从 qqq 采样的样本等价于从 ppp 采样的 “期望效果”。

二、强化学习中的典型应用:策略梯度的样本复用

强化学习中,** 策略梯度方法(如 REINFORCE)需要计算 “动作对回报的梯度期望”。若用旧策略 πold\pi_{\text{old}}πold的样本(服从 **** **** 的分布 **** ****),估计新策略 πnew\pi_{\text{new}}πnew** 的梯度(目标分布 pppπnew\pi_{\text{new}}πnew 的分布),可通过重要性采样实现。

策略梯度中的重要性采样公式与符号解释

以 REINFORCE 算法为例,用旧策略样本估计新策略梯度的形式为:

梯a˚º¦∝E(s,a)∼πold[πnew(a∣s)πold(a∣s)⋅Q(s,a)]\text{梯度} \propto \mathbb{E}_{(s,a) \sim \pi_{\text{old}}}\left[ \frac{\pi_{\text{new}}(a|s)}{\pi_{\text{old}}(a|s)} \cdot Q(s,a) \right]梯a˚º¦E(s,a)πold[πold(as)πnew(as)Q(s,a)]

  • πold\pi_{\text{old}}πold旧策略(提议分布对应的采样策略,已与环境交互采集样本)。

  • πnew\pi_{\text{new}}πnew新策略(目标分布对应的待更新策略)。

  • (s,a)(s,a)(s,a)状态 - 动作对(强化学习中与环境交互的核心样本单元)。

  • πnew(a∣s)\pi_{\text{new}}(a|s)πnew(as):新策略 πnew\pi_{\text{new}}πnew 在状态 sss 下选择动作 aaa 的概率(目标分布的 “动作条件概率”)。

  • πold(a∣s)\pi_{\text{old}}(a|s)πold(as):旧策略 πold\pi_{\text{old}}πold 在状态 sss 下选择动作 aaa 的概率(提议分布的 “动作条件概率”)。

  • Q(s,a)Q(s,a)Q(s,a)动作价值函数(衡量 “在状态 sss 选动作 aaa 能获得的累积回报”)。

优势:无需新策略与环境交互采样,直接复用旧样本,大幅降低训练的环境交互成本。

三、异策略训练的深度应用:用 “示范策略” 突破同策略限制

同策略要求 “训练策略必须自己与环境交互采样”,效率极低;异策略则允许 “另一个**示范策略 **** ****与环境交互采样”,再通过重要性采样修正分布,训练目标策略 **** **。

1. 权重的简化假设:聚焦 “动作条件概率”

原本对 “整条轨迹 $\tau $” 的重要性权重为 $\frac{p_\theta(\tau)}{p_{\theta’}(\tau)} ((p_\theta(\tau)$ 是目标策略 θ\thetaθ 生成轨迹 τ\tauτ 的概率,pθ′(τ)p_{\theta'}(\tau)pθ(τ) 是示范策略 θ′\theta'θ 生成 τ\tauτ 的概率)。

但实际中,利用 **“状态出现概率与策略弱关联” 的假设 **(即 $p_\theta(s_t) \approx p_{\theta’}(s_t) $,因为状态多由环境主导,与策略选动作的关联较弱,且计算状态绝对概率极困难),将 “轨迹概率” 分解为 **“状态 - 动作对” 的条件概率 **,最终简化为:

pθ(at∣st)pθ′(at∣st)\frac{p_\theta(a_t|s_t)}{p_{\theta'}(a_t|s_t)}pθ(atst)pθ(atst)

  • pθ(at∣st)p_\theta(a_t|s_t)pθ(atst):目标策略 θ\thetaθ 在状态 sts_tst 下选择动作 ata_tat 的概率(目标分布的 “动作条件概率”)。

  • pθ′(at∣st)p_{\theta'}(a_t|s_t)pθ(atst):示范策略 θ′\theta'θ 在状态 sts_tst 下选择动作 ata_tat 的概率(提议分布的 “动作条件概率”)。

2. 异策略的目标函数与梯度更新

结合**优势函数 **** **(衡量 “在状态 sts_tst 选动作 ata_tat 的好坏”,由示范策略 θ′\theta'θ 的交互样本估计,如 “累积回报 - 基线”),构造异策略下的目标函数:

Jθ′(θ)=E(st,at)∼πθ′[pθ(at∣st)pθ′(at∣st)⋅Aθ′(st,at)]J^{\theta'}(\theta) = \mathbb{E}_{(s_t,a_t) \sim \pi_{\theta'}} \left[ \frac{p_\theta(a_t|s_t)}{p_{\theta'}(a_t|s_t)} \cdot A^{\theta'}(s_t, a_t) \right]Jθ(θ)=E(st,at)πθ[pθ(atst)pθ(atst)Aθ(st,at)]

对该目标函数求梯度,即可用 θ′\theta'θ 的样本更新目标策略 θ\thetaθ

符号补充解释
  • Jθ′(θ)J^{\theta'}(\theta)Jθ(θ)异策略下的目标函数(要优化的 “目标策略 θ\thetaθ 的性能指标”,但样本由示范策略 θ′\theta'θ 提供)。

  • (st,at)∼πθ′(s_t,a_t) \sim \pi_{\theta'}(st,at)πθ:表示 “状态 - 动作对 (st,at)(s_t,a_t)(st,at) 由示范策略 $\pi_{\theta’} $(即 θ′\theta'θ 对应的策略)与环境交互采样得到”。

  • Aθ′(st,at)A^{\theta'}(s_t, a_t)Aθ(st,at)优势函数(由示范策略 θ′\theta'θ 的交互轨迹估计,输出 “状态 sts_tst 选动作 ata_tat 比平均情况好 / 差多少”)。

3. 可行性:计算与估计的便捷性

  • 动作条件概率 pθ(at∣st)pθ′(at∣st)\frac{p_\theta(a_t|s_t)}{p_{\theta'}(a_t|s_t)}pθ(atst)pθ(atst):策略通常由神经网络表示,可直接输出 “状态 sts_tst 下选动作 ata_tat 的概率”,因此比值易计算。

  • 优势函数 Aθ′(st,at)A^{\theta'}(s_t, a_t)Aθ(st,at):可通过 θ′\theta'θ 与环境交互的 “回报轨迹” 估计(如 REINFORCE 用 “累积回报”,A2C 用 “时序差分误差” 或 “广义优势估计(GAE)”)。

四、核心挑战:方差爆炸与改进方向

挑战:分布差异过大导致方差失控

若目标分布 ppp 与提议分布 qqq 差异过大(即 p(x)q(x)\frac{p(x)}{q(x)}q(x)p(x) 波动剧烈),会导致 f(x)⋅p(x)q(x)f(x) \cdot \frac{p(x)}{q(x)}f(x)q(x)p(x)方差急剧增大

  • 表现:少量样本会带来极大偏差(如 “目标分布侧重左侧、提议分布侧重右侧” 时,采样次数不足会使估计结果偏离真实期望),导致训练不稳定甚至崩溃。

改进方向

为缓解 “方差爆炸”,强化学习中常用以下方法:

  1. 截断重要性采样:限制重要性权重的最大值,避免个别样本权重过高主导结果。

  2. 归一化权重:让所有样本的权重和为 1,减少权重波动。

  3. 多步修正与策略平滑:逐步缩小新旧策略(或目标策略与示范策略)的差距,降低分布差异。

总结

重要性采样是强化学习中 “跨分布复用样本、实现高效异策略训练” 的核心技术。它通过 “权重修正” 突破 “同策略必须自采样” 的限制,让旧策略 / 示范策略的样本能服务于新策略的训练。尽管存在 “分布差异过大导致方差爆炸” 的挑战,但结合 “权重简化假设、优势函数、截断 / 归一化技巧”,能在实际中有效支持策略更新,是高效强化学习算法(如 PPO、离线强化学习)的关键基石之一。

(注:文档内容由 人类和AI共创)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/2816.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SWMM排水管网水力、水质建模及海绵城市与水环境中的应用

一:SWMM软件及水力建模基础 1.1软件模块结构 1.2建模基础数据的分类及获取方法概述 1.3软件基本功能介绍 1.4 SWMM相较于其他商业软件的优缺点二:管网水质建模基础 2.1数据需求分析 各种SWMM对象的数据需求以及含义 2.2基础数据整理 2.3基础数据的输入 各…

MySQL 50 道经典练习题及答案

目录 一、数据表设计与初始化 1. 数据表结构说明 2. 建表语句 3. 插入测试数据 二、练习题及答案 1. 查询 "01" 课程比 "02" 课程成绩高的学生的信息及课程分数 2. 查询同时存在 "01" 课程和 "02" 课程的情况 3. 查询存在 &qu…

MyCAT分库分表

MyCAT分库分表 前言: 很难评价的软件 尝试通过修改配置文件做到分库分表 你会发现一些很离谱的BUG 或者是主从分离的时候 你也会发现 莫名其妙的BUG ‍ 创建基础环境192.168.3.145192.168.3.159192.168.3.163MyCAT MySQLMySQLMySQL --更改root密码alter user rootlo…

C++开发/Qt开发:单例模式介绍与应用

单例模式是软件设计模式中最简单也是最常用的一种创建型设计模式。它的核心目标是确保一个类在整个应用程序生命周期中只有一个实例,并提供一个全局访问点。笔者白话版理解:你创建了一个类,如果你希望这个类对象在工程中应用时只创建一次&…

学习设计模式《二十三》——桥接模式

一、基础概念 桥接模式的本质是【分离抽象和实现】。 桥接模式的定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 认识桥接模式序号认识桥接模式说明1什么是桥接通俗点说就是在不同的东西之间搭一个桥,让它们能够连接起来&a…

HTML+CSS:浮动详解

在HTMLCSS布局中,浮动(float) 是一种经典的布局技术,用于控制元素在页面中的排列方式。它最初设计用于实现文字环绕图片的效果,后来被广泛用于复杂布局,但随着Flexbox和Grid的兴起,其使用场景有…

PAT 1074 Reversing Linked List

题目的意思给出一个链表,让我们每隔K个进行一次反转,如果不足K个的,就不进行。 对于链表反转的题目,我第一时间想出来的是,原地进行逆置,不断的变化指针,但这样很麻烦,没有想出来&am…

python学习DAY46打卡

DAY 46 通道注意力(SE注意力) 内容: 不同CNN层的特征图:不同通道的特征图什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。通道注意力:模型的定义和插入的位置通道注意…

猫头虎AI分享|字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent 下载、安装、配置、部署教程

猫头虎AI分享|字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent 大家好,我是猫头虎 🦉🐯,今天给大家带来一个超硬核的开源 AI 项目分享:M3-Agent。这是一款由字节开源的、多模态智能体框…

应用缓存不止是Redis!——亿级流量系统架构设计系列

在当今互联网架构中,缓存技术犹如系统的"加速器",通过将热点数据存储在高速介质中,显著降低数据库负载并提升响应速度。无论是CPU的L1/L2/L3缓存,还是分布式系统中的Redis集群,缓存无处不在。本文将深入探讨…

洛谷 P2834 纸币问题 3-普及-

题目背景 你是一个非常有钱的小朋友。 注意: 本题和《进阶篇》的对应题目,输入格式略有差异。 题目描述 你有 nnn 种面额互不相同的纸币,第 iii 种纸币的面额为 aia_iai​ 并且有无限张,现在你需要支付 www 的金额,请问…

C++常见面试题-5.数据结构

五、数据结构 5.1 线性数据结构数组和链表的区别?数组(Array): 存储方式:连续的内存空间;访问方式:支持随机访问,通过索引直接访问元素,时间复杂度为O(1);插入…