【强化学习】重要性采样
重要性采样(Importance Sampling)是一种**利用从一个分布中采样得到的数据来估计另一个分布的期望值**的方法,在蒙特卡洛方法中是一种常用的技巧,用于提高估计的效率和准确性。这种方法适用于目标分布难以直接采样,或者直接采样效率较低的情况。在强化学习中主要用于解决**异策略(Off-policy)学习**
重要性采样(Importance Sampling)是一种利用从一个分布中采样得到的数据来估计另一个分布的期望值的方法,在蒙特卡洛方法中是一种常用的技巧,用于提高估计的效率和准确性。这种方法适用于目标分布难以直接采样,或者直接采样效率较低的情况。在强化学习中主要用于解决异策略(Off-policy)学习(参考【强化学习】同策略学习(On-Policy )与异策略学习(Off-Policy ))中 “数据分布不匹配” 的问题。
异策略学习中,通常存在两个独立的策略:
- 行为策略(Behavior Policy, π β π_β πβ):负责与环境交互、收集训练数据的策略(可以是旧策略、探索策略,甚至随机策略)。
- 目标策略(Target Policy, π θ π_θ πθ):正在训练的,想要优化和提升的策略。
- 由于两个策略的决策逻辑不同(比如行为策略偏向 “探索”,目标策略偏向 “利用”),它们生成的数据(状态 - 动作序列)服从完全不同的分布。
如果直接用行为策略收集的数据训练目标策略,会导致估计偏差,这时就可以用到「重要性采样」做分布修正: 通过一个 “权重”,将行为策略的数据 “修正” 为符合目标策略分布的数据,从而消除分布不匹配带来的偏差。
具体来说,假设我们有一个目标分布 p ( x ) p(x) p(x) ,我们希望计算函数 f ( x ) f(x) f(x) 在该分布下的期望值 ,但是从分布 p ( x ) p(x) p(x) 中采样很困难,或者成本很高。这时我们可以引入一个简单的分布 q ( x ) q(x) q(x) ,并从 q ( x ) q(x) q(x) 中采样,然后使用重要性采样来估计 p ( x ) p(x) p(x) 下的期望值。
根据期望的定义,我们可以将 p ( x ) p(x) p(x) 下的期望值写成(连续变量版,如果是离散的,把积分换成求和):
E X ∼ p ( x ) [ f ( X ) ] = ∫ f ( x ) p ( x ) d x E_{X \sim p(x)}[f(X)] = \int f(x)p(x)dx EX∼p(x)[f(X)]=∫f(x)p(x)dx
如果从 p ( x ) p(x) p(x) 中采样比较困难,我们可以引入另一个分布 q ( x ) q(x) q(x) ,并对上式进行如下变换:
E X ∼ p ( x ) [ f ( X ) ] = ∫ f ( x ) p ( x ) q ( x ) q ( x ) d x E_{X \sim p(x)}[f(X)] = \int f(x)\frac{p(x)}{q(x)}q(x)dx EX∼p(x)[f(X)]=∫f(x)q(x)p(x)q(x)dx
上式可以看做是函数 f ( x ) p ( x ) q ( x ) f(x)\frac{p(x)}{q(x)} f(x)q(x)p(x)在分布 q ( x ) q(x) q(x) 下的期望,所以可以将其写为:
E X ∼ p ( x ) [ f ( X ) ] = ∫ [ f ( x ) p ( x ) q ( x ) ] q ( x ) d x = E X ∼ q ( x ) [ f ( x ) p ( x ) q ( x ) ] E_{X \sim p(x)}[f(X)] = \int [f(x)\frac{p(x)}{q(x)}]q(x)dx = E_{X \sim q(x)}[f(x)\frac{p(x)}{q(x)}] EX∼p(x)[f(X)]=∫[f(x)q(x)p(x)]q(x)dx=EX∼q(x)[f(x)q(x)p(x)]
其中, p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x)被称为重要性权重。
在强化学习中,通常需要计算目标策略的期望回报,其中 p ( x ) p(x) p(x) 代表目标策略 π ( a ∣ s ) \pi(a|s) π(a∣s) ,而 q ( x ) q(x) q(x) 可以代表行为策略 π b ( a ∣ s ) \pi_b(a|s) πb(a∣s) 。因此,我们可以使用行为策略 π b \pi_b πb 与环境交互产生数据,然后用重要性采样来估计目标策略 π \pi π 的期望回报
重要性采样的方差问题:
虽然重要性采样为我们提供了一种计算不同分布期望值的方法,但它也存在一些问题。其中最主要的问题就是方差问题。当 p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x) 的值较大时,会导致估计值的方差很大。特别是在强化学习中,如果目标策略和行为策略差异较大,会导致重要性权重的方差很大,进而导致算法不稳定。
图片参考自从Policy Gradient到PPO的来龙去脉
为了解决这个问题,我们可以采取一些措施,例如:
- 截断重要性采样(Truncated Importance Sampling): 当重要性权重超过某个阈值时,将其截断为该阈值,从而降低方差。
- 使用平滑策略: 尽量使目标策略和行为策略的差异不要太大。
更多推荐
所有评论(0)