强化学习中的重要性采样(Importance Sampling)
1. 前言
重要性采样(Importance Sampling)其实是强化学习中比较重要的一个概念,但是大部分初学者似乎对这一点不是很懂,甚至没有听过这个概念。其实这是因为目前深度强化学习中大多数方法都是以Q-Learning为基础的,而Q-Learning又恰恰不需要重要性采样,所以导致很多人接触不到这个概念。因此本文将首先从本质出发介绍重要性采样的原始含义,然后讲述重要性采样在强化学习中扮演的角色,最后解释一下为什么Q-Learning、DQN、DDPG这些方法不需要重要性采样。
2. 重要性采样
2.1 重要性采样要解决的问题
重要性采样是统计学中的一种采样方法,主要用在一些难以直接采样的数据分布上。我们首先看一个问题:假设随机变量X有一个很复杂的概率密度函数p(x),现在我们的最终目标是求X关于某个函数f(x)的期望E=Ex∼p(x)[f(x)]。
求解E最理想的办法是将上面的期望展开变成积分的形式——∫xp(x)f(x)dx,然后求解积分。如果随机变量X的概率分布p(x)和函数f(x)已知且比较简单,那么这样是可行的,直接通过数学计算即可。但是如果p(x)或f(x)比较复杂,无法通过数学计算直接求解积分,就需要其他办法了。比如p或f是通过神经网络拟合出来的,我们只能把x输入到神经网络后得到p(x)和f(x),而不知道这两个函数的具体表达式,那么就无法直接计算积分。
此时又分随机变量X是否可以采样这两种情况,如果随机变量X是可以采样的,那么我们可以通过蒙特卡罗法曲线救国,根据大数定律,采样足够多的样本来近似计算E≈N1xi∼p(x),i=1∑Nf(xi);但是还有另一种常见的情况:随机变量X不可采样,我们此时都得不到X的具体值,更何况将样本x输入到p和f里得到p(x)和f(x)。因此,重要性采样的出现就是为了解决这种很难在原始分布p(x)下采样的问题。
2.2 重要性采样的做法
既然此时随机变量X无法直接从原始分布p(x)下采样,那么我们可以另辟蹊径,从一个简单、可采样、定义域与p(x)相同的概率分布~(x)中进行采样。由于我们的最终目标是求E=Ex∼p(x)[f(x)],那么我们可以进行简单的推导:
重要性采样(Importance Sampling)其实是强化学习中比较重要的一个概念,但是大部分初学者似乎对这一点不是很懂,甚至没有听过这个概念。其实这是因为目前深度强化学习中大多数方法都是以Q-Learning为基础的,而Q-Learning又恰恰不需要重要性采样,所以导致很多人接触不到这个概念。因此本文将首先从本质出发介绍重要性采样的原始含义,然后讲述重要性采样在强化学习中扮演的角色,最后解释一下为什么Q-Learning、DQN、DDPG这些方法不需要重要性采样。
2. 重要性采样
2.1 重要性采样要解决的问题
重要性采样是统计学中的一种采样方法,主要用在一些难以直接采样的数据分布上。我们首先看一个问题:假设随机变量X有一个很复杂的概率密度函数p(x),现在我们的最终目标是求X关于某个函数f(x)的期望E=Ex∼p(x)[f(x)]。
求解E最理想的办法是将上面的期望展开变成积分的形式——∫xp(x)f(x)dx,然后求解积分。如果随机变量X的概率分布p(x)和函数f(x)已知且比较简单,那么这样是可行的,直接通过数学计算即可。但是如果p(x)或f(x)比较复杂,无法通过数学计算直接求解积分,就需要其他办法了。比如p或f是通过神经网络拟合出来的,我们只能把x输入到神经网络后得到p(x)和f(x),而不知道这两个函数的具体表达式,那么就无法直接计算积分。
此时又分随机变量X是否可以采样这两种情况,如果随机变量X是可以采样的,那么我们可以通过蒙特卡罗法曲线救国,根据大数定律,采样足够多的样本来近似计算E≈N1xi∼p(x),i=1∑Nf(xi);但是还有另一种常见的情况:随机变量X不可采样,我们此时都得不到X的具体值,更何况将样本x输入到p和f里得到p(x)和f(x)。因此,重要性采样的出现就是为了解决这种很难在原始分布p(x)下采样的问题。
2.2 重要性采样的做法
既然此时随机变量X无法直接从原始分布p(x)下采样,那么我们可以另辟蹊径,从一个简单、可采样、定义域与p(x)相同的概率分布~(x)中进行采样。由于我们的最终目标是求E=Ex∼p(x)[f(x)],那么我们可以进行简单的推导:
E=Ex∼p(x)[f(x)]=∫xp(x)f(x)dx=∫xp~(x)p~(x)p(x)f(x)dx=Ex∼p~(x)[p~(x)p(x)f(x)]