变分贝叶斯、变分自编码与变分迁移

版权声明:本文为博主原创文章,欢迎大家交流 https://blog.csdn.net/he_min/article/details/80288450

目录

  • 变分法简介
  • 变分推断
  • 变分贝叶斯
  • 变分自编码
  • 变分与迁移 :heart:
  • 一些资料

变分法简介

变分法是研究依赖于某些未知函数的积分型泛函极值的一门科学。也就是求泛函极值的方法称为变分法

典型例子最速降线


两点之间的曲线方程定义为:

y = y ( x )

根据能量守恒定理:

m g y = 1 2 m v 2

质点的速度可以表示为:

v = d s d t = ( d x ) 2 + ( d y ) 2 d t = 1 + ( y ) 2 d x d t

对上述式子进行联立可得:

T = 0 x 1 1 + y 2 2 g y d x


泛函

上式的积分中给出的变量可以看作是依赖于未知函数及未知函数导数的变量,未知函数及其导数起着自变量的作用,这样的自变量称为独立函数或自变函数。简单地说,这种依赖于独立函数的函数,或者说以函数为自变量的函数,就称为泛函。以积分形式出现的泛函称为积分型泛函或积分泛函。这里的独立函数 y 称为宗量。


变分

对于任意 x [ x 0 , x 1 ] 可取函数 y ( x ) 与另一可取函数 y 0 ( x ) 之差 y ( x ) y 0 ( x ) 称为函数 y ( x ) y 0 ( x ) 处的变分或函数的变分,记作 δ y

泛函的宗量 y ( x ) 与另一宗量 y 0 ( x ) 之差 y ( x ) y 0 ( x ) 称为宗量 y ( x ) y 0 ( x ) 处的变分。

若泛函 J [ y ( x ) ] y = y ( x ) 上达到极值,则它在 y = y ( x ) 上的变分为0.

  • 变分法提供了有限元方法的数学基础,它是求解边界值问题的强有力工具。它们也在材料学中研究材料平衡中大量使用。
  • 变分一词用于所有极值泛函问题。微分几何中的测地线的研究是很显然的变分性质的领域。
  • 最优控制的理论是变分法的一个推广。

变分推断

log P ( x ) = log P ( x , z ) log P ( z | x )

                  = log P ( x , z ) q ( z ) log P ( z | x ) q ( z )

                  = log P ( x , z ) log q ( z ) log P ( z | x ) q ) ( z )

                  = log P ( x , z ) log q ( z ) + log q ) ( z ) P ( z | x )

等式两边同时对 q ( z ) 做期望,即,

q ( z ) log P ( z ) d z = q ( z ) log P ( x , z ) d z q ( z ) log q ( z ) d z

                                 + q ( z ) log q ) ( z ) P ( z | x )


由于 q ( z ) P ( z ) 无关,所以 q ( z ) log P ( x ) = log P ( x ) ,原式最终变为:

log P ( x ) = q ( z ) log P ( x , z ) d z q ( z ) log q ( z ) d z E L O B

                                 + q ( z ) log q ) ( z ) P ( z | x ) K L

对于一类数据 x ,对它们进行编码后得到的特征数据往往服从某种分布 q ( z ) z 为隐变量, q ( z ) 这个隐含分布我们无法得知,但是我们可以通过现有数据 X 来推断出 q ( z ) ,即 P ( z | x ) 。KL散度是用来衡量两个分布之间的距离,当距离为0时,表示这两个分布完全一致。 P ( x ) 不变,那么想让 K L ( q ( z ) | | P ( z | x ) ) 越小,即让 E L O B 越大,反之亦然。因为 K L 0 ,所以 log P ( x ) E L O B 推到过程


变分贝叶斯

EM算法回顾

  • θ 自主规定个初值;
  • 根据给定观测数据和当前的参数 θ ,求未观测数据 z 的条件概率分布的期望;
  • 上一步中 z 已经求出来了,于是根据极大似然估计求最优的 θ
  • 因为第二步和第三步的结果可能不是最优的,所以重复第二步和第三步,直到收敛.

而上面的第二步被称作E步(求期望),第三步被称作M步(求极大化),于是EM算法就在不停的进行“猜测”与“反思”!


