9 Dec

变分自编码器(八):估计样本概率密度

在本系列的前面几篇文章中,我们已经从多个角度来理解了VAE,一般来说,用VAE是为了得到一个生成模型,或者是做更好的编码模型,这都是VAE的常规用途。但除了这些常规应用外,还有一些“小众需求”,比如用来估计$x$的概率密度,这在做压缩的时候通常会用到。

本文就从估计概率密度的角度来了解和推导一下VAE模型。

两个问题

所谓估计概率密度,就是在已知样本$x_1,x_2,\cdots,x_N\sim \tilde{p}(x)$的情况下,用一个待定的概率密度簇$q_{\theta}(x)$去拟合这批样本,拟合的目标一般是最小化负对数似然:
\begin{equation}\mathbb{E}_{x\sim \tilde{p}(x)}[-\log q_{\theta}(x)] = -\frac{1}{N}\sum_{i=1}^N \log q_{\theta}(x_i)\label{eq:mle}\end{equation}

点击阅读全文...

18 Jul

用变分推断统一理解生成模型(VAE、GAN、AAE、ALI)

前言:我小学开始就喜欢纯数学,后来也喜欢上物理,还学习过一段时间的理论物理,直到本科毕业时,我才慢慢进入机器学习领域。所以,哪怕在机器学习领域中,我的研究习惯还保留着数学和物理的风格:企图从最少的原理出发,理解、推导尽可能多的东西。这篇文章是我这个理念的结果之一,试图以变分推断作为出发点,来统一地理解深度学习中的各种模型,尤其是各种让人眼花缭乱的GAN。本文已经挂到arxiv上,需要读英文原稿的可以移步到《Variational Inference: A Unified Framework of Generative Models and Some Revelations》

下面是文章的介绍。其实,中文版的信息可能还比英文版要稍微丰富一些,原谅我这蹩脚的英语...

摘要:本文从一种新的视角阐述了变分推断,并证明了EM算法、VAE、GAN、AAE、ALI(BiGAN)都可以作为变分推断的某个特例。其中,论文也表明了标准的GAN的优化目标是不完备的,这可以解释为什么GAN的训练需要谨慎地选择各个超参数。最后,文中给出了一个可以改善这种不完备性的正则项,实验表明该正则项能增强GAN训练的稳定性。

近年来,深度生成模型,尤其是GAN,取得了巨大的成功。现在我们已经可以找到数十个乃至上百个GAN的变种。然而,其中的大部分都是凭着经验改进的,鲜有比较完备的理论指导。

本文的目标是通过变分推断来给这些生成模型建立一个统一的框架。首先,本文先介绍了变分推断的一个新形式,这个新形式其实在博客以前的文章中就已经介绍过,它可以让我们在几行字之内导出变分自编码器(VAE)和EM算法。然后,利用这个新形式,我们能直接导出GAN,并且发现标准GAN的loss实则是不完备的,缺少了一个正则项。如果没有这个正则项,我们就需要谨慎地调整超参数,才能使得模型收敛。

点击阅读全文...

27 Nov

这是一篇“散文”,我们来谈一下有着千丝万缕联系的三个东西:变分自编码器、信息瓶颈、正态分布。

众所周知,变分自编码器是一个很经典的生成模型,但实际上它有着超越生成模型的含义;而对于信息瓶颈,大家也许相对陌生一些,然而事实上信息瓶颈在去年也热闹了一阵子;至于正态分布,那就不用说了,它几乎跟所有机器学习领域都有或多或少的联系。

那么,当它们三个碰撞在一块时,又有什么样的故事可说呢?它们跟“遗忘”又有什么关系呢?

变分自编码器

在本博客你可以搜索到若干几篇介绍VAE的文章。下面简单回顾一下。

理论形式回顾

简单来说,VAE的优化目标是:
\begin{equation}KL(\tilde{p}(x)p(z|x)\Vert q(z)q(x|z))=\iint \tilde{p}(x)p(z|x)\log \frac{\tilde{p}(x)p(z|x)}{q(x|z)q(z)} dzdx\end{equation}
其中$q(z)$是标准正态分布,$p(z|x),q(x|z)$是条件正态分布,分别对应编码器、解码器。具体细节可以参考《变分自编码器(二):从贝叶斯观点出发》

点击阅读全文...

4 Apr

变分与理论力学略览

拉格朗日

拉格朗日

BoJone在之前的《自然极值》系列已经花了一定篇幅来讲述“极值”在自然界中是多么的普遍,它能够引导我们进行某些问题的思考,从而获得简单快捷的解答。接下来,我要说的一个更加令人惊讶的“事实”:“极值”不仅仅在某些数学或物理问题上给予我们创造性的思考,它甚至构建了整个经典力学乃至于整个物理学!这不是夸大其辞,这是物理学中被称为“最小作用量原理”的一个原理,很多物理学家(如费恩曼)被它深深吸引着,甚至认为它就是“上帝创造世界的终极公式”!(关于做小作用量原理,大家不妨看一下范翔所写的《最小作用量原理与物理之美》系列文章)

话说在18世纪,欧拉拉格朗日开创了一条独特的道路,即用变分法来研究经典力学,从而使经典力学焕发出了新的活力,也由此衍生出了一个叫“理论力学”或“分析力学”的分支。用变分法研究力学有很多的好处,变分的对象一般都是标量函数,我们只需要写出动力系统的动能与势能表达式,就可以进行一系列的研究,比如列出质点的运动方程、判断平衡点的稳定性、求周期轨道等等(由于BoJone对理论力学研究还不够深入,无法举太多例子,但请相信,其作用远远不止这些),省去了不少繁琐的矢量性分析,这些都是在变分法发明前难以研究的。

