- 引言
- 回顾:基于平均场假设的变分推断
- 经典变分推断的问题
 
- 随机梯度变分推断的求解过程
 
上一节介绍了基于平均场假设的变分推断与广义EM算法的关系,本节将介绍通过随机梯度的思想实现变分推断。
回顾:基于平均场假设的变分推断基于平均场假设的变分推断通常称为经典变分推断(Classical Variational Inference)。其核心自然是 平均场假设:将隐变量 Z \mathcal Z Z的概率分布 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)看做 M \mathcal M M个独立的子概率分布: Q ( Z ) = ∏ i = 1 M Q i ( Z ( i ) ) \mathcal Q(\mathcal Z) = \prod_{i=1}^{\mathcal M} \mathcal Q_i(\mathcal Z^{(i)}) Q(Z)=i=1∏MQi(Z(i)) 其迭代过程的思想是坐标上升法(Coordinate Ascent):
- 求解 Q j ( Z ( j ) ) \mathcal Q_j(\mathcal Z^{(j)}) Qj(Z(j)),固定除 Q j ( Z ( j ) ) \mathcal Q_j(\mathcal Z^{(j)}) Qj(Z(j))外的所有分布,并将求解出的 Q ^ i ( Z ( i ) ) \hat {\mathcal Q}_i(\mathcal Z^{(i)}) Q^i(Z(i))替换原始的 Q j ( Z ( j ) ) \mathcal Q_j(\mathcal Z^{(j)}) Qj(Z(j)): Q ^ j ( Z ( j ) ) = arg  max  Q j ( Z ( j ) ) { − K L [ ϕ ^ ( X , Z ( j ) ) ∣ ∣ Q j ( Z ( j ) ) ] } Q ( Z ) = Q 1 ( Z ( 1 ) ) × ⋯ × Q ^ j ( Z ( j ) ) × ⋯ × Q M ( Z ( M ) ) \hat {\mathcal Q}_j (\mathcal Z^{(j)}) = \mathop{\arg\max}\limits_{\mathcal Q_j(\mathcal Z^{(j)})} \left\{-\mathcal K\mathcal L \left[\hat \phi (\mathcal X,\mathcal Z^{(j)}) || \mathcal Q_j(\mathcal Z^{(j)})\right]\right\} \\ \mathcal Q(\mathcal Z) = \mathcal Q_1(\mathcal Z^{(1)}) \times \cdots \times \hat {\mathcal Q}_j(\mathcal Z^{(j)}) \times \cdots\times \mathcal Q_{\mathcal M}(\mathcal Z^{(\mathcal M)}) Q^j(Z(j))=Qj(Z(j))argmax{−KL[ϕ^(X,Z(j))∣∣Qj(Z(j))]}Q(Z)=Q1(Z(1))×⋯×Q^j(Z(j))×⋯×QM(Z(M))
- 重复上述步骤,最终第一次迭代结果得到如下形式: Q ( Z ) = Q ^ 1 ( Z ( 1 ) ) × ⋯ × Q ^ M ( Z ( M ) ) \mathcal Q(\mathcal Z) = \hat {\mathcal Q}_1(\mathcal Z^{(1)}) \times \cdots \times \hat {\mathcal Q}_{\mathcal M}(\mathcal Z^{(\mathcal M)}) Q(Z)=Q^1(Z(1))×⋯×Q^M(Z(M))
- 继续迭代,直到 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)结果稳定且收敛。
虽然通过坐标上升法能够近似求解隐变量 Z \mathcal Z Z的最优后验概率分布 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X),但 经典变分推断 的问题也是显而易见的:平均场假设这个假设本身过于苛刻。
平均场假设要保证隐变量各分组之间相互独立。而隐变量本身就是基于真实情况人为定义的变量。 实际情况中,定义的隐变量满足平均场假设是极为困难的,因此,经典变分推断基本无法使用于真实任务。
至此,我们在近似求解后验概率分布 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X),就需要对 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)整体进行求解。 本节将从梯度角度对 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)进行求解。
随机梯度变分推断的求解过程回顾变分推断的推导过程,基于隐变量 Z \mathcal Z Z的最优近似分布 Q ^ ( Z ) \hat {\mathcal Q}(\mathcal Z) Q^(Z) 可进行如下表示: Q ^ ( Z ) = arg  max  Q ( Z ) L [ Q ( Z ) ] ⇒ Q ^ ( Z ) ≈ P ( Z ∣ X ) L [ Q ( Z ) ] = ∫ Z Q ( Z ) ⋅ log  [ P ( X , Z ) Q ( Z ) ] d Z \hat {\mathcal Q}(\mathcal Z) = \mathop{\arg\max}\limits_{\mathcal Q(\mathcal Z)} \mathcal L[\mathcal Q(\mathcal Z)] \Rightarrow \hat {\mathcal Q}(\mathcal Z) \approx P(\mathcal Z \mid \mathcal X) \\ \mathcal L[\mathcal Q(\mathcal Z)] = \int_{\mathcal Z} \mathcal Q(\mathcal Z) \cdot \log \left[\frac{P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z)}\right] d \mathcal Z Q^(Z)=Q(Z)argmaxL[Q(Z)]⇒Q^(Z)≈P(Z∣X)L[Q(Z)]=∫ZQ(Z)⋅log[Q(Z)P(X,Z)]dZ 既然是 通过调整 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)的最值,使得 L [ Q ( Z ) ] \mathcal L[\mathcal Q(\mathcal Z)] L[Q(Z)]达到最大,因此可以尝试使用 梯度上升法(Gradient Ascent) 进行求解。
这里需要进行一些假设: 既然要求解最优的 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z),根据梯度上升法,自然要求解 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)的梯度。
而 
     
      
       
       
         Q 
        
       
         ( 
        
       
         Z 
        
       
         ) 
        
       
      
        \mathcal Q(\mathcal Z) 
       
      
    Q(Z)本身是一个分布,也可以看作成一个概率模型。而概率模型本身可以看作是关于该模型参数的一个函数。因此:定义概率模型 
       
        
         
         
           Q 
          
         
           ( 
          
         
           Z 
          
         
           ) 
          
         
        
          \mathcal Q(\mathcal Z) 
         
        
      Q(Z)的模型参数为 
       
        
         
         
           ϕ 
          
         
        
          \phi 
         
        
      ϕ,最终将求解 
      
       
        
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ) 
         
        
       
         \mathcal Q(\mathcal Z) 
        
       
     Q(Z)的梯度转化为求解模型参数 
       
        
         
         
           ϕ 
          
         
        
          \phi 
         
        
      ϕ的梯度:  
     
      
       
       
         Q 
        
       
         ( 
        
       
         Z 
        
       
         ∣ 
        
       
         ϕ 
        
       
         ) 
        
       
      
        \mathcal Q(\mathcal Z \mid \phi) 
       
      
    Q(Z∣ϕ)写法是保留之前对概率模型的表达。例如 
     
      
       
       
         P 
        
       
         ( 
        
       
         X 
        
       
         ∣ 
        
       
         θ 
        
       
         ) 
        
       
      
        P(\mathcal X \mid \theta) 
       
      
    P(X∣θ),对应的 
     
      
       
       
         L 
        
       
         [ 
        
       
         Q 
        
       
         ( 
        
       
         Z 
        
       
         ) 
        
       
         ] 
        
       
      
        \mathcal L[\mathcal Q(\mathcal Z)] 
       
      
    L[Q(Z)]公式也需要进行修改。  
      
       
        
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ) 
         
        
          → 
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
         
         
          
           
            
             
             
               L 
              
             
               [ 
              
             
               Q 
              
             
               ( 
              
             
               Z 
              
             
               ) 
              
             
               ] 
              
             
            
           
           
            
             
              
             
               = 
              
              
              
                ∫ 
               
               
               
                 Z 
                
               
                 ∣ 
                
               
                 ϕ 
                
               
              
             
               Q 
              
             
               ( 
              
             
               Z 
              
             
               ∣ 
              
             
               ϕ 
              
             
               ) 
              
             
               ⋅ 
              
             
               log 
              
             
                
              
              
              
                [ 
               
               
                
                
                  P 
                 
                
                  ( 
                 
                
                  X 
                 
                
                  , 
                 
                
                  Z 
                 
                
                  ) 
                 
                
                
                
                  Q 
                 
                
                  ( 
                 
                
                  Z 
                 
                
                  ∣ 
                 
                
                  ϕ 
                 
                
                  ) 
                 
                
               
              
                ] 
               
              
             
               d 
              
             
               Z 
              
             
            
           
          
          
           
            
             
            
           
           
            
             
              
             
               = 
              
              
              
                E 
               
               
               
                 Q 
                
               
                 ( 
                
               
                 Z 
                
               
                 ∣ 
                
               
                 ϕ 
                
               
                 ) 
                
               
              
              
              
                [ 
               
              
                log 
               
              
                 
               
              
                P 
               
              
                ( 
               
              
                X 
               
              
                , 
               
              
                Z 
               
              
                ) 
               
              
                − 
               
              
                log 
               
              
                 
               
              
                Q 
               
              
                ( 
               
              
                Z 
               
              
                ∣ 
               
              
                ϕ 
               
              
                ) 
               
              
                ] 
               
              
             
            
           
          
          
           
            
             
            
           
           
            
             
              
             
               = 
              
             
               L 
              
             
               ( 
              
             
               ϕ 
              
             
               ) 
              
             
            
           
          
         
        
       
         \mathcal Q(\mathcal Z) \to \mathcal Q(\mathcal Z \mid \phi) \\ \begin{aligned} \mathcal L[\mathcal Q(\mathcal Z)] & = \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \log \left[\frac{P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z \mid \phi)}\right] d\mathcal Z \\ & = \mathbb E_{\mathcal Q(\mathcal Z \mid \phi)} \left[\log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] \\ & = \mathcal L(\phi) \end{aligned} 
        
       
     Q(Z)→Q(Z∣ϕ)L[Q(Z)]=∫Z∣ϕQ(Z∣ϕ)⋅log[Q(Z∣ϕ)P(X,Z)]dZ=EQ(Z∣ϕ)[logP(X,Z)−logQ(Z∣ϕ)]=L(ϕ) 与此同时, 
     
      
       
       
         L 
        
       
         [ 
        
       
         Q 
        
       
         ( 
        
       
         Z 
        
       
         ) 
        
       
         ] 
        
       
      
        \mathcal L[\mathcal Q(\mathcal Z)] 
       
      
    L[Q(Z)]中的变量由 
     
      
       
       
         Q 
        
       
         ( 
        
       
         Z 
        
       
         ) 
        
       
      
        \mathcal Q(\mathcal Z) 
       
      
    Q(Z)变为 
     
      
       
       
         ϕ 
        
       
      
        \phi 
       
      
    ϕ,即 
      
       
        
        
          L 
         
        
          ( 
         
        
          ϕ 
         
        
          ) 
         
        
       
         \mathcal L(\phi) 
        
       
     L(ϕ)。从而将求解最优 
      
       
        
         
         
           Q 
          
         
           ^ 
          
         
        
          ( 
         
        
          Z 
         
        
          ) 
         
        
       
         \hat {\mathcal Q}(\mathcal Z) 
        
       
     Q^(Z)转化为求解最优参数 
      
       
        
         
         
           ϕ 
          
         
           ^ 
          
         
        
       
         \hat \phi 
        
       
     ϕ^:  
      
       
        
         
         
           ϕ 
          
         
           ^ 
          
         
        
          = 
         
         
          
          
            arg 
           
          
             
           
          
            max 
           
          
             
           
          
         
           ϕ 
          
         
        
          L 
         
        
          ( 
         
        
          ϕ 
         
        
          ) 
         
        
       
         \hat \phi = \mathop{\arg\max}\limits_{\phi} \mathcal L(\phi) 
        
       
     ϕ^=ϕargmaxL(ϕ) 对梯度 
     
      
       
        
        
          ∇ 
         
        
          ϕ 
         
        
       
         L 
        
       
         ( 
        
       
         ϕ 
        
       
         ) 
        
       
      
        \nabla_{\phi}\mathcal L(\phi) 
       
      
    ∇ϕL(ϕ)进行表示:  
      
       
        
         
          
           
            
             
             
               ∇ 
              
             
               ϕ 
              
             
            
              L 
             
            
              ( 
             
            
              ϕ 
             
            
              ) 
             
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∇ 
              
             
               ϕ 
              
             
             
             
               ∫ 
              
              
              
                Z 
               
              
                ∣ 
               
              
                ϕ 
               
              
             
            
              Q 
             
            
              ( 
             
            
              Z 
             
            
              ∣ 
             
            
              ϕ 
             
            
              ) 
             
            
              ⋅ 
             
            
              log 
             
            
               
             
             
             
               [ 
              
              
               
               
                 P 
                
               
                 ( 
                
               
                 X 
                
               
                 , 
                
               
                 Z 
                
               
                 ) 
                
               
               
               
                 Q 
                
               
                 ( 
                
               
                 Z 
                
               
                 ∣ 
                
               
                 ϕ 
                
               
                 ) 
                
               
              
             
               ] 
              
             
            
              d 
             
            
              Z 
             
            
           
          
         
         
          
           
            
           
          
          
           
            
             
            
              = 
             
             
             
               ∇ 
              
             
               ϕ 
              
             
             
             
               ∫ 
              
              
              
                Z 
               
              
                ∣ 
               
              
                ϕ 
               
              
             
            
              Q 
             
            
              ( 
             
            
              Z 
             
            
              ∣ 
             
            
              ϕ 
             
            
              ) 
             
            
              ⋅ 
             
             
             
               [ 
              
             
               log 
              
             
                
              
             
               P 
              
             
               ( 
              
             
               X 
              
             
               , 
              
             
               Z 
              
             
               ) 
              
             
               − 
              
             
               log 
              
             
                
              
             
               Q 
              
             
               ( 
              
             
               Z 
              
             
               ∣ 
              
             
               ϕ 
              
             
               ) 
              
             
               ] 
              
             
            
              d 
             
            
              Z 
             
            
           
          
         
        
       
         \begin{aligned} \nabla_{\phi}\mathcal L(\phi) & = \nabla_{\phi} \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \log \left[\frac{P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z \mid \phi)}\right] d\mathcal Z \\ & = \nabla_{\phi} \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z \end{aligned} 
        
       
     ∇ϕL(ϕ)=∇ϕ∫Z∣ϕQ(Z∣ϕ)⋅log[Q(Z∣ϕ)P(X,Z)]dZ=∇ϕ∫Z∣ϕQ(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ 根据牛顿-莱布尼兹公式,将积分号 
     
      
       
       
         ∫ 
        
       
      
        \int 
       
      
    ∫与梯度 
     
      
       
       
         ∇ 
        
       
      
        \nabla 
       
      
    ∇进行交换: 乘法求导~  
      
       
        
         
         
           ∫ 
          
          
          
            Z 
           
          
            ∣ 
           
          
            ϕ 
           
          
         
         
         
           ∇ 
          
         
           ϕ 
          
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          ⋅ 
         
         
         
           [ 
          
         
           log 
          
         
            
          
         
           P 
          
         
           ( 
          
         
           X 
          
         
           , 
          
         
           Z 
          
         
           ) 
          
         
           − 
          
         
           log 
          
         
            
          
         
           Q 
          
         
           ( 
          
         
           Z 
          
         
           ∣ 
          
         
           ϕ 
          
         
           ) 
          
         
           ] 
          
         
        
          d 
         
        
          Z 
         
        
          + 
         
         
         
           ∫ 
          
          
          
            Z 
           
          
            ∣ 
           
          
            ϕ 
           
          
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          ⋅ 
         
         
         
           ∇ 
          
         
           ϕ 
          
         
         
         
           [ 
          
         
           log 
          
         
            
          
         
           P 
          
         
           ( 
          
         
           X 
          
         
           , 
          
         
           Z 
          
         
           ) 
          
         
           − 
          
         
           log 
          
         
            
          
         
           Q 
          
         
           ( 
          
         
           Z 
          
         
           ∣ 
          
         
           ϕ 
          
         
           ) 
          
         
           ] 
          
         
        
          d 
         
        
          Z 
         
        
       
         \int_{\mathcal Z \mid \phi} \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right]d\mathcal Z + \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi}\left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z 
        
       
     ∫Z∣ϕ∇ϕQ(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ+∫Z∣ϕQ(Z∣ϕ)⋅∇ϕ[logP(X,Z)−logQ(Z∣ϕ)]dZ
观察第二项: ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ [ log  P ( X , Z ) − log  Q ( Z ∣ ϕ ) ] d Z \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi}\left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z ∫Z∣ϕQ(Z∣ϕ)⋅∇ϕ[logP(X,Z)−logQ(Z∣ϕ)]dZ:
- 由于 ϕ \phi ϕ是概率模型 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)的模型参数,而 P ( X , Z ) P(\mathcal X,\mathcal Z) P(X,Z)是 X , Z \mathcal X,\mathcal Z X,Z的联合概率分布,因此与 ϕ \phi ϕ无关。因此第二项可变化为: − ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ log  Q ( Z ∣ ϕ ) d Z = − ∫ Z ∣ ϕ 1 Q ( Z ∣ ϕ ) ⋅ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ Q ( Z ∣ ϕ ) d Z = − ∫ Z ∣ ϕ ∇ ϕ Q ( Z ∣ ϕ ) d Z \begin{aligned} & - \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) d\mathcal Z \\ & = -\int_{\mathcal Z \mid \phi} \frac{1}{\mathcal Q(\mathcal Z \mid \phi)} \cdot \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi)d\mathcal Z \\ & = - \int_{\mathcal Z \mid \phi} \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi)d\mathcal Z \end{aligned} −∫Z∣ϕQ(Z∣ϕ)⋅∇ϕlogQ(Z∣ϕ)dZ=−∫Z∣ϕQ(Z∣ϕ)1⋅Q(Z∣ϕ)⋅∇ϕQ(Z∣ϕ)dZ=−∫Z∣ϕ∇ϕQ(Z∣ϕ)dZ
- 再次使用牛顿-莱布尼兹公式,将梯度符号 ∇ \nabla ∇还原位置: − ∇ ϕ ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) d Z - \nabla_{\phi} \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) d\mathcal Z −∇ϕ∫Z∣ϕQ(Z∣ϕ)dZ
- 根据概率密度积分, 
      
       
        
         
         
           ∫ 
          
          
          
            Z 
           
          
            ∣ 
           
          
            ϕ 
           
          
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          d 
         
        
          Z 
         
        
          = 
         
        
          1 
         
        
       
         \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) d\mathcal Z = 1 
        
       
     ∫Z∣ϕQ(Z∣ϕ)dZ=1,第二项相当于对常数1求偏导,最后结果为0。即: 第二项被完整地消掉了~∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ [ log  P ( X , Z ) − log  Q ( Z ∣ ϕ ) ] d Z = − ∇ ϕ 1 = 0 \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi}\left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z = -\nabla_{\phi} 1 = 0 ∫Z∣ϕQ(Z∣ϕ)⋅∇ϕ[logP(X,Z)−logQ(Z∣ϕ)]dZ=−∇ϕ1=0
