重要性采样(importance sampling)

重要性采样是统计学习中一种常用的方法。在强化学习中通常和蒙特卡洛方法结合使用。

重要性采样是,使用另外一种分布来逼近所求分布一种方法。

具体形式是这样的:假设我们在想要求取目标分布 P P P下函数 f ( x ) f(x) f(x)的分布,如果可以对 P P P采样,采用蒙特卡洛方法,我们可以有如下计算:

E x ∼ P [ f ( x ) ] = ∫ x P ( x ) f ( x ) d x ≈ 1 N ∑ x i ∼ P , i = 1 N f ( x i ) E_{x\sim P}[f(x)]=\int_xP(x)f(x)d_x\approx \frac{1}{N}\sum_{x_i\sim P,i=1}^Nf(x_i) ExP[f(x)]=xP(x)f(x)dxN1xiP,i=1Nf(xi)

通过大量采样可以近似表示期望。
但是若我们无法对 P P P进行采样,那么这个近似计算就无法进行,那么我们可以借用可以进行采样的分布 P ′ {P}' P来近似 P P P.公式如下:

E x ∼ P [ f ( x ) ] = ∫ x P ( x ) f ( x ) d x = E x ∼ P ′ [ P P ′ f ( x ) ] ≈ 1 N ∑ x i ∼ P ′ , i = 1 N P ( x ) P ( x ) ′ f ( x ) E_{x\sim P}[f(x)]=\int_xP(x)f(x)d_x=E_{x\sim {P}'}[\frac{P}{{P}'}f(x)]\approx \frac{1}{N}\sum_{x_i\sim {P}',i=1}^N \frac{P(x)}{{P(x)}'} f(x) ExP[f(x)]=xP(x)f(x)dx=ExP[PPf(x)]N1xiP,i=1NP(x)P(x)f(x)

注意这里是根据分布 P ′ {P}' P来进行采样的。
这里我们举一个例子:我们要求在均值为1,标准差1的正太分布下函数 f ( x ) = x f(x)=x f(x)=x的期望,我们使用均值为1,标准差为0.5的正太分布来采样逼近这个期望。我们通过对均值为1,标准差为0.5的正太分布进行多次采样,每次采样计算 P ( x ) P ( x ) ′ f ( x i ) \frac{P(x)}{{P(x)}'} f(x_i) P(x)P(x)f(xi),并求和再求均值,比如我们只进行了两次采样,分别采样得到,1.09和2.36,则计算如下:

( 0.3973 0.7851 1.09 + 0.1582 0.0197 2.36 ) / 2 = 0.7517 (\frac{0.3973}{0.7851} 1.09+\frac{0.1582}{0.0197} 2.36)/2=0.7517 (0.78510.39731.09+0.01970.15822.36)/2=0.7517

这里概率是使用对应的正太分布的概率密度函数直接计算的。

你可能感兴趣的:(机器学习,强化学习,重要性采样,importance,sampling)