变分贝叶斯(Variational Bayes)是广义化的EM算法,是一类用于贝叶斯估计和机器学习领域中近似计算复杂积分的技术。它主要应用于复杂的统计模型中,这种模型一般包括三类变量:观测变量(observed variables, data),未知参数(parameters)和潜变量(latent variables)。在贝叶斯推断中,参数和潜变量统称为不可观测变量(unobserved variables)。变分贝叶斯方法主要是两个目的:

  • 近似不可观测变量的后验概率,以便通过这些变量作出统计推断。近似求 P ( Z | D ) .

  • 对一个特定的模型,给出观测变量的边缘似然函数(证据)的下界。主要用于模型的选择,认为模型的边缘似然值越高,则模型对数据拟合程度越好。

对于第一个目的,蒙特卡洛模拟,特别是用Gibbs取样的MCMC方法,可以近似计算复杂的后验分布,能很好地应用到贝叶斯统计推断。


重新考虑一个问题:1)有一组观测数据 D ,并且已知模型的形式,求参数与潜变量 Z = Z 1 , . . . , Z n 的后验分布: P ( Z | D )

正如上文所描述的后验概率的形式通常是很复杂的,对于一种算法如果不能在多项式时间内求解,往往不是我们所考虑的。因而可用 Q ( Z ) 来近似 P ( Z | D ) ,即 P ( Z | D ) Q ( Z ) 。那么:

  • 如何度量 Q ( Z ) P ( Z | D ) 之间的差异性?

  • 如何得到简单的Q(Z)?


(1) 相对熵(Kullback-Leibler散度)

(2)平均场理论


KL散度

定义:两个概率密度函数为 p ( x ) q ( x ) 之间的相对熵定义为

D K L ( p | | q ) = x p ( x ) log p ( x ) q ( x )

KL散度性质:

  • D K L ( p | | q ) = D K L ( q | | p )
  • D K L ( p | | q ) 0 , p = q 时为0
  • 满足三角不等式

Q 分布与 P 分布的KL散度为:

D K L ( Q | | P ) = Z Q ( Z ) log Q ( Z ) P ( Z , D ) + log P ( D )


L ( Q ) = Z Q ( Z ) log Q ( Z ) P ( Z , D ) ,对数证据 log P ( D ) 被相应的 Q 所固定,为了使得KL散度最小,则只要极大化 L ( Q ) 。通过选择合适的 Q ,使 L ( Q ) 便于计算和求极值。这样就可以得到后验 P ( Z | D ) 的近似解析表达式和证据下界 L ( Q ) ,又称为变分自由能:

L ( Q ) = E Q [ log P ( Z , D ) ] + H ( Q )


平均场理论

根据平均场理论,假设每个隐变量之间服从独立同分布,变分分布 Q ( Z ) 可以通过参数和潜在变量的划分,比如将 Z 划分为 Z 1 . . . Z M

Q ( Z ) = i = 1 M q ( Z i | D )

注意这里并非一个不可观测变量一个划分,而应该根据实际情况做决定。


变分贝叶斯

贝叶斯的目的是求取后验概率,NB是这样的:假设已知 P ( A ) P ( A | B ) P ( B ) ,可以根据贝叶斯公式求得后验概率 P ( B | A )

P ( B | A ) = P ( A | B ) P ( B ) P ( A )

NB中的先验概率分布以及各种概率分布都比较好求,因此可以直接利用贝叶斯公式。然而在有些情况下,我们不可能获取所有事件的数据,如事件B,这就是含有隐藏变量的情况。或者后验概率很难求解。在这些情况下,就无法根据贝叶斯公式直接求的后验概率。特别是后验概率分布未知且难以求解的情况下,可以利用变分贝叶斯求解。


利用函数 Q 来逼近复杂的后验概率。如何找到 Q 就是变分问题。在引入 Q 函数后的贝叶斯公式就是一个泛函。

具体描述如下:
假设有已知数据 X ,求隐含变量 Z 的后验概率 P ( Z | X ) ,变分法就是使用 Q ( Z ) 来逼近 P ( Z | X ) 。那么就可以用KL散度来度量 Q ( Z ) P ( Z ) 的相似度,学习的目标就是最小化KL散度,即:

log P ( X ) = d K L ( Q ( Z ) | | P ( Z | X ) ) Q ( Z ) log Q ( Z ) P ( Z , X ) d z

                    = D K L ( Q ( Z ) | | P ( Z | X ) ) + L ( Q ( Z ) )

