变分自编码器(五):VAE + BN = 更好的VAE
By 苏剑林 | 2020-05-06 | 197876位读者 | 引用本文我们继续之前的变分自编码器系列,分析一下如何防止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-25 | 25353位读者 | 引用首先谈点题外话,关于本系列以及本博客的写作。其实本博客的写作内容,代表了笔者在这段时间附近的研究成果。也就是说,我此时在写这篇文章,其实表明我这段时间正在研究这个问题。而接下来的研究是否有结果,有怎样的结果,则是完全不知道的。所以,我在写这篇文章的时候,并不确定下一篇文章会写些什么。有些类似的话题,我会放在同一个系列去写。但不管怎样,这些文章可能并不遵循常规的教学或者学习思路,有些内容还可能与主流的思想方法有相当出入,请读者见谅,望大家继续支持!
上一篇我们谈到了切线法来求二次和三次曲线的有理点。切线法在寻找不高于三次的曲线上的有理点是很成功的,可是对于更高次的曲线有没有类似的方法呢?换句话说,有没有推广的可能性。我们从纯代数的角度来回复一下切线法生效的原因。切线法,更一般的是割线法,能够起作用,主要是因为如果有理系数的三次方程有两个有理数的根,那么第三个根肯定是有理数。如果只有一个已知的有理根,那么就可以让两个根重合为已知的那个根,从而割线变成了切线。
算符的艺术:差分、微分与伯努利数
By 苏剑林 | 2014-10-27 | 37969位读者 | 引用两年前,笔者曾写过《算子与线性常微分方程》两篇,简单介绍了把线形常微分方程算符化,然后通过对算符求逆的方法求得常微分方程的通解。而在这篇文章中,笔者打算介绍关于算符类似的内容:差分算符、微分算符以及与之相关的伯努利数(Bernoulli数)。
我们记$D=\frac{d}{dx}$,那么$Df=\frac{df}{dx}$,同时定义$\Delta_t f(x)=f(x+t)-f(x)$,并且记$\Delta \equiv \Delta_1 =f(x+1)-f(x)$,这里我们研究的$f(x)$,都是具有良好性态的。我们知道,$f(x+t)$在$t=0$附近的泰勒展式为
$$\begin{aligned}f(x+t)&=f(x) + \frac{df(x)}{dx}t + \frac{1}{2!}\frac{d^2 f(x)}{dx^2}t^2 + \frac{1}{3!}\frac{d^3 f(x)}{dx^3}t^3 + \dots\\
&=\left(1+t\frac{d}{dx}+\frac{1}{2!}t^2\frac{d^2}{dx^2}+\dots\right)f(x)\\
&=\left(1+tD+\frac{1}{2!}t^2 D^2+\dots\right)f(x)\end{aligned}$$
只有两个四阶群和六阶群
By 苏剑林 | 2014-10-30 | 72479位读者 | 引用我们上近世代数课的时候,老师谈到在同构意义之下只有两个不同的四阶群,六阶群也是只有两个,还说到这是代数的研究生入学考试题目。说到这样了,我就饶有兴致地研究了一下,发现只有两个互不同构的四阶群这几乎是显然的,感觉这题用来做研究生考试题太水了吧?接着分析了一下六阶的情况,发现复杂了不少(元素增加)。而今天在实变函数课的时候,想到了一个简化的技巧,遂也证明了只有两个互不同构的六阶群。把结果和研究过程贴在这里,与大家分享。
两个四阶群
不管是四阶群还是六阶群,它们都是有限群。有限群的一个特点就是,可以把它们的乘法表写出来(只要不怕麻烦~~)。既然要研究四阶群的数目,我们只需要列出四阶群的乘法表就行了。设四阶群为$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-11-12 | 65086位读者 | 引用今天上近世代数课,老师谈到除环,举了一个非交换的除环的粒子,也就是四元数环,然后谈到“实数域上有限维可除代数只有4种”,也就是实数本身、复数、四元数和八元数(这里的可除代数就是除环)。这句话我听起来有点熟悉,又好像不大对劲。我记得在某本书上看过,定义为实数上的超复数系,如果满足模的积性,那么就只有以上四种。但是老师的那句话表明即使去掉模的积性,也只有四种。我自然以为老师记错了,跟老师辩论了一翻,然后回到宿舍又找资料,最终确定:实数域上有限维可除代数真的只有四种!下面简单谈谈我对这个问题的认识。
当然,这里不可能给出这个命题的证明,因为这个证明相当不简单,笔者目前也没有弄懂,但是粗略感觉一下为什么,还是有可能的。看到这个命题,我们一下子的感觉可能是:怎么会这么少!我们这里通过例子简单说明一下,确实不会多!
我们已经对复数系很熟悉了,也就是定义在实数上的向量空间,基为$\{1,i\}$,并且给定乘法为
$$1\times i=i \times 1=i,\quad 1^2=1,\quad i^2=-1$$
特殊的通项公式:二次非线性递推
By 苏剑林 | 2014-11-12 | 62180位读者 | 引用特殊的通项公式
对数学或编程感兴趣的读者,相信都已经很熟悉斐波那契数列了
0, 1, 1, 2, 3, 5, 8, 13, ...
它是由
$$a_{n+2}=a_{n+1}+a_n,\quad a_0=0,a_1=1$$
递推所得。读者或许已经见过它的通项公式
$$a_{n}=\frac{\sqrt{5}}{5} \cdot \left[\left(\frac{1 + \sqrt{5}}{2}\right)^{n} - \left(\frac{1 - \sqrt{5}}{2}\right)^{n}\right]$$
这里假设我们没有如此高的智商可以求出这个复杂的表达式出来,但是我们通过研究数列发现,这个数列越来越大时,相邻两项趋于一个常数,这个常数也就是(假设我们只发现了后面的数值,并没有前面的根式)
$$\beta=\frac{1 + \sqrt{5}}{2}=1.61803398\dots$$
[转载] 做数学一定要是天才吗?
By 苏剑林 | 2014-11-17 | 28540位读者 | 引用(译自 陶哲轩 博客, 译者 liuxiaochuang)
(英文原文:Does one have to be a genius to do maths?)
这个问题的回答是一个大写的:不!为了达到对数学有一个良好的,有意义的贡献的目的,人们必须要刻苦努力;学好自己的领域,掌握一些其他领域的知识和工具;多问问题;多与其他数学工作者交流;要对数学有个宏观的把握。当然,一定水平的才智,耐心的要求,以及心智上的成熟性是必须的。但是,数学工作者绝不需要什么神奇的“天才”的基因,什么天生的洞察能力;不需要什么超自然的能力使自己总有灵感去出人意料的解决难题。
大众对数学家的形象有一个错误的认识:这些人似乎都使孤单离群的(甚至有一点疯癫)天才。他们不去关注其他同行的工作,不按常规的方式思考。他们总是能够获得无法解释的灵感(或者经过痛苦的挣扎之后突然获得),然后在所有的专家都一筹莫展的时候,在某个重大的问题上取得了突破的进展。这样浪漫的形象真够吸引人的,可是至少在现代数学学科中,这样的人或事是基本没有的。在数学中,我们的确有很多惊人的结论,深刻的定理,但是那都是经过几年,几十年,甚至几个世纪的积累,在很多优秀的或者伟大的数学家的努力之下一点一点得到的。每次从一个层次到另一个层次的理解加深的确都很不平凡,有些甚至是非常的出人意料。但尽管如此,这些成就也无不例外的建立在前人工作的基础之上,并不是全新的。(例如, Wiles 解决费马最后定理的工作,或者Perelman 解决庞加莱猜想的工作。)
最近评论