齐次多项式不等式的机器证明(差分代换)
By 苏剑林 | 2014-07-06 | 39666位读者 | 引用在高中阶段,笔者也像很多学生一样参加过数学竞赛,而在准备数学竞赛的过程中,也做过一些竞赛题,其中当然少不了不等式题目。当时,面对各种各样的不等式证明题,我总是非常茫然,因为看到答案之后,总感觉证明的构造非常神奇,但是每当我自己独立去做时,却总想不出来。于是后来就萌生了“有没有办法可以通用地证明这些不等式?”的想法。为了实现这个目的,当时就想出了本文的技巧——通过牺牲计算的简便性来换取证明的有效性。后来,我虽然没有走上数学竞赛这条路,但这个方法还是保留了下来,近日,在和数学研发论坛的朋友们讨论不等式问题时,重新拾起了这个技巧。
此前,在本博客的文章《对称多项式不等式的“物理证明”》中,已经谈到了这个技巧,只是限制于当时的知识储备,了解并不深入。而在本文中,则进行拓展了。这个技巧在当时是我自己在证明中独立发现的,而现在在网上查找时发现,前辈们(杨路、姚勇、杨学枝等)早已研究过这个技巧,称之为“差分代换”,并且已经探究过它在机器证明中的作用。该技巧可以很一般化地用于齐次/非其次不等式的证明,限于篇幅,本文只谈齐次多项式不等式,特别地,是对称齐次多项式不等式,并且发现某些可以简化之处。
素数之美1:所有素数之积
By 苏剑林 | 2014-07-30 | 32832位读者 | 引用在之前的欧拉数学中,我们计算过所有素数的倒数之和,得出素数的倒数之和是发散的,从而这也是一个关于素数个数为无穷的证明。在本篇文章中,我们尝试计算所有素数之积,通过一个简单的技巧,得到素数之积的一个上限(以后我们也会计算下限),从而也得到$\pi(n)$的一个上限公式。更重要的,该估计是初等地证明Bertrand假设(说的是n与2n之间定有一个素数)的重要基础之一。本文内容部分参考自《数学天书中的证明》和《解析和概率数论导引》。
素数之积
笔者已经说过,数论的神奇之处就是它总是出人意料地把数学的不同领域联系了起来。读者很快就可以看到,本文的证明和组合数学有重要联系(但仅仅是简单的联系)。关于素数之积,我们有以下结论:
不超过$n$的所有素数之积小于$4^{n-1}$。
最近的很多篇文章都是数论内容,属于纯数学的范畴了,对于很多只爱好物理或应用数学的读者可能会看得头晕了。今天我们来谈些不那么抽象的东西,我们来谈谈风筝,并来分析一下风筝的飞行力学。
爱情就像放风筝,线不能来得太紧,也不能拉得太松,你只会给对方飞翔的空间,他/她始终会回到你身边,因为有一条线系着双方。
风筝,在我们这个地方叫做纸鸢,相信大家童年时一定会放过。笔者小时候放风筝时,已经是小学五年级之前的事了。这个暑假突然童心一起,凭着小时候的回忆,简单做了个风筝来玩,居然真的飞起来了!兴奋之余,与大家分享一下。如今再来放风筝,真心感觉到放风筝也有很多技巧,让风筝飞,还不是件容易的事情呢,真可谓人生处处皆学问呀。上面关于风筝的比喻,正是放风筝的真实写照吧。
风筝可以说是人类摆脱地球重力的最原始尝试吧,跟发射宇宙飞船的火箭不同,风筝是借助风力来抵抗重力,严格来讲,即便是现在的飞机,也离不开这个原理(我们最后会谈到)。简单来讲,风筝就是用轻的支架撑开一个轻盈的平面,然后系上一个线圈。我们简单做一个风筝,只需要一张报纸,两条竹篾和一点透明胶,十分钟内就可以完成一个。当然,现在已经有各种各样的好看的风筝,甚至还有龙形的风筝,但是,自己动手简单做一个风筝,还是相当好玩的。
风筝自然是借助风力飞起来的,可是为什么风筝得用绳子牵着才能飞得更高、绳断了反而掉下来?风大多时,才适合放风筝?飞机又是怎么飞起来的?下面我们试着分析这些问题。
几个有关集合势的“简单”证明
By 苏剑林 | 2014-10-01 | 81947位读者 | 引用我们这学期开设《实变函数》的课程,实变函数的第一章是集合。关于无穷集合的势,有很多异于直觉的结论。这些结论的证明技巧,正是集合论的核心方法。然而,我发现虽然很多结论跟我们的直觉相违背,但是仔细回想,它又没我们想象中那样“离谱”。而我们目前使用的教科书《实变函数论与泛函分析》(曹广福),却没有使用看来简单的证明,反而用一些相对复杂的定理,给人故弄玄虚的感觉。
一、全体实数不能跟全体正整数一一对应
这是集合论中的基本结论之一。证明很简单,如果全体实数可以跟全体正整数一一对应,那么$(0,1)$上的实数就可以跟全体正整数一一对应,把$(0,1)$上的全体实数表示为没有0做循环节的无限小数(比如0.1表示为0.0999...),那么设一种对应为:
$$\begin{aligned}&a_1=0.a_{11} a_{12} a_{13} a_{14}\dots\\
&a_2=0.a_{21} a_{22} a_{23} a_{24}\dots\\
&a_3=0.a_{31} a_{32} a_{33} a_{34}\dots\\
&\dots\dots
\end{aligned}$$
变分自编码器(五):VAE + BN = 更好的VAE
By 苏剑林 | 2020-05-06 | 196692位读者 | 引用本文我们继续之前的变分自编码器系列,分析一下如何防止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 | 25296位读者 | 引用首先谈点题外话,关于本系列以及本博客的写作。其实本博客的写作内容,代表了笔者在这段时间附近的研究成果。也就是说,我此时在写这篇文章,其实表明我这段时间正在研究这个问题。而接下来的研究是否有结果,有怎样的结果,则是完全不知道的。所以,我在写这篇文章的时候,并不确定下一篇文章会写些什么。有些类似的话题,我会放在同一个系列去写。但不管怎样,这些文章可能并不遵循常规的教学或者学习思路,有些内容还可能与主流的思想方法有相当出入,请读者见谅,望大家继续支持!
上一篇我们谈到了切线法来求二次和三次曲线的有理点。切线法在寻找不高于三次的曲线上的有理点是很成功的,可是对于更高次的曲线有没有类似的方法呢?换句话说,有没有推广的可能性。我们从纯代数的角度来回复一下切线法生效的原因。切线法,更一般的是割线法,能够起作用,主要是因为如果有理系数的三次方程有两个有理数的根,那么第三个根肯定是有理数。如果只有一个已知的有理根,那么就可以让两个根重合为已知的那个根,从而割线变成了切线。
在Python中使用GMP(gmpy2)
By 苏剑林 | 2014-10-28 | 66912位读者 | 引用之前笔者曾写过《初试在Python中使用PARI/GP》,简单介绍了一下在Python中调用PARI/GP的方法。PARI/GP是一个比较强大的数论库,“针对数论中的快速计算(大数分解,代数数论,椭圆曲线...)而设计”,它既可以被C/C++或Python之类的编程语言调用,而且它本身又是一种自成一体的脚本语言。而如果仅仅需要高精度的大数运算功能,那么GMP似乎更满足我们的需求。
了解C/C++的读者都会知道GMP(全称是GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库),它是一个开源的高精度运算库,其中不但有普通的整数、实数、浮点数的高精度运算,还有随机数生成,尤其是提供了非常完备的数论中的运算接口,比如Miller-Rabin素数测试算法、大素数生成、欧几里德算法、求域中元素的逆、Jacobi符号、legendre符号等[来源]。虽然在C/C++中调用GMP并不算复杂,但是如果能在以高开发效率著称的Python中使用GMP,那么无疑是一件快事。这正是本文要说的gmpy2。
Designing GANs:又一个GAN生产车间
By 苏剑林 | 2020-02-13 | 33372位读者 | 引用在2018年的文章里《f-GAN简介:GAN模型的生产车间》笔者介绍了f-GAN,并评价其为GAN模型的“生产车间”,顾名思义,这是指它能按照固定的流程构造出很多不同形式的GAN模型来。前几天在arxiv上看到了新出的一篇论文《Designing GANs: A Likelihood Ratio Approach》(后面简称Designing GANs或原论文),发现它在做跟f-GAN同样的事情,但走的是一条截然不同的路(不过最后其实是殊途同归),整篇论文颇有意思,遂在此分享一番。
f-GAN回顾
从《f-GAN简介:GAN模型的生产车间》中我们可以知道,f-GAN的首要步骤是找到满足如下条件的函数$f$:
1、$f$是非负实数到实数的映射($\mathbb{R}^* \to \mathbb{R}$);
2、$f(1)=0$;
3、$f$是凸函数。
最近评论