从一个极简分布出发
假设我们有一个关于随机变量 X X X 的函数 f ( X ) f(X) f(X),满足如下分布
| p ( X ) p(X) p(X) | 0.9 | 0.1 | 
|---|---|---|
| f ( X ) f(X) f(X) | 0.1 | 0.9 | 
如果我们要对  
     
      
       
       
         f 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
      
        f(X) 
       
      
    f(X) 的期望  
     
      
       
        
        
          E 
         
        
          p 
         
        
       
         [ 
        
       
         f 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
         ] 
        
       
      
        \mathbb{E}_p[f(X)] 
       
      
    Ep[f(X)] 进行估计,并且我们有一些从  
     
      
       
       
         p 
        
       
      
        p 
       
      
    p 中采样的样本,那么朴素的想法是,直接关于  
     
      
       
       
         p 
        
       
      
        p 
       
      
    p 采样,把采样到的值加起来求平均
  
      
       
        
         
         
           E 
          
         
           p 
          
         
        
          [ 
         
        
          f 
         
        
          ( 
         
        
          X 
         
        
          ) 
         
        
          ] 
         
        
          = 
         
         
         
           1 
          
         
           n 
          
         
         
         
           ∑ 
          
         
           i 
          
         
         
         
           f 
          
         
           i 
          
         
        
          ( 
         
        
          X 
         
        
          ) 
         
        
       
         \mathbb{E}_p[f(X)] = \frac{1}{n} \sum_{i} f_i(X) 
        
       
     Ep[f(X)]=n1i∑fi(X)
 但是问题在于,如果采样的样本个数比较少,很可能采样的全都是 0.1,那么和理论值 0.9*0.1+0.1*0.9=0.18 就相差很大。也就是这样的估计方法方差过大。
这个问题的本质原因在于 f ( X ) f(X) f(X)和 p ( X ) p(X) p(X)形状的不匹配:在 f ( X ) f(X) f(X)贡献比较大的值的位置, p ( X ) p(X) p(X)采样的概率很小,一旦采样个数过少, f ( X ) f(X) f(X)不足以产生足够的对 E p [ f ( X ) ] \mathbb{E}_p[f(X)] Ep[f(X)]的贡献,因此产生很大的方差
有什么解决办法呢?
重要性采样
如果我们可以换另一个已知的简单的采样分布 q ( X ) q(X) q(X),使得它和 ∣ p ( X ) f ( X ) ∣ |p(X)f(X)| ∣p(X)f(X)∣匹配,那么方差就能够变小。(这也是此方法命名为重要性采样的原因)
我们可以给积分里面上下乘以一个 q(X),就可以变换成关于 q q q 求另一个表达式的期望
E p [ f ( X ) ] = ∫ X p ( X ) f ( X ) d X = ∫ X q ( X ) p ( X ) q ( X ) f ( X ) d X = E q [ p ( X ) q ( X ) f ( X ) ] \mathbb{E}_p[f(X)] = \int_X p(X)f(X) dX=\int_X q(X) \frac{p(X)}{q(X)}f(X) dX= \mathbb{E}_q[\frac{p(X)}{q(X)}f(X)] Ep[f(X)]=∫Xp(X)f(X)dX=∫Xq(X)q(X)p(X)f(X)dX=Eq[q(X)p(X)f(X)]
由于 p , q , f p,q,f p,q,f 的值我们都是可以计算的,假设 q q q 也可以正常采样,那么这个期望是可以求的。
真的有用?
我们不妨取  
     
      
       
       
         q 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
      
        q(X) 
       
      
    q(X) 和  
     
      
       
       
         ∣ 
        
       
         p 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
         f 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
         ∣ 
        
       
      
        |p(X)f(X)| 
       
      
    ∣p(X)f(X)∣ 完美匹配,即  
     
      
       
       
         q 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
         = 
        
       
         0.5 
        
       
         , 
        
       
            
        
       
         X 
        
       
         = 
        
        
        
          x 
         
        
          i 
         
        
       
         , 
        
       
           
        
       
         ∀ 
        
       
         i 
        
       
      
        q(X) = 0.5, \ \ X=x_i,\ \forall i 
       
      
    q(X)=0.5,  X=xi, ∀i
 然后我们关于  
     
      
       
       
         q 
        
       
      
        q 
       
      
    q 采样,求  
     
      
       
        
         
         
           p 
          
         
           ( 
          
         
           X 
          
         
           ) 
          
         
         
         
           q 
          
         
           ( 
          
         
           X 
          
         
           ) 
          
         
        
       
         f 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
      
        \frac{p(X)}{q(X)}f(X) 
       
      
    q(X)p(X)f(X) 的期望
| q ( X ) q(X) q(X) | 0.5 | 0.5 | 
|---|---|---|
| p ( X ) q ( X ) f ( X ) \frac{p(X)}{q(X)}f(X) q(X)p(X)f(X) | 0.18 | 0.18 | 
好了,你随便从  
      
       
        
        
          q 
         
        
       
         q 
        
       
     q 采,能和理论值不一样算我输
 
 无论怎么取,我们估计的期望  
     
      
       
        
         
         
           E 
          
         
           ^ 
          
         
        
          q 
         
        
       
         [ 
        
        
         
         
           p 
          
         
           ( 
          
         
           X 
          
         
           ) 
          
         
         
         
           q 
          
         
           ( 
          
         
           X 
          
         
           ) 
          
         
        
       
         f 
        
       
         ( 
        
       
         X 
        
       
         ) 
        
       
         ] 
        
       
         = 
        
       
         0.18 
        
       
         ∗ 
        
       
         0.5 
        
       
         + 
        
       
         0.18 
        
       
         ∗ 
        
       
         0.5 
        
       
         = 
        
       
         0.18 
        
       
      
        \mathbb{\hat{E}}_q[\frac{p(X)}{q(X)}f(X)] =0.18 * 0.5 + 0.18 * 0.5 = 0.18 
       
      
    E^q[q(X)p(X)f(X)]=0.18∗0.5+0.18∗0.5=0.18 和理论值完美符合。
重要性采样真的是有用的。不过这只是一个极端的例子,实际上要取这样的一个 q q q 也并不是很容易,还是要到具体领域问题里面具体分析。










