重要性采样(importance sampling)是一种用于估计概率密度函数期望值的常用蒙特卡罗积分方法。其基本思想是利用一个已知的概率密度函数来生成样本,从而近似计算另一个概率密度函数的期望值。
想从复杂概率分布中采样的一个主要原因是能够使用式(11.1)计算期望。重要采样(importance sampling)的方法提供了直接近似期望的框架,但是它本身并没有提供从概率分布 
     
      
       
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        p(z) 
       
      
    p(z)中采样的方法,也就是我们无法从式(11.1)直接过渡到(11.2)
  
      
       
        
         
          
          
           
           
             E 
            
           
             [ 
            
           
             f 
            
           
             ] 
            
           
             = 
            
           
             ∫ 
            
           
             f 
            
           
             ( 
            
           
             z 
            
           
             ) 
            
           
             p 
            
           
             ( 
            
           
             z 
            
           
             ) 
            
           
             d 
            
           
             z 
            
           
          
          
          
          
            (11.1) 
           
          
         
        
       
         \mathbb{E}[f] = \int f(z)p(z)dz \tag{11.1} 
        
       
     E[f]=∫f(z)p(z)dz(11.1) 
      
       
        
         
          
          
           
            
            
              f 
             
            
              ^ 
             
            
           
             = 
            
            
            
              1 
             
            
              L 
             
            
            
            
              ∑ 
             
             
             
               l 
              
             
               = 
              
             
               1 
              
             
            
              L 
             
            
           
             f 
            
           
             ( 
            
            
            
              z 
             
             
             
               ( 
              
             
               l 
              
             
               ) 
              
             
            
           
             ) 
            
           
          
          
          
          
            (11.2) 
           
          
         
        
       
         \hat{f} = \frac{1}{L}\sum\limits_{l=1}^L f(z^{(l)}) \tag{11.2} 
        
       
     f^=L1l=1∑Lf(z(l))(11.2)公式(11.2)给出的期望的有限和近似依赖于能够从概率分布 
     
      
       
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        p(z) 
       
      
    p(z)中采样。然而,假设直接从 
     
      
       
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        p(z) 
       
      
    p(z)中采样无法完成,但是对于任意给定的 
     
      
       
       
         z 
        
       
      
        z 
       
      
    z值,我们可以很容易地计算 
     
      
       
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        p(z) 
       
      
    p(z)。一种简单的计算期望的方法是将 
     
      
       
       
         z 
        
       
      
        z 
       
      
    z空间离散化为均匀的格点,将被积函数使用求和的方式计算,形式为
  
      
       
        
        
          E 
         
        
          [ 
         
        
          f 
         
        
          ] 
         
        
          ≃ 
         
         
         
           ∑ 
          
          
          
            l 
           
          
            = 
           
          
            1 
           
          
         
           L 
          
         
        
          p 
         
        
          ( 
         
         
         
           z 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
          f 
         
        
          ( 
         
         
         
           z 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \mathbb{E}[f] \simeq \sum\limits_{l=1}^Lp(z^{(l)})f(z^{(l)}) 
        
       
     E[f]≃l=1∑Lp(z(l))f(z(l))这种方法的一个明显的问题是求和式中的项的数量随着 
     
      
       
       
         z 
        
       
      
        z 
       
      
    z的维度指数增长。此外,正如我们已经注意到的那样,我们感兴趣的概率分布通常将它们的大部分质量限制在 
     
      
       
       
         z 
        
       
      
        z 
       
      
    z空间的一个很小的区域,因此均匀地采样非常低效,因为在高维的问题中,只有非常小的一部分样本会对求和式产生巨大的贡献。我们希望从 
     
      
       
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        p(z) 
       
      
    p(z)的值较大的区域中采样,或理想情况下,从 
     
      
       
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
         f 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        p(z)f(z) 
       
      
    p(z)f(z)的值较大的区域中采样。
与拒绝采样的情形相同,重要采样基于的是对提议分布 q ( z ) q(z) q(z)的使用,我们很容易从提议分布中采样,如下图所示:
 
重要采样解决的是计算函数 f ( z ) f(z) f(z)关于分布 p ( z ) p(z) p(z)的期望的问题,其中,从 p ( z ) p(z) p(z)中直接采样比较困难。相反,样本 z ( l ) {z^{(l)}} z(l)从一个简单的概率分布 q ( z ) q(z) q(z)中抽取,求和式中的对应项的权值为 p ( z ( l ) ) / q ( z ( l ) ) p(z^{(l)})/q(z^{(l)}) p(z(l))/q(z(l)),这样就可以还原到从 p ( z ) p(z) p(z)中取样。
上述过程中的式子,我们可以通过 
     
      
       
       
         q 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        q(z) 
       
      
    q(z)中的样本 
     
      
       
       
         { 
        
        
        
          z 
         
         
         
           ( 
          
         
           l 
          
         
           ) 
          
         
        
       
         } 
        
       
      
        \{z^{(l)}\} 
       
      
    {z(l)}的有限和的形式来表示期望
  
      
       
        
        
          E 
         
        
          = 
         
        
          ∫ 
         
        
          f 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          p 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          d 
         
        
          z 
         
        
            
         
        
          = 
         
        
          ∫ 
         
        
          f 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
         
          
          
            p 
           
          
            ( 
           
          
            z 
           
          
            ) 
           
          
          
          
            q 
           
          
            ( 
           
          
            z 
           
          
            ) 
           
          
         
        
          q 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          d 
         
        
          z 
         
        
            
         
        
          ≃ 
         
         
         
           1 
          
         
           L 
          
         
         
         
           ∑ 
          
          
          
            l 
           
          
            = 
           
          
            1 
           
          
         
           L 
          
         
         
          
          
            p 
           
          
            ( 
           
           
           
             z 
            
            
            
              ( 
             
            
              l 
             
            
              ) 
             
            
           
          
            ) 
           
          
          
          
            q 
           
          
            ( 
           
           
           
             z 
            
            
            
              ( 
             
            
              l 
             
            
              ) 
             
            
           
          
            ) 
           
          
         
        
          f 
         
        
          ( 
         
         
         
           z 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \mathbb{E} = \int f(z)p(z)dz \ = \int f(z)\frac{p(z)}{q(z)}q(z)dz \ \simeq \frac{1}{L}\sum\limits_{l=1}^L\frac{p(z^{(l)})}{q(z^{(l)})}f(z^{(l)}) 
        
       
     E=∫f(z)p(z)dz =∫f(z)q(z)p(z)q(z)dz ≃L1l=1∑Lq(z(l))p(z(l))f(z(l))其中 
     
      
       
        
        
          r 
         
        
          l 
         
        
       
         = 
        
       
         p 
        
       
         ( 
        
        
        
          z 
         
         
         
           ( 
          
         
           l 
          
         
           ) 
          
         
        
       
         ) 
        
       
         / 
        
       
         q 
        
       
         ( 
        
        
        
          z 
         
         
         
           ( 
          
         
           l 
          
         
           ) 
          
         
        
       
         ) 
        
       
      
        r_l = p(z^{(l)}) / q(z^{(l)}) 
       
      
    rl=p(z(l))/q(z(l))被称为重要性权重(importance weights),修正了由于从错误的概率分布 
     
      
       
       
         q 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        q(z) 
       
      
    q(z)中采样引入的偏差。
对于上述过程,举个栗子:
我们的待计算函数为 h ( x ) = e − 2 ∣ x − 5 ∣ h(x)=e^{-2|x-5|} h(x)=e−2∣x−5∣,待采样分布为 p ( x ) = 1 10 , x ∼ u ( 0 , 10 ) p(x)=\dfrac{1}{10} ,x \sim\mathcal{u}(0,10) p(x)=101,x∼u(0,10),从 h ( x ) h(x) h(x)的图像中明显可以看出,在中间部分的 h ( x ) p ( x ) h(x)p(x) h(x)p(x)对期望贡献较大,而两边几乎可以忽略不计,所以此时使用均匀分布采样并不合理。
 
基于此,我们引入了新的采样分布函数 q ( x ) = 1 2 π e − ( x − 5 ) 2 2 q(x)=\dfrac{1}{\sqrt{2\pi}}e^{-\frac{(x-5)^2}{2}} q(x)=2π1e−2(x−5)2

 这使得在 
     
      
       
       
         h 
        
       
         ( 
        
       
         x 
        
       
         ) 
        
       
      
        h(x) 
       
      
    h(x)较大的位置取值更多,需要的采样点更少。
而更常见的情形是,概率分布 
     
      
       
       
         p 
        
       
      
        p 
       
      
    p的计算结果没有标准化,也就是 
     
      
       
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
         = 
        
        
        
          p 
         
        
          ~ 
         
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
         / 
        
        
        
          Z 
         
        
          p 
         
        
       
      
        p(z) = \tilde{p}(z) / Z_p 
       
      
    p(z)=p~(z)/Zp中我们只知道 
     
      
       
        
        
          p 
         
        
          ~ 
         
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        \tilde{p}(z) 
       
      
    p~(z),其中 
     
      
       
        
        
          p 
         
        
          ~ 
         
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        \tilde{p}(z) 
       
      
    p~(z)可以很容易地由 
     
      
       
       
         z 
        
       
      
        z 
       
      
    z计算出来(可能没有函数表达式),而 
     
      
       
        
        
          Z 
         
        
          p 
         
        
       
      
        Z_p 
       
      
    Zp未知( 
     
      
       
        
        
          p 
         
        
          ~ 
         
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        \tilde{p}(z) 
       
      
    p~(z)无法积分算)。类似的,我们可能希望使用重要采样分布 
     
      
       
       
         q 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
         = 
        
        
        
          q 
         
        
          ~ 
         
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
         / 
        
        
        
          Z 
         
        
          q 
         
        
       
      
        q(z) = \tilde{q}(z) / Z_q 
       
      
    q(z)=q~(z)/Zq中的 
     
      
       
        
        
          q 
         
        
          ~ 
         
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        \tilde{q}(z) 
       
      
    q~(z),它具有相同的性质。于是我们得到:
  
      
       
        
        
          E 
         
        
          [ 
         
        
          f 
         
        
          ] 
         
        
          = 
         
        
          ∫ 
         
        
          f 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          p 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          d 
         
        
          z 
         
        
            
         
        
          = 
         
         
          
          
            Z 
           
          
            q 
           
          
          
          
            Z 
           
          
            p 
           
          
         
        
          ∫ 
         
        
          f 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
         
          
           
           
             p 
            
           
             ~ 
            
           
          
            ( 
           
          
            z 
           
          
            ) 
           
          
          
           
           
             q 
            
           
             ~ 
            
           
          
            ( 
           
          
            z 
           
          
            ) 
           
          
         
        
          q 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          d 
         
        
          z 
         
        
            
         
        
          ≃ 
         
         
          
          
            Z 
           
          
            q 
           
          
          
          
            Z 
           
          
            p 
           
          
         
         
         
           1 
          
         
           L 
          
         
         
         
           ∑ 
          
          
          
            l 
           
          
            = 
           
          
            1 
           
          
         
           L 
          
         
         
          
          
            r 
           
          
            ~ 
           
          
         
           l 
          
         
        
          f 
         
        
          ( 
         
         
         
           z 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \mathbb{E}[f] = \int f(z)p(z)dz \ = \frac{Z_q}{Z_p}\int f(z)\frac{\tilde{p}(z)}{\tilde{q}(z)}q(z)dz \ \simeq \frac{Z_q}{Z_p}\frac{1}{L}\sum\limits_{l=1}^L\tilde{r}_lf(z^{(l)}) 
        
       
     E[f]=∫f(z)p(z)dz =ZpZq∫f(z)q~(z)p~(z)q(z)dz ≃ZpZqL1l=1∑Lr~lf(z(l))
 其中 
     
      
       
        
         
         
           r 
          
         
           ~ 
          
         
        
          l 
         
        
       
         = 
        
        
        
          p 
         
        
          ~ 
         
        
       
         ( 
        
        
        
          z 
         
         
         
           ( 
          
         
           l 
          
         
           ) 
          
         
        
       
         ) 
        
       
         / 
        
        
        
          q 
         
        
          ~ 
         
        
       
         ( 
        
        
        
          z 
         
         
         
           ( 
          
         
           l 
          
         
           ) 
          
         
        
       
         ) 
        
       
      
        \tilde{r}_l = \tilde{p}(z^{(l)}) / \tilde{q}(z^{(l)}) 
       
      
    r~l=p~(z(l))/q~(z(l))。
我们还可以使用同样的样本集合来计算比值 
     
      
       
        
        
          Z 
         
        
          p 
         
        
       
         / 
        
        
        
          Z 
         
        
          q 
         
        
       
      
        Z_p / Z_q 
       
      
    Zp/Zq,结果为:
  
      
       
        
         
          
          
            Z 
           
          
            p 
           
          
          
          
            Z 
           
          
            q 
           
          
         
        
          = 
         
         
         
           1 
          
          
          
            Z 
           
          
            q 
           
          
         
        
          ∫ 
         
         
         
           p 
          
         
           ~ 
          
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          d 
         
        
          z 
         
        
          = 
         
        
          ∫ 
         
         
          
           
           
             p 
            
           
             ~ 
            
           
          
            ( 
           
          
            z 
           
          
            ) 
           
          
          
           
           
             q 
            
           
             ~ 
            
           
          
            ( 
           
          
            z 
           
          
            ) 
           
          
         
        
          q 
         
        
          ( 
         
        
          z 
         
        
          ) 
         
        
          d 
         
        
          z 
         
        
            
         
        
          ≃ 
         
         
         
           1 
          
         
           L 
          
         
         
         
           ∑ 
          
          
          
            l 
           
          
            = 
           
          
            1 
           
          
         
           L 
          
         
         
          
          
            r 
           
          
            ~ 
           
          
         
           l 
          
         
        
       
         \frac{Z_p}{Z_q} = \frac{1}{Z_q}\int\tilde{p}(z)dz = \int\frac{\tilde{p}(z)}{\tilde{q}(z)}q(z)dz \ \simeq \frac{1}{L}\sum\limits_{l=1}^L\tilde{r}_l 
        
       
     ZqZp=Zq1∫p~(z)dz=∫q~(z)p~(z)q(z)dz ≃L1l=1∑Lr~l
第一个等式中 Z p Z_p Zp用 ∫ p ~ ( z ) d z \int\tilde{p}(z)dz ∫p~(z)dz等价计算了出来,第二个等式中 Z q Z_q Zq用 q ( z ) = q ~ ( z ) / Z q q(z) = \tilde{q}(z) / Z_q q(z)=q~(z)/Zq替代
因此:
  
      
       
        
        
          E 
         
        
          [ 
         
        
          f 
         
        
          ] 
         
        
          ≃ 
         
         
         
           ∑ 
          
          
          
            l 
           
          
            = 
           
          
            1 
           
          
         
           L 
          
         
         
         
           w 
          
         
           l 
          
         
        
          f 
         
        
          ( 
         
         
         
           z 
          
          
          
            ( 
           
          
            l 
           
          
            ) 
           
          
         
        
          ) 
         
        
       
         \mathbb{E}[f] \simeq \sum\limits_{l=1}^Lw_lf(z^{(l)}) 
        
       
     E[f]≃l=1∑Lwlf(z(l))其中: 
      
       
        
         
         
           w 
          
         
           l 
          
         
        
          = 
         
         
          
           
           
             r 
            
           
             ~ 
            
           
          
            l 
           
          
          
           
           
             ∑ 
            
           
             m 
            
           
           
            
            
              r 
             
            
              ~ 
             
            
           
             m 
            
           
          
         
        
          = 
         
         
          
           
           
             p 
            
           
             ~ 
            
           
          
            ( 
           
           
           
             z 
            
            
            
              ( 
             
            
              l 
             
            
              ) 
             
            
           
          
            ) 
           
          
            / 
           
          
            q 
           
          
            ( 
           
           
           
             z 
            
            
            
              ( 
             
            
              l 
             
            
              ) 
             
            
           
          
            ) 
           
          
          
           
           
             ∑ 
            
           
             m 
            
           
           
           
             p 
            
           
             ~ 
            
           
          
            ( 
           
           
           
             z 
            
            
            
              ( 
             
            
              l 
             
            
              ) 
             
            
           
          
            ) 
           
          
            / 
           
          
            q 
           
          
            ( 
           
           
           
             z 
            
            
            
              ( 
             
            
              l 
             
            
              ) 
             
            
           
          
            ) 
           
          
         
        
       
         w_l = \frac{\tilde{r}_l}{\sum_m\tilde{r}_m} = \frac{\tilde{p}(z^{(l)})/q(z^{(l)})}{\sum_m\tilde{p}(z^{(l)})/q(z^{(l)})} 
        
       
     wl=∑mr~mr~l=∑mp~(z(l))/q(z(l))p~(z(l))/q(z(l))
 这也就是我们最终要找样本点计算的式子
 最终,我们达到了“利用一个已知的概率密度函数 
     
      
       
       
         q 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
      
        q(z) 
       
      
    q(z)来生成样本,从而近似计算另一个概率密度函数的期望值 
     
      
       
       
         E 
        
       
         [ 
        
       
         f 
        
       
         ] 
        
       
         = 
        
       
         ∫ 
        
       
         f 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
         p 
        
       
         ( 
        
       
         z 
        
       
         ) 
        
       
         d 
        
       
         z 
        
       
      
        \mathbb{E}[f] = \int f(z)p(z)dz 
       
      
    E[f]=∫f(z)p(z)dz”这一目的。
参考:
- 【PRML】【模式识别和机器学习】【从零开始的公式推导】11.1.4重要性采样 11.1.5采样-重要性-重采样 11.1.6采样与EM算法
 - Importance Sampling - VISUALLY EXPLAINED with EXAMPLES!
 



