至此, 
     
      
       
        
        
          ∇ 
         
        
          ϕ 
         
        
       
         L 
        
       
         ( 
        
       
         ϕ 
        
       
         ) 
        
       
      
        \nabla_{\phi} \mathcal L(\phi) 
       
      
    ∇ϕL(ϕ)可表示为: 只剩下了第一项~  
      
       
        
         
         
           ∇ 
          
         
           ϕ 
          
         
        
          L 
         
        
          ( 
         
        
          ϕ 
         
        
          ) 
         
        
          = 
         
         
         
           ∫ 
          
          
          
            Z 
           
          
            ∣ 
           
          
            ϕ 
           
          
         
         
         
           ∇ 
          
         
           ϕ 
          
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          ⋅ 
         
         
         
           [ 
          
         
           log 
          
         
            
          
         
           P 
          
         
           ( 
          
         
           X 
          
         
           , 
          
         
           Z 
          
         
           ) 
          
         
           − 
          
         
           log 
          
         
            
          
         
           Q 
          
         
           ( 
          
         
           Z 
          
         
           ∣ 
          
         
           ϕ 
          
         
           ) 
          
         
           ] 
          
         
        
          d 
         
        
          Z 
         
        
       
         \nabla_{\phi} \mathcal L(\phi) = \int_{\mathcal Z \mid \phi} \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right]d\mathcal Z 
        
       
     ∇ϕL(ϕ)=∫Z∣ϕ∇ϕQ(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ 观察: 
     
      
       
        
        
          ∇ 
         
        
          ϕ 
         
        
       
         Q 
        
       
         ( 
        
       
         Z 
        
       
         ∣ 
        
       
         ϕ 
        
       
         ) 
        
       
      
        \nabla_{\phi}\mathcal Q(\mathcal Z \mid \phi) 
       
      
    ∇ϕQ(Z∣ϕ)它并不是概率分布,而是概率分布的梯度。因此没有办法将上式写成期望形式。 但是这里通过技巧 将 
     
      
       
       
         Q 
        
       
         ( 
        
       
         Z 
        
       
         ∣ 
        
       
         ϕ 
        
       
         ) 
        
       
      
        \mathcal Q(\mathcal Z \mid \phi) 
       
      
    Q(Z∣ϕ)还原出来: 可以自己反过来推一下~  
      
       
        
         
         
           ∇ 
          
         
           ϕ 
          
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          = 
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          ⋅ 
         
         
         
           ∇ 
          
         
           ϕ 
          
         
        
          log 
         
        
           
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
       
         \nabla_{\phi}\mathcal Q(\mathcal Z \mid \phi) = \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) 
        
       
     ∇ϕQ(Z∣ϕ)=Q(Z∣ϕ)⋅∇ϕlogQ(Z∣ϕ) 将上式带入, 
     
      
       
        
        
          ∇ 
         
        
          ϕ 
         
        
       
         L 
        
       
         ( 
        
       
         ϕ 
        
       
         ) 
        
       
      
        \nabla_{\phi} \mathcal L(\phi) 
       
      
    ∇ϕL(ϕ)可以表示为:  
      
       
        
         
         
           ∫ 
          
          
          
            Z 
           
          
            ∣ 
           
          
            ϕ 
           
          
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          ⋅ 
         
         
         
           ∇ 
          
         
           ϕ 
          
         
        
          log 
         
        
           
         
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
          ⋅ 
         
         
         
           [ 
          
         
           log 
          
         
            
          
         
           P 
          
         
           ( 
          
         
           X 
          
         
           , 
          
         
           Z 
          
         
           ) 
          
         
           − 
          
         
           log 
          
         
            
          
         
           Q 
          
         
           ( 
          
         
           Z 
          
         
           ∣ 
          
         
           ϕ 
          
         
           ) 
          
         
           ] 
          
         
        
          d 
         
        
          Z 
         
        
       
         \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z 
        
       
     ∫Z∣ϕQ(Z∣ϕ)⋅∇ϕlogQ(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ 可以将上述积分看作  
      
       
        
        
          Q 
         
        
          ( 
         
        
          Z 
         
        
          ∣ 
         
        
          ϕ 
         
        
          ) 
         
        
       
         \mathcal Q(\mathcal Z \mid \phi) 
        
       
     Q(Z∣ϕ)分布的期望形式:  
      
       
        
         
         
           ∇ 
          
         
           ϕ 
          
         
        
          L 
         
        
          ( 
         
        
          ϕ 
         
        
          ) 
         
        
          = 
         
         
         
           E 
          
          
          
            Q 
           
          
            ( 
           
          
            Z 
           
          
            ∣ 
           
          
            ϕ 
           
          
            ) 
           
          
         
         
         
           { 
          
          
          
            ∇ 
           
          
            ϕ 
           
          
         
           log 
          
         
            
          
         
           Q 
          
         
           ( 
          
         
           Z 
          
         
           ∣ 
          
         
           ϕ 
          
         
           ) 
          
         
           ⋅ 
          
         
           [ 
          
         
           log 
          
         
            
          
         
           P 
          
         
           ( 
          
         
           X 
          
         
           , 
          
         
           Z 
          
         
           ) 
          
         
           − 
          
         
           log 
          
         
            
          
         
           Q 
          
         
           ( 
          
         
           Z 
          
         
           ∣ 
          
         
           ϕ 
          
         
           ) 
          
         
           ] 
          
         
           } 
          
         
        
       
         \nabla_{\phi} \mathcal L(\phi) =\mathbb E_{\mathcal Q(\mathcal Z \mid \phi)}\left\{\nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) \cdot [\log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)]\right\} 
        
       
     ∇ϕL(ϕ)=EQ(Z∣ϕ){∇ϕlogQ(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]} 至此,将梯度 
     
      
       
        
        
          ∇ 
         
        
          ϕ 
         
        
       
         L 
        
       
         ( 
        
       
         ϕ 
        
       
         ) 
        
       
      
        \nabla_{\phi}\mathcal L(\phi) 
       
      
    ∇ϕL(ϕ)使用期望形式表示出来。后续可以使用蒙特卡洛采样方法对该期望进行近似求解。
至此,每求解一个 ∇ ϕ L ( ϕ ) \nabla_{\phi} \mathcal L(\phi) ∇ϕL(ϕ),都可以对 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)概率分布的模型参数 ϕ \phi ϕ 更新一次,以此类推。 最终可以近似得到概率模型 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)的最优模型参数 ϕ ^ \hat \phi ϕ^,从而求解概率模型 Q ( Z ∣ ϕ ^ ) \mathcal Q(\mathcal Z \mid \hat \phi) Q(Z∣ϕ^)。
下一节将介绍 随机梯度变分推断的问题及其他衍生方法。
相关参考: 机器学习-变分推断4(随机梯度变分推断-SGVI-1)

 
                 
    