其中 L ( Q ) 称为变分自由能。由上式可以看出 log P ( X ) 是由KL散度和变分自由能构成的,因此为了最小化KL散度,只需最大化变分自由能 L ( Q )


变分自编码

在变分贝叶斯中,使用的是平均场理论,通过优化 L ( Q ( Z ) ) 来求解 Q ( Z ) 。平均场理论和变分自编码是求解 Q ( Z ) 的不同方法。

变分自编码中,假设 Q ( Z ) 为高斯分布, P ( Z ) 为标准正太分布。这样一来要做的事情就是求解出高斯分布的均值和方差。文中直接将高斯分布的均值和方差作为网络的一部分输出。由于整个变分贝叶斯网络的结构是由其损失函数决定的,变分自编码的损失函数推导过程如下。


由变分贝叶斯的公式可以得出:

L ( Q ) = Q ( Z ) log Q ( Z ) P ( Z , X ) d x

在利用

P ( Z , X ) = P ( X | Z ) P ( Z )

得到:

L ( Q ) = Q ( Z ) log Q ( Z ) P ( Z ) + Q ( Z ) P ( X | Z ) d Z

根据DL散度和连续概率分布期望求解公式,最终有:

L ( Q ) = D K L ( Q ( Z ) | | P ( Z ) ) + E Q [ P ( X | Z ) ]

该论文假设 P ( Z ) 为标准正太分布, Q ( Z ) 为高斯分布,可以计算出:

D K L ( Q ( Z ) | | P ( Z ) ) = 1 2 j = 1 J ( 1 + log ( δ j 2 ) u j 2 δ j 2 )


其中 J 为隐含变量 Z 的维数,而

E Q [ P ( X | Z ) ]

的意思是在知道 Q ( Z ) Z 的情况下求 X 的期望,既然 Q ( Z ) Z 已经知道了,那么可以用采样算法求出采样出 X

论文中直接将自编码机编码层的最后一层作为 Q ( Z ) 的均值和方差,这边就可以计算上式等号右边第一项的损失函数。在得到均值和方差后,利用采样算法采样出 Z ,然后 Z 作为解码网络的输入,解码网络输出 X ,然后计算 X 的重构误差最大化

论文中为了使整个网络可导,使用了可导的蒙特卡罗采样算法,公式如下:

z = u + 0.5 δ e

其中随机数 e 满足 [ 0 , 1 ] 的均匀分布。


VAE的图模型。我们能观测到的数据是 x ,而 x 由隐变量 z 产生,由 z x 是生成模型 p θ ( x | z ) ,从自编码器(auto-encoder)的角度来看,就是解码器;而由 x z 是识别模型(recognition model) q ϕ ( z | x ) ,类似于自编码器的编码器。


变分与迁移


  • Variational Recurrent Adversarial Deep Domain Adaptation

解决的问题

语音识别过程中训练和测试数据之间分布适配。

步骤

  1. 在源域和目标域数据上训练变分编码器,以学习语音的隐含表示。

    1. 修改隐含特征来迁移与语音识别无关的属性,以使用部分与目标领域更加分布相似的数据扩充带标记的源域数据。

数据增强方法

80%


  • 部分属性替换法
    替换一个领域中部分属性,替换为另一个领域中的部分属性。设 { z s r c i } i = 1 N j 为源领域中编码层的希望修改的隐含知识表示。 μ s r c 为源领域中部分属性潜在的隐含表示, μ t a r 为目标领域中部分属性潜在的隐含表示。

修改方法可以表示为:

{ z ^ s r c i } i = 1 N j = { z s r c i } i = 1 N j μ s r c + μ t a r


Latent Nuisance Subspace Perturbation

The fundamental assumption of this work is that VAEs learn to use orthogonal subspaces to model linguistic factors and nuisance factors respectively. Hence, we are able to modify the nuisance attribute without changing the original linguistic attribute by only modifying factors in the latent nuisance subspace, but keeping factors in the latent linguistic subspace intact.

  • Determining the latent nuisance subspace with PCA
  • Soft latent nuisance subspace perturbation

推导过程

变分自编码

参考程序1

参考程序2

变分推理

猜你喜欢

转载自blog.csdn.net/he_min/article/details/80288450