变分自编码器(五):VAE + BN = 更好的VAE
By 苏剑林 | 2020-05-06 | 194855位读者 | 引用本文我们继续之前的变分自编码器系列,分析一下如何防止NLP中的VAE模型出现“KL散度消失(KL Vanishing)”现象。本文受到参考文献是ACL 2020的论文《A Batch Normalized Inference Network Keeps the KL Vanishing Away》的启发,并自行做了进一步的完善。
值得一提的是,本文最后得到的方案还是颇为简洁的——只需往编码输出加入BN(Batch Normalization),然后加个简单的scale——但确实很有效,因此值得正在研究相关问题的读者一试。同时,相关结论也适用于一般的VAE模型(包括CV的),如果按照笔者的看法,它甚至可以作为VAE模型的“标配”。
最后,要提醒读者这算是一篇VAE的进阶论文,所以请读者对VAE有一定了解后再来阅读本文。
VAE简单回顾
这里我们简单回顾一下VAE模型,并且讨论一下VAE在NLP中所遇到的困难。关于VAE的更详细介绍,请读者参考笔者的旧作《变分自编码器(一):原来是这么一回事》、《变分自编码器(二):从贝叶斯观点出发》等。
VAE的训练流程
VAE的训练流程大概可以图示为
只有两个四阶群和六阶群
By 苏剑林 | 2014-10-30 | 72008位读者 | 引用我们上近世代数课的时候,老师谈到在同构意义之下只有两个不同的四阶群,六阶群也是只有两个,还说到这是代数的研究生入学考试题目。说到这样了,我就饶有兴致地研究了一下,发现只有两个互不同构的四阶群这几乎是显然的,感觉这题用来做研究生考试题太水了吧?接着分析了一下六阶的情况,发现复杂了不少(元素增加)。而今天在实变函数课的时候,想到了一个简化的技巧,遂也证明了只有两个互不同构的六阶群。把结果和研究过程贴在这里,与大家分享。
两个四阶群
不管是四阶群还是六阶群,它们都是有限群。有限群的一个特点就是,可以把它们的乘法表写出来(只要不怕麻烦~~)。既然要研究四阶群的数目,我们只需要列出四阶群的乘法表就行了。设四阶群为$G_4=\{e, a, b, c\}$,其中$e$是单位元,根据这些信息,我们至少可以写出乘法表的一部分:
$$\begin{array}{c|cccc}
\cdot & e & a & b & c \\
\hline
e & e &a &b &c \\
a & a & & & \\
b & b & & & \\
c & c & & & \end{array}$$
结果恒为整数的多项式
By 苏剑林 | 2014-12-04 | 23078位读者 | 引用昨晚上初等数论的时候,有这么一道题
求证
$$\frac{1}{3}x^3+\frac{1}{5}x^5+\frac{7}{15}x$$
恒为整数,其中$x$是一个整数。
更一般地,可以得到
$$\sum_{p\in\mathbb{P}}\frac{1}{p}x^p + \left(1-\sum_{p\in\mathbb{P}}\frac{1}{p}\right)x$$
恒为整数,其中$\mathbb{P}$是有限个素数的集合,还有更多整数值函数问题。要证明这些函数的值恒为整数,可以通过同余分析,证明分子总能被分母整除。但是,更妙的、同时往往会更简单的方法是,将结果赋予必然为整数的意义——可以是计算上的,也可以是操作上的。
两生物种群竞争模型:LaTeX+Python
By 苏剑林 | 2014-12-15 | 58431位读者 | 引用写在前面:本文是笔者数学建模课的作业,探讨了两生物种群竞争的常微分方程组模型的解的性质,展示了微分方程定性理论的基本思想。当然,本文最重要的目的,是展示LaTeX与Python的完美结合。(本文的图均由Python的Matplotlib模块生成;而文档则采用LaTeX编辑。)
问题提出
研究在同一个自然环境中生存的两个种群之间的竞争关系。假设两个种群独自在这个自然环境中生存时数量演变都服从Logistic规律,又假设当它们相互竞争时都会减慢对方数量的增长,增长速度的减小都与它们数量的乘积成正比。按照这样的假设建立的常微分方程模型为
$$\begin{equation}\label{eq:jingzhengfangcheng}\left\{\begin{aligned}\frac{dx_1}{dt}=r_1 x_1\left(1-\frac{x_1}{N_1}\right)-a_1 x_1 x_2 \\
\frac{dx_2}{dt}=r_2 x_2\left(1-\frac{x_2}{N_2}\right)-a_2 x_1 x_2\end{aligned}\right.\end{equation}$$
本文分别通过定量和定性两个角度来分析该方程的性质。
将多项式分解为两个不可约多项式之和
By 苏剑林 | 2014-12-22 | 38194位读者 | 引用在高等代数的多项式一章中,通常会有这样的一道练习题:
证明任意有理数域上的多项式都能够表示为两个有理数域上的不可约多项式之和。
这是道简单的练习题,证明方法有多种。首先来介绍一个巧妙的证法。
一个巧妙证明
有理数域上的多项式问题等价于整数域上的多项式问题,因此,只需要对整数域上的多项式进行证明(这步转换使得我们可以使用艾森斯坦判别法)。设$f(x)$是整数域上的一个$n$次多项式:
$$f(x)=a_n x^n+a_{n-1} x^{n-1}+\dots+a_1 x+a_0$$
我们只需要注意到
$$p f(x)=\left[p f(x)+x^n+p\right]-(x^{n}+p)$$
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)$暴力计算,那么请参考《方程与宇宙》:二体问题的来来去去(一)
勒贝格(Lebesgue)控制收敛定理
By 苏剑林 | 2015-01-16 | 83395位读者 | 引用实变函数中有一个勒贝格控制收敛定理,一般认为它是判断积分和取极限可交换的很好用的方法。勒贝格控制收敛定理是说,如果定义在集合$E$上的函数列$\left\{f_n(x)\right\}$满足$|f_n(x)|\leq F(x)$,而$F(x)$在$E$上可积,那么积分和取极限就可以交换,即
$$\lim_{n\to\infty}\left(\int_E f_n (x)dx\right)=\int_E \left(\lim_{n\to\infty}f_n (x)\right)dx$$
本文不打算谈该定理的证明,只是谈谈该定理的应用相关的话题。首先,请有兴趣的读者,做做以下题目:
$$\lim_{n\to\infty}\left(\int_0^1 \frac{n^2 x}{1+n^4 x^4}dx\right)$$
It is time.
By 苏剑林 | 2015-05-24 | 53422位读者 | 引用终于可以缓一缓了~~
有留意科学空间的朋友可能发现这段时间更新比较缓慢,这一切还得从今年寒假说起...
今年一月底,由于各种原因,结合自己的兴趣,我找了一份实习工作,内容是Python编程。工作是在华南理工大学的论坛上发布的,说的比较简洁,我也比较简洁地投了简历过去,想不到收到回复了,也被录用了。二月上班,进去之后,才发现原来公司还是一家国内比较知名的电商企业,我的主要工作是数据挖掘...虽然我有一点Python的经验,但是数据挖掘基本上不在行的,所以只能够边工作边学习,疯狂恶补数据挖掘的知识。在这个过程中,我学会了很多关于数据挖掘的东西,要知道,在这之前,我不知道什么叫“特征”,什么是“逻辑回归”、“SVM”...那时候真是万千无知。
最近评论