点击阅读全文...

5 Apr

重提“旋转弹簧伸长”问题(变分解法)

感谢Awank-Newton读者的来信,本文于2013.01.30作了修正,主要是弹性势能的正负号问题。之前连续犯了两个错误,导致得出了正确答案。现在已经修正。参考《平衡态公理的修正与思考》

在下面的两篇文章中,BoJone已经介绍了这个“旋转弹簧伸长”的问题,并从两个角度提供了两种解答方法。前者列出了一道积分方程,然后再转变为微分方程来解;后者直接从弹性力学的角度来列出一道二阶微分方程,两者殊途同归。
http://kexue.fm/archives/782/

http://kexue.fm/archives/826/

今天,再经过一段时间的变分法涉猎后,BoJone尝试从变分的角度(总能量最小)来给出一种新的解法。同样设r为旋转达到平衡后弹簧上一点到旋转中心的距离,该点的线密度为$\lambda =\lambda (r)$,该点到中心的弹簧质量为$m=m(r)$,旋转前的长度为$l_0$,旋转平衡后的长度为$l_1$。由于弹簧旋转后已经达到了平衡状态,由平衡态公理(参看《自然极值》系列),平衡意味着总能量“动能-势能”取极值。

点击阅读全文...

30 Jul

变分法的一个技巧及其“误用”

不可否认,变分法是非常有用而绝妙的一个数学工具,它“自动地”为我们在众多函数中选出了最优的一个,而免除了具体的分析过程。物理中的最小作用量原理则让变分法有了巨大的用武之地,并反过来也推动了变分法的发展。但是变分法的一个很明显的特点就是在大多数情况下计算相当复杂,甚至如果“蛮干”的话我们几乎连微分方程组都列不出来。因此,一些有用的技巧是很受欢迎的。本文就打算介绍这样的一个小技巧,来让某些变分问题得到一定的化简。

我是怎么得到这个技巧的呢?事实上,那是几个月前我在阅读《引力与时空》时,读到变分原理那一块时我怎么也读不懂,想不明白。明明我觉得是错误的东西,为什么可以得到正确的结果?我的数学直觉告诉我绝对是作者的错,可是我又想不出作者哪里错了,所以就一直把这个问题搁置着。最近我终于得到了自己比较满意的答案,并且窃认为是本文所要讲的这个技巧却被物理学家“误用”了。

技巧

首先来看通常我们是怎么处理变分问题的,以一元函数为例,对于求
$$S=\int L(x,\dot{x},t)dt$$

点击阅读全文...

6 Jan

借助变分法变换坐标

ODE的坐标变换

熟悉理论力学的读者应该能够领略到变分法在变换坐标系中的作用。比如,如果要将下面的平面二体问题方程
$$\left\{\begin{aligned}\frac{d^2 x}{dt^t}=\frac{-\mu x}{(x^2+y^2)^{3/2}}\\
\frac{d^2 y}{dt^t}=\frac{-\mu y}{(x^2+y^2)^{3/2}}\end{aligned}\right.\tag{1}$$
变换到极坐标系下,如果直接代入计算,将会是一道十分繁琐的计算题。但是,我们知道,上述方程只不过是作用量
$$S=\int \left[\frac{1}{2}\left(\dot{x}^2+\dot{y}^2\right)+\frac{\mu}{\sqrt{x^2+y^2}}\right]dt\tag{2}$$
变分之后的拉格朗日方程,那么我们就可以直接对作用量进行坐标变换。而由于作用量一般只涉及到了一阶导数,因此作用量的变换一般来说比较简单。比如,很容易写出,$(2)$在极坐标下的形式为
$$S=\int \left[\frac{1}{2}\left(\dot{r}^2+r^2\dot{\theta}^2\right)+\frac{\mu}{r}\right]dt\tag{3}$$
对$(3)$进行变分,得到的拉格朗日方程为
$$\left\{\begin{aligned}&\ddot{r}=r\dot{\theta}^2-\frac{\mu}{r^2}\\
&\frac{d}{dt}\left(r^2\dot{\theta}\right)=0\end{aligned}\right.\tag{4}$$
就这样完成了坐标系的变换。如果想直接代入$(1)$暴力计算,那么请参考《方程与宇宙》:二体问题的来来去去(一)

点击阅读全文...

15 Feb

积分估计的极值原理——变分原理的初级版本

如果一直关注科学空间的朋友会发现,笔者一直对极值原理有偏爱。比如,之前曾经写过一系列《自然极值》的文章,介绍一些极值问题和变分法;在物理学中,笔者偏爱最小作用量原理的形式;在数据挖掘中,笔者也因此对基于最大熵原理的最大熵模型有浓厚的兴趣;最近,在做《量子力学与路径积分》的习题中,笔者也对第十一章所说的变分原理产生了很大的兴趣。

对于一样新东西,笔者的学习方法是以一个尽可能简单的例子搞清楚它的原理和思想,然后再逐步复杂化,这样子我就不至于迷失了。对于变分原理,它是估算路径积分的一个很强大的方法,路径积分是泛函积分,或者说,无穷维积分,那么很自然想到,对于有限维的积分估计,比如最简单的一维积分,有没有类似的估算原理呢?事实上是有的,它并不复杂,弄懂它有助于了解变分原理的核心思想。很遗憾,我并没有找到已有的资料描述这个简化版的原理,可能跟我找的资料比较少有关。

从高斯型积分出发

变分原理本质上是Jensen不等式的应用。我们从下述积分出发
$$\begin{equation}\label{jifen}I(\epsilon)=\int_{-\infty}^{\infty}e^{-x^2-\epsilon x^4}dx\end{equation}$$

点击阅读全文...