自编码器
观测样本 $x\to$ 隐含变量 $z\to$ 生成样本 $\hat x$
VAE(Variational Auto-Encoder)
$q(z \vert x)$变分函数代替后验概率$p(z \vert x)$,$q(z \vert x)$越接近$p(z \vert x)$,则$KL(q(z \vert x) \Vert p(z \vert x))$越小。
由贝叶斯展开$KL(q(z \vert x) \Vert p(z \vert x))=\log{p(x)} - \int{q(z \vert x) \log{p(x \vert z)} dz} + KL(q(z \vert x) \Vert p(z))$$-\int{q(z \vert x) \log{p(x \vert z)} dz}=-E_{q(z \vert x)}\log p(x \vert z)=H(x,\hat x)$且$\log{p(x)}$确定,
所以损失函数设计为$loss=H(x,\hat x)+KL(q(z \vert x) \Vert p(z)))$假设x每一维特征都符合正态分布,计算x的均值$\mu$和方差$\sigma$,并进行随机采样,此过程不可导。
所以使用重参数方法,从N(0,1)上随机采样$\epsilon$,计算$z=\mu+\sigma\cdot\epsilon$,采样结果$z\sim(\mu,\sigma)$可导。因为$q(z \vert x) \sim N(\mu,\sigma)$,$p(z) \sim N(0,1)$,所以$KL(q(z \vert x) \Vert p(z)))=KL(N(\mu,\sigma) \Vert N(0,1))$
由$KL(p1 \Vert p2)=-\frac{1}{2}\sum\limits_{i=1}^n[\log \frac{\sigma1^2}{\sigma2^2}-\frac{\sigma1^2}{\sigma2^2}-\frac{(\mu1-\mu2)^2}{\sigma2^2}+1]$
得$KL(q(z \vert x) \Vert p(z)))=-\frac{1}{2}\sum\limits_{i=1}^n(\log\sigma^2 - \sigma^2 - \mu^2 + 1)$
β-VAE(Disentangled VAE)
z的各维特征解耦
$loss = H(x,\hat x) + \beta KL(q(z \vert x) \Vert p(z))),\beta>1$
用信息瓶颈来解释,将$\beta$值设为一个较大值,减少$q(z \vert x)$和$p(z)$的互信息, 剔除了$q(z \vert x)$中对于重建无用的或者说是弱相关的信息,达到各维特征解耦的目的
β-TCVAE(Total Correlation Variational Auto-Encoder)
效果优于β-VAE
拆解$KL(q(z \vert x) \Vert p(z)))$
\(\begin{align}KL(q(z \vert x) \Vert p(z))) &= KL(q(z,x)\Vert q(z)p(x)),(1)\\\ &+KL(q(z)\Vert\prod_j q(z_j)),(2)\\\ &+\sum_j KL(q(z_j)\Vert p(z_j)),(3)\end{align}\)第一项是索引编码互信息(index-code MI),与数据变量和潜变量之间的互信息相关
第二项是全相关(total correlation),潜变量空间中变量之间的相互依赖程度
第三项维度KL散度(dimension-wise KL),每个潜变量的维度与先验潜变量的维度的偏离损失函数设计为$loss = H(x,\hat x)+\alpha(1)+\beta(2)+\gamma(3)$ 将$\beta$值设为一个较大值,$(2)$会向0收缩,达到各维特征解耦的目的
文档信息
- 本文作者:Weikang Yu
- 本文链接:https://AccelYu.github.io/2020/08/01/nn_model03/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)