Wednesday, December 28, 2016

长度是如何练成的(转)

原来科学松鼠会的链接失效了,似乎下面链接的博主是这篇文章的作者,真是让人醍醐灌顶啊。

http://imaginary.farmostwood.net/index

长度是怎样炼成的?

点没有长度和面积,为什么由点组成的线和面会具有长度和面积?

“长度”“面积”这些词汇究竟是在怎样的意义上被使用的?

有的时候我们把点的长度叫做零,有的时候叫做无穷小,这两个称呼是不是都有道理?

无穷个零相加是不是还得零?(其实和第一个问题是一个意思,无穷个点怎么加成线段的?)

等等等等。

当然,小乐的问题是着眼于哲学,而我的回答将会着眼于数学,——我不是学哲学的,但是大概也知道在哲学上这些词汇常常导致混乱的争论,比如芝诺悖论之类。幸运的是,早在一百年前,通过一大批杰出的数学家的努力,以上这些问题已经被精确地给出了解答,这就是在数学中被称为“测度论”的一套理论体系。这里“精确”的意思是说,这套理论体系完全基于形式逻辑,而且只采用了非常少的公理(下面会陈述之),从而,在这套理论中不存在任何模糊或者逻辑上模棱两可之处(除了几个需要加以特别说明的地方=_=!)。换句话说,我们不仅可以认为数学家能够确定无疑的回答以上这些问题,而且可以认为人类在今天能够确定无疑的回答以上这些问题(在承认那些公理的前提下)。

不幸的是,这一断言几乎必然会遭到哲学家的反对。一方面是因为哲学家们倾向于每个人自己创造一组定义,——从我在未名哲学版见过的一系列关于芝诺悖论的讨论来看,这样的结果是所有的论述最终都流于自说自话。另一方面大概也因为学术壁垒的缘故,哲学家们大概从来也没有了解过数学家们已经在此问题上做出过的卓越工作,(确实,很多细节是过于数学化了一点……)。有鉴于此,我答应小乐以尽可能通俗的方式(在不损害准确性的前提下)大致介绍一下测度论的内容。我想在这个版面上大概还会有不少别的朋友对此感兴趣吧。

下面正式开始。

一、关于无穷

当我们使用“无穷”这个词的时候,我们必须时刻谨记,这个词有两种截然不同的意义——不,我这里说的不是亚里士多德关于实无穷和潜无穷的那些绕口令,而是某些重要得多的本质问题,对他们的清晰阐释开始于伟大的德国数学家康托Georg Cantor (1845-1918):当我们说一个集合有无穷多个元素的时候,我们必须指明这里的无穷是哪一种,是“可数无穷”还是“不可数无穷”。虽然都是无穷集合,但是它们会体现出截然不同的性质。

为了说明这一问题,我们引进集合的“势(cardinality)”的概念。简单说来,势就是集合的元素的个数。一个集合有三个元素,我们就称其势为3。两个集合如果元素个数相等,我们就称它们为等势的。——很显然,要判断两个集合是不是等势,只需要看这两个集合之间能不能建立起元素的一一对应即可,如果可以的话,我们就说这两个集合的元素是一样多的。

到这里为止都显得很简单。可是最有趣的部分马上就要出现了:康托指出,不但对于有限个元素的集合我们可以讨论它们的势,对于无穷个元素的集合,我们同样可以讨论它们之间是否等势。换句话说,我们可以讨论两个无穷集合的元素是不是一样多!

之所以如此,是因为集合之间的“一一对应”本质上只是个数学概念,是可以被精确研究的对象(请回忆高中数学课本关于映射的那一章)。从而,随便拿两个集合来,它们之间是否能建立一一对应只是数学上的问题而已。

以下是一些最基本也是最著名的例子和命题,请尽量耐心的阅读。所有这些陈述都是可以基于最简单的形式逻辑给出严格证明的,证明可以在参考文献[1]上查到:

·每一个集合都和它自身等势。

注:废话。

·全体正整数的集合和全体正偶数的集合等势。

注:这是第一个有趣然而迷惑人的结果。我们等于是在说:一个集合可以和它的一部分一样多!——但是这并不是一个悖论。我们通常觉得一个集合不能和它的一部分一样多只是针对有限集合而言的,本来就没人说过无限集合不能和它的一部分一样多,只是有时候大家会不自觉地有这个误解而已。

·全体正整数的集合和全体有理数的集合等势。(什么是有理数来着?查书去!)

注:这是在数学上很重要的一个例子,说明一个实数中的稠密集可以和一个离散集等势,不过大家看到这里大概已经开始打瞌睡了……跳过这个例子!

·全体正整数的集合和全体实数的集合不等势。

注:睁大眼睛,迄今为止最重要的一句话出现了!你永远不可能在全体正整数的集合和全体实数的集合之间建立起一一对应来。对这个陈述的证明是数学上最有趣也最迷人的证明之一,可惜的是篇幅所限我不能在这里证明给大家看。那么只讨论结论好了:并不是所有的无穷集合都是等势的,有一些无穷集合比另一些无穷集合的元素更多,换句话说,无穷之间也是有大小的。

·任给一个无穷集合,我们都能够造出一个集合包含它,而且和它不等势。

注:换句话说,无穷和无穷相比,没有最大,只有更大。——但是请注意,虽然我们能够造出越来越大的无穷集合,但是我们并不真正对那些太大的无穷感兴趣,因为和这个世界没什么关系。

·如果两个集合都和第三个集合等势,那么它们彼此也等势。

注:好像也是废话,但是它引出了下面的重要陈述。

·有很多集合都和全体正整数的集合等势,从而它们彼此也等势,我们称所有这样的集合为“可数无穷的(countably infinite)”。有很多无穷集合比全体正整数的集合的势更大,我们称所有这样的集合为不可数无穷的(uncountably infinite)。但是,不存在无穷集合的势比全体正整数的集合的势更小。

注:我们待会儿再来讨论为什么起这么两个名字。前面的例子告诉我们,全体正偶数的集合是可数无穷的,全体有理数的集合是可数无穷的,但是全体实数的集合是不可数无穷的。

·在不可数无穷集合中间,有些集合是和全体实数的集合等势的,这些集合被称为“连续统(continuum)”

注:好了,现在我们对全体无穷集合建立了一个简单的分类。最小的一类称为可数无穷集。剩下的都叫不可数无穷集。不可数无穷集里面又有特殊的一类叫作连续统,剩下当然还有一些非连续统的不可数无穷集,但是它们几乎和真实世界没有任何关系,所以忽略之。(有人不愿意忽略它们,非要去研究里面的一些麻烦的问题,于是产生了数学中间最让人头晕的一部分结论,比如什么哥德尔不完全性定理之类……这个定理偏偏还特别著名,很多人都问过我它究竟说的是啥。相信我,你不可能弄明白的。)

也就是说,我们真正关心的是两类特殊的无穷集合,一类称为可数无穷集,一类称为连续统。所有的可数无穷集彼此等势,所有的连续统彼此等势,但是任何可数无穷集和连续统之间不等势,后者总是更大一些……真绕嘴阿。

下面是一些可数无穷集和连续统的例子:

可数无穷集:

自然数集,整数集,有理数集。(基本上,如果你在平面上或者直线上随手点无穷个点,并且这些点彼此都不挨着,那么它们的总数就是可数无穷的。但是也存在一些不这么简单的可数无穷集。)

连续统:

实数集,直线上点的个数,平面上点的个数,一个正方形里点的个数,或者简而言之,一切几何对象里的点的个数都是连续统。(这里一个常常被人提到的推论就是直线上的点和平面上的点一样多,——都是连续统那么多。其实证明很简单,但是一言难尽,请查书去。)

好了,现在我们可以讨论这两个名字是怎么来的了。请注意,所有的可数无穷集都是可以和正整数建立起一一对应的,这是什么意思呢?这意味着,我们可以把一个可数无穷集中的每个元素都对应到一个正整数,这相当于给他们编了号码,从而我们可以去数它们(这就是可数这个词的来历)。也就是说,我们可以按照1号、2号、3号这么一直数下去,虽然总数是无穷的,但是只要我们在理论上一直数完所有的自然数,我们就能真正数遍这个集合的所有元素(至少在想像里是这样)。

而连续统集合却不是这样。一个直线上的点是连续统,这就是说,无论怎么巧妙的给这些点编号,我们都是不可能给所有的点都编上号码然后一个一个的数下去把它们都数完的。它们是“不可数”的。

有人会说,这不是自欺欺人么?反正都是无穷个,反正事实上总也不可能数得完,那么在理论上区分“想像中数得完”和“想像中也数不完”有什么实际意义呢?

有的。正是这一点微妙的差别,使得有些事情我们能够对可数集去做却不能对连续统集合去做,也正是这一点差别,促成了从没有大小的点到有大小的直线和平面之间的巨大的飞跃。

二、测度的建立

让我们暂时放下关于无穷的那些讨论,回到主题:我们通常所说的长度面积体积这些词,究竟是什么意思?

为了更清楚的阐明这个主题,让我们把目光只集中在最简单的一维情形,也就是说,我们只考虑“长度” 这个词。我们希望,取出直线上的一部分,就有一个“长度” 存在。如果能做到这一点,那么类似的,面积和体积之类的高维词汇也可以类似的得以理解。

我们把目前要回答的问题列在下面:

·什么是长度?

·是不是直线上任何一部分都可以有长度?直线上的一个线段当然应该有长度,直线上的两段分离的线段也有总长度,单点有没有长度呢?随便从直线上挖出一些点来得到的也许是虚虚实实的一个“虚线段”有没有长度?是不是我们从直线上任意取出一个子集合(线段啦单点啦都可以看成是直线的特殊的子集合),都可以定义它的长度?

——这件事无论在数学上还是应用上都是重要的,如果能够给直线的任何子集定义长度,那就太方便了。

·如果上面这件事是可以的话,那么随便给一个直线上的点集,长度怎么计算?

等等等等。

事实上,在数学中这些问题都能够得到解答,但是首先让我们把上面问题里的“长度” 这个词都换成更准确的一个术语:测度(measure)。之所以要采用这么一个新造的词,首先是因为“长度”有时候有局限性。一个线段的长度好理解,一个复杂的点集,说长度就会显得很奇怪;不仅如此,在二维情形下我们还要研究面积,三维还要研究体积,四维还要研究不知道什么积……为了省去发明一个又一个新词的苦恼,我们把这些东西统一叫做二维测度,三维测度……一了百了。

好吧,那么,我们来定义(一维)测度。

——不,不要误会,我并不是要在此刻写出一大段难懂的话,告诉大家“测度就是什么什么什么什么。” 或者更谦逊一点,说“我认为,测度就是什么什么什么什么。” ——也许这是一般人看来自然不过的工作方式,但不是数学家的。

这是因为,我们现在要定义的是某种特别基础的概念。也许在定义某些很复杂的高层概念的时候这种方式很自然,可是概念越基础,这种方式带来的问题就越大。关于测度这种层次的概念几乎必然伴随着用语言难于精确描述的种种晦涩的思考,一旦一个人试图把他对这个词的理解宣诸笔墨,那么无论他多么小心翼翼的整理他的陈述,在别人看起来他的定义都必然漏洞百出,有无数可以商榷的地方。——而因为这个概念在整个逻辑体系中的位置过于基础,任何商榷又都必然说起来云山雾罩,像哲学家们通常进行的关于基础概念的争论一样令人头昏脑胀。如果数学家们要开会用这种方法给出测度的定义,那一百个数学家一定会提出一百零一种定义来,最终的结果是什么有效的结论也得不到。

数学家们采用的是完全不同的方式:我们先不要贸然去说“什么是测度”,而是先问问自己,当我们想发明一个新的定义的时候,我们在这个定义的背后是想达到怎样一种目的?换句话说,我们想让这个定义实现哪些事情?

首先,测度——不管它具体怎么定义,其作用的对象按照我们的期望是直线上的任意一个子集,而最后得到的测度应该是一个具体的数字。也就是说,所谓定义测度,就是我们需要找到一种方法,使得随便拿来直线上的一个子集,我们都能够最终得到一个数字作为其“长度”。 (在这里我们把无穷大也看成是测度,例如整根直线的测度就是无穷大。)

然后,这种方法总要满足一些必要的约束。——不能随便给一个线段标上一个数字,就说它是测度了。这些约束有哪些呢?

第一,空集(注意是说空集而不是说单点集)本身也是直线的子集,也应该有个测度。我们应当保证空集的测度是零。这是很显然的,否则这个测度就毫无实际意义了。

第二,既然每个子集都有一个测度,那么把两个彼此本身不相交的子集并在一起得到的新的子集也应该有个测度,并且这个测度应该等于两者之和。——这也是很直观的要求。两个线段如果不相交,那么他们的总长度应该等于两者长度之和。更高维的情况也一样,两个二维图形如果不相交,那么总面积应当等于各自面积之和,诸如此类。

更进一步,三个不相交子集的测度之和也应该等于这三个子集并起来的集合的测度,四个也对,五个也对,依此类推,无穷个不相交子集的测度之和也应该等于把它们并起来得到的集合的测度。——注意,是可数无穷个!

(为什么呢?直接说任意无穷个不好么?干嘛只限定是可数无穷个?)

数学家是很谨慎的。上面这个性质被称为可数无穷个集合的测度的“可加性” ,承认可数无穷个集合有可加性是不得不为之,因为在实际应用中我们确实常常会遇到对可数无穷个子集求总测度的问题,可是任意无穷个子集的测度也能相加,这个陈述就太强大了,我们一时还说不好测度有没有这么强的性质,还是先只承认可加性对可数无穷个集合成立好了。

第三……

“且慢” ,数学家说,“先别找太多的约束,看看这两条约束本身能够在多大程度上给出测度的定义好了。”

(什么嘛,这两条约束根本什么都没说。第一条是废话,第二条也是很显然的性质,要是只满足这两条就可以叫做测度,那测度的定义也太宽松了,我随随便便就能构造出好多种不同的测度出来。)

也许是这样,可是到时候再添上新的约束也不迟。这也是数学家们常用的办法,先定义尽量宽松的概念,然后再一点一点的附加条件,得到更细致和特殊的子概念。就目前的情况来说,看起来这两条约束确实是宽松了点……

不幸的是,——也许出乎你的意料,——这两条约束不是太宽松,而是已经太严苛了。我们可以证明,给直线的每个子集都标上数字作为测度,保证空集的测度是零,并且测度满足可数无穷个集合的可加性,这件事情在逻辑上并无内在的矛盾,但是这样的测度必然具有一些数学上非常古怪的性质。也就是说,这样的测度根本不能用来作为对长度的定义!

(关于这件事的证明其实很简单,但是需要一点数学基础才能读懂,详情可以参考文献[1]。关于什么是“古怪的性质”,后面还会提及。)

在这种情形下,我们只好退而求其次,减少对测度这个概念的期望。——可是前面提到的两条性质都再基本不过了,如果连它们都不能满足,我们定义出来测度又有什么用呢?——于是数学家们另辟蹊径,不是放松这两条限制,而是放松它们的适用范围:我们不去强求测度能对直线的每个子集都有定义,也就是说,我们只挑出直线的一些子集来定义测度,看看能不能避免逻辑上的困境。

需要挑出那些子集呢?很显然,我们希望对于平时人们能接触到的各种常见的子集都能定义测度,所以单点集是需要的,线段也是需要的,而若干线段的交集或并集(这里若干还是指至多可数个)也是需要的,对它们的交集或并集再作交集或者并集也是需要的……

在数学中,我们把所有线段反复做交集或并集生成的这一大类集合称为可测集(当然它有更严格的定义,不过大概就是这个意思)。不要小看这种生成方式,事实上,你能想象得到的直线的子集其实都是可测集,——要找出一个非可测集的集合反倒是有点困难的事情。虽然可测集不包括直线的全体子集,但是如果我们能对所有可测集定义合理的测度,那这个测度也足以应付人们的需要了。

所幸的是这确实是可以做到的。在测度论中有很大的一部分篇幅是用来论述测度是怎么对可测集得以建立的,这部分内容一般被表述为一个称为Caratheodory’s theorem的理论。言简意赅地说:是的,只针对可测集定义的,满足前面那两条假设的“合理”测度总是能够建立得起来的。这里所谓的“合理”,就是说它能够用来作为我们心目中那个“长度”而存在。为了说明这一点,让我们想想我们离我们的目的地还差多远:直到现在为止,我们还是完全不知道一个测度究竟是什么样子。举例来说,按照我们的想法,一个单点集的测度应当是零(对应于点没有长度的直观),而实数轴上从0点到1点的线段的测度应当是1,更一般地,从a点到b点的线段的测度应当是b-a,——可是这一切我们统统还不知道呢!

这一切确实还未曾得到说明,而且更关键的是,仅仅有前面给出的那两条假设,我们也确实无法推理得出上面那些结论。这也是数学家们的通常做法:先有一个一般的概念,然后通过给它添上一些新的独立约束来构造出更细致的概念。我们现在已经有了一个一般的测度的概念,把它总结一下,就是说:

对于直线的一大类子集(也就是可测集,谢天谢地,我们在应用中真正关心的集合都属于可测集),我们能够在不伤害逻辑的自洽性的前提下,给他们中的每个都标上一个数字,称为测度,并且这些数字满足下面两条性质:

·空集对应的数字(空集的测度)是零。

·若干个(但是至多可数无穷个)彼此不相交的子集,它们并在一起得到的子集的测度,刚好等于这些子集各自测度之和。

我们只知道这样的测度是存在的,但是很显然并不唯一,因为我们未曾对这些具体的数值作过任何限定。为了使测度能够符合我们心目中的那个“长度”的概念,我们需要进一步添上一条需要满足的性质:

·如果把直线看作实数轴,那么从数轴上a点到b点的线段(这是直线的一个子集)对应的测度应当等于b-a,例如,数轴上从2到3的这一段线段的测度应该等于1。

乍一看这好像只是个不完全的限定,我们只规定了最简单的线段的测度,却没有规定剩下那许多奇奇怪怪的集合的测度,可是好在有数学推理来替我们包办剩下的一切:只要添上这条约束,那么所有的可测集的测度的具体大小就会以唯一不导致逻辑上的矛盾的方式被确定下来。也就是说,对于任何一个可测集,我们都有办法算出它所对应的那个唯一可能的测度来。(怎么算的?如果你不想看到数学式子的话就别问了……)

需要说明的是,同样也是根据这三条,我们就能够发现单点的测度必须是零(否则就会导致计算上的矛盾)。注意:这里的逻辑完全是数学的而不是哲学的,也就是说,我们是可以“推导”出单点的测度是零这样的结论的。

各位看到这里可能会很疑惑,我究竟在干什么?我并没有回答事先许诺要回答的任何一个问题(为什么点的长度是零而线段就不是,诸如此类),而是蛮横无理的把它们作为规定和规定的推论强制性的摆在这里,作为测度的定义的一部分。这算什么回答?

请允许我把对此的解释(以及对前面所有那些哲学性问题的解释)放在后面,先暂且回到测度的定义本身上来。

前面说了,只要能满足头两条性质,我们就称定义出来的那个东西为测度,加上第三条只是为了让这个测度符合我们对长度的具体数值的要求。也就是说,加上第三条性质后,我们定义出的应当只是测度中的具体某一种,一般把它称为勒贝格测度(Lebesgue measure)。再强调一遍,正如前面所说的那样,勒贝格测度并不能定义在直线的所有子集上而只能定义在其中的可测集上。但是我们在数学中和应用中能够遇到的集合差不多全是可测集。

(那就总还有几个不可测集了?是的,确实存在一些特别诡异的集合是不可测集。关于不可测集的构造和性质一直是数学上一个有趣的话题,——虽然并不重要,因为事实上在真实世界里我们遇不到它,它们只是作为抽象的数学构造出现的。我们后面还会再次谈及这个问题。)

既然勒贝格测度只是测度的一种,那就是说,数学上是承认不同于勒贝格测度的更一般的测度存在的。这些测度只满足三条性质的前两条,而未必满足第三条,也就是说,这些“测度”并不保证从0点到1点的线段的测度是1,甚至也未必保证单点集的测度是零。它们的性质可能和通常人们对长度的理解很不相同。

(为什么呢?既然明显和常识相悖,为什么还要保留这些人造的概念呢?)

这是因为,尽管数学家发明测度的概念的初衷确实只是想把“长度”的概念精确化和逻辑化,(事实上也确实做到了,就是勒贝格测度),但是人们很快发现,那些更一般的测度虽然未必还符合人们对“长度”这个词的理解,但是它们作为一种数学概念却能在大量的学科里得到应用,甚至成为很多理论的基础语言。一个最简单的例子是概率论,这门古老的学科在测度论建立之后就完全被测度的语言所改写,以至于今天一个不懂一般测度的人完全没办法研究概率论;另一个例子是著名的狄拉克测度(Dirac measure),这个曾经令数学家也有点头痛的非正常测度在物理学和信号处理等领域里扮演了非常关键的角色。

——不过,这是后话了。

三、长度的意义

回到我们的主题:“长度”的意义上来。

先总结一下我们已经知道了的事情:

所谓(一维)测度,就是要给直线上的每个子集标上一个数字,使得它们满足下面两条性质:

·空集对应的数字(空集的测度)是零。

·若干个(但是至多可数无穷个)彼此不相交的子集,它们并在一起得到的子集的测度,刚好等于这些子集各自测度之和。

这样的测度存在很多种,而且几乎全都行为古怪。为了更好的符合“长度”的概念,我们添上第三条要求:

·如果把直线看作实数轴,那么从数轴上a点到b点的线段(这是直线的一个子集)对应的测度应当等于b-a。

满足这三条性质的对直线上的每个子集定义的测度是不存在的。但是,如果放松要求,不对直线的每个子集定义而只对直线的可测子集定义测度,那么这样的测度存在并且唯一,数学上称为勒贝格测度。靠一系列定理的帮助,对直线的任何一个可测集(一般来说你能想象到的任何子集都是可测集),都有一套严密定义的公式能够把这个测度的具体大小算出来。

于是,数学家郑重宣布:

勒贝格测度就是人们通常所说的“长度”的严密定义,而且是唯一正确的定义。

“什么?”我们的哲学家朋友们一定要跳起来了。“你上面绕来绕去的说了一大堆让人听不懂的话也就罢了,你怎么能说这是关于长度唯一正确的定义呢?这顶多是你们数学家对这个词的理解而已,我最讨厌你们学理科的用这种自以为掌握绝对真理的口气说话了!”

“是么?”数学家回答道,“难道长度这个词还可能有别的理解不成?”

“当然可以。”哲学家愤愤不平地说。“亚里士多德说过……,莱布尼茨说过……,康德说过……,江泽民同志说过……,总之,人类对长度这个词的理解是经历过漫长的争论的,而且必然还会一直争论下去。每个人都有权提出自己的观点啊。”

“我不管他们怎么说,”数学家说,“我只问你心里有没有对长度的定义?”

“当然有了。”哲学家骄傲地说,“我认为,长度就是……”

“慢着,”数学家迫不及待的打断他,“我不想听你的哲学论文,我只问你,在你对长度的定义里,空集有没有长度?有的话,是不是零?”

“是……的。”其实哲学家暂时没想到空集这么细节的事情,但是他觉得反正这个无关紧要吧,所以先首肯了。

“那么,按照你定义的长度,数轴上从2.76这个点到6.98这个点的线段的长度,是不是等于6.98-2.76=4.22?”

“这个废话,不然还叫什么长度啊。”哲学家有点不耐烦了。

“还有,如果我把可数无穷个有长度的集合放在一起,总长度等不等于各自的长度之和?”

“这个……”哲学家对于“可数无穷”这个词有点拿不准,“反正两个线段的总长度是等于它们各自的长度之和的,至于无穷个……好吧就算是吧,那又怎样?”

“那就结了。”数学家慢条斯理地说。“我根本不关心你关于长度的哲学观念是怎么建立起来的,我只想说,如果你的观念没有内在的逻辑矛盾,那它就一定和我们数学家所说的勒贝格测度是一回事。这就是我为什么说勒贝格测度是唯一正确的长度的定义。——你当然可以有你自己的定义,只不过它一定正好就是勒贝格测度!”

“什么和什么呀!”哲学家有点懵了。“可是你什么也没有定义啊,你只是自己号称证明了一个所谓勒贝格测度的存在,可是我们关心的是为什么!我们哲学家要问的是为什么从2.76这个点到6.98这个点的线段的长度等于4.22,你却把它写在了定义里,这并没有回答问题本身啊。”

“唉,”轮到数学家不耐烦了。“从2.76这个点到6.98这个点的线段的‘长度’当然也可以不等于4.22,只要你不取勒贝格测度而换一种测度就成了,——问题是人们不喜欢那样啊。不是为什么它的长度等于4.22,而是你首先要求了4.22这一属性,然后把它叫做长度。为什么只有在春天桃花才会开?因为是你把桃花会开的那个季节叫做春天的!”

哲学家:“……”

数学家:“……”

嗯,我不知道这段对话是把问题讲清楚了还是搅得更混乱了。当然这里面还有许许多多的细节需要阐明,下面让我们来更仔细的讨论一下吧。

“长度是什么?为什么从2.76这个点到6.98这个点的线段的长度等于4.22?”正如前面那个数学家所说的,这个问法本身就是不合适的。我们给从2.76这个点到6.98这个点的线段赋予一种属性是4.22,给从姚明的头到姚明的脚的线段赋予一种属性是2.26米,现在我们把这种属性叫做长度,如此而已。——这完全是人为的设定,没有任何先验的意义。数学家已经说了,你当然也可以给从2.76这个点到6.98这个点的线段赋予另一种属性是3.86,给从姚明的头到姚明的脚的线段赋予另一种属性是0.03米,只要你足够细心,这种做法是不会引起问题的,只不过你自己定义的那种属性不再被人们称作“长度”罢了。你可以把它称为“短度”或者别的什么,没有问题。

有趣的是,——测度论的伟大也就体现在这里,——只要我们承认了诸如从2.76这个点到6.98这个点的线段的长度等于4.22这样一些朴素的论断,那么仅仅靠着逻辑推演,我们就能够给直线的几乎所有子集——可测集——计算出对应的“长度”来,哪怕它们已经变得不是那么直观。譬如说,单点集的“长度”是0(不是什么无穷小,就是0),2到5之间的全体无理数的集合的“长度”是3,某个广义康托集(一种有着复杂分形结构的点集)的“长度”是2.86……这一切本来似乎都可以问一问为什么的事情,其实都只是逻辑的自然推论罢了,你要是不承认它们,就必然导致逻辑上的不自洽。

——为什么这个东西的长度是0?那个东西的长度是2.3?为什么这个奇奇怪怪的集合也会有长度?为什么它的长度不等于别的,偏偏等于根号2?

因为长度满足那三条性质,所以必然如此。

——为什么长度要满足那三条性质?

因为人们把满足那三条性质的属性就叫做长度。你当然也可以用别的几条性质定义出来一个什么度,只是不能再叫长度就是了。

这就是“长度”这个词的全部意义。

“可是,”我们的哲学家还是不甚满意,“我还是觉得你没有真正回答我想问的问题。”

“还有什么呢?”数学家说,“我上面这些理论不都已经自圆其说了么?”

“就是这个自圆其说让我特别恼火。”哲学家说。“我总觉得你绕过了我真正的问题。我问为什么长度要这么定义,你说因为人们把这样定义出来的属性就叫长度,这当然没错,可是我其实想问的是,为什么会有这样一种属性存在?为什么自然界中的事物可以具有长度——或者用你的话说——这种属性?你当然可以告诉我说,因为数学上证明了你的那什么勒贝格测度一定存在,可是我不想听你那个证明,我想听到的是一个更深入的解释,为什么长度是得以存在的?”

“因为……因为我们能证明它实际上存在……”数学家迷惑不解的说。

“我不是问你它存不存在,我是问它为什么存在!”哲学家怒气冲冲的说。“你不觉得这是件不太自然的事情么?反正是一堆点,你又说了点的长度是零,可是一旦把点排列起来得到的线段就有了测度,在这个过程中发生了什么呢?这个不为零的长度是怎么出现的呢?——别又对我说你能证明它不为零,我要问的是为什么,——比证明更本质一步的那个为什么!”

“啊,”数学家字斟句酌地说,“你想问的其实是为什么线段的测度不等于简单地把点的测度加在一起对吧。是啊,这确实是个有趣的问题……”

这确实是个有趣的问题。

如果我们仔细检查关于勒贝格测度的那三条公理,会发现关于第一条和第三条并没有什么可多说的,可是第二条——至多可数个彼此不相交的子集的并集的测度等于这些子集各自测度之和——却多少让人心生疑惑。这句话读起来总是有点别扭。

如果我们把它换成“有限个彼此不相交的子集的并集的测度,等于这些子集各自测度之和”,听起来就会舒服多了,可是这里做了某种推广,从有限到无限,而且还不是任意无限个而是“至多可数无穷”个,这是为什么呢?

首先,这种推广是必须的:只对有限个的子集定义测度的可加性,这样得出来的测度会不满足人们的需要,——不仅仅是给长度一个精确定义的需要。测度论不只是为哲学家发明的,它要在数学的其他领域里以及别的自然科学领域里得到应用,而在这些场合里,我们时刻会碰到对无穷个集合的并集的测度的计算。我们必须在定义里就保证测度能够无穷相加。

而是另一方面,为什么又偏偏要限制可数无穷个集合才有可加性呢?

事实上,我们很容易就会发现,正是这一点促成了前面那个问题的出现:为什么线段具有长度?如果我们假设任意无穷个彼此不相交的子集的并集的测度等于这些子集各自测度之和,那么,既然线段是由无穷个点构成的而点又没有长度,那线段也应该没有长度才对。难道这一条是专门为了避免这个悖论才设置的么?

不是。我们很快就能看到,这种对于可数性的限制,有着更为本质的原因存在。

首先,让我们想想看把很多数相加是什么意思。我们一开始学到的加法是针对两个数而言的,给定任意两个数,我们能够算出它们的和。进而,我们把这一过程推广到了三个数求和:先对其中两者求和,然后再把这个和同第三者相加。依此类推,我们可以把四个数相加,把五个数相加……

请注意,这里的过程完全是递归的(inductively):只有定义了n个数的和,我们才能够继而定义n+1个数的和。然后,这样一直进行下去,我们就能够对任意有限多个数求和。——只是“任意有限”,还不是“无限”。

从有限到无限这一步跨越其实走得颇为艰难。哲学家也好别的领域的科学家也好常常随心所欲的使用数学词汇而并不特别在意自己是否真的明了它们的严格意义,可是数学家却不能如此自由。真正把无穷个数加起来,也就是数学中所谓的“级数”(series),这套理论的严密化在数学史上经历了相当长的一段时间。最终,借助于极限理论的帮助,真正严格的关于级数求和的理论才得以建立。——也就是说,事实上,什么样的无穷级数可以相加,什么时候不能相加,相加的时候要注意什么问题,这一切都受到了理论的约束。在这些理论的基础上,我们才能够确定当我们随口说出“把这无穷个数加在一起”的时候,我们确实知道我们在说什么。

什么是级数呢?级数就是把有限个自然数相加的自然推广:既然定义了n个数的和我们就能够进而定义n+1个数的和,那么,把这个过程递归地进行下去,我们就能够对任意有限多个数求和。当有无穷个数需要我们求和的时候,我们就只对它们中的前N个求和,并且让这个N不断变大,如果这一过程有极限,这个极限就被我们称为这个无穷数的和。

请注意上面这段话背后的涵义:当我们说“对无穷个数求和”的时候,我们其实潜在地要求了这些数的总个数必须能够通过n->n+1->n+2……这样的过程来逼近,然后通过极限的方式定义它们的和。这也就是说,这些数的总个数必须是可数个!

让我们回忆一下什么是“可数个”:“可数个”就是能够和自然数集建立起一一对应的那么多个,用更直观的语言来说,“可数个”就是“可以一个一个数下去”的那么多个。只有一个集合里包含可数个元素的时候,我们才能够对于它应用数学归纳法,因为数学归纳法的本质就是“一个一个数下去”:当一件事对n成立时,我们进而要求它对n+1成立,这样的过程进行下去的极限,就是可数无穷。

那么,既然多个数的加法本质上是个递归过程,——只有先把n个数加起来,我们才能进而加上第n+1个数,——所以加法至多能对“可数无穷”个数来定义(也就是级数加法)。把“不可数无穷个”数加在一起,这件事情是毫无意义的!

这正是前面所有那些所谓哲学悖论的根源:当人们想当然的说着“把无穷个点的测度加在一起”的时候,他们以为他们是在说一件自然而然的事情,可是事实上,除非这无穷个点是可数个,否则这里的加法根本无法进行。不幸的是,任何线段都偏偏是由不可数个点构成的(它们是连续统)。

为什么线段是由点构成的,而线段的测度却不等于组成它的那些点的测度之和?因为“组成它的那些点的测度之和”这个短语根本没有意义,所以两者也不必相等。

这个回答也许有些出人意料,可是事情就是如此。很多问题之所以令人迷惑,不是因为它们真的是什么悖论,而只是因为问题本身没有被恰当的叙述。人们常常自以为是的使用很多词汇却罔顾自己是不是了解它们的真实含义,譬如说“求和”。人们随心所欲地说“把若干个数加在一起”却忘了其实不可能真的把它们“一下子”加在一起,加法是个递归过程,这就决定了如果要加的东西的个数太多(不可数那么多),它们就加不起来了。

(不得不补充一点——一个很扫兴的补充——在数学中,某些场合下我们真的必须要对不可数个数定义总和……数学家总是这样,为了各种极端情况而拓展自己的定义。在这些情况下,这种不可数个数的和也是能定义出来的。但是,这件事并不会对上面那些论述造成削弱:这里的特殊意义上的“和”是为了应付特别的目的而定义的,它和我们平时所说的求和已经不是一个意思了。)

也许哲学家还会追问:既然线段的测度不是组成它的那些点的测度之和,那么这个测度是从哪里来的呢?

它们不是哪里来的……它们是线段自己所固有的。这就是为什么我们在定义长度的时候非要加上第三条公理的原因:我们必须在定义里就写明线段的测度,否则就没有办法建立起直线的所有可测子集的测度的架构。事实上,既然点的长度是零,根据可数可加性我们很容易推出一切可数集的长度也都是零,所以在某种意义上说来,“长度” 是本质上只属于连续统的一种性质。换句话说,只有进入了连续统的范畴,不为零的长度才可能出现。这就是为什么我们不能从单点集出发定义长度的原因。

那么,我们现在可以回答那个著名的“飞矢不动”的悖论了:一支飞驰的箭,在每一个确定的时刻都静止在一个确定的位置上,为什么经过一段时间后会移动一段距离?

答案是:因为任何一段时间(不管多么短暂)都是一个连续统,包含了不可数个时刻,所以箭在每一时刻的静止根本不需要对一整段时间之内的移动负责。——后者并不是前者的相加,而前者也根本不可能相加。

因为连续统不可数,所以我们能够在每时每刻里都静止的存在,同时又能在一段时间内自由运动。这也许是大自然的巧妙安排吧。

四、若干注记

长度的意义说了这么多,到此差不多就可以告一段落了。但是关于在前面的讨论中出现的许多数学概念和思想,却还不妨多说几句。事实上,测度论虽然只是数学中一个具体的分支,但是它的发展和演进却和数学史上最有趣的篇章之一——所谓的“第三次数学危机”——联系在一起。关于这桩公案,坊间的科普书目已经汗牛充栋,我也并不想在这里再重复一遍那些随手就可以找得到的八卦,而只是想针对某些特别的概念和理论略加说明,至少,这对愿意继续阅读别的数学或者数学科普著作的朋友来说,会有点作用吧。

1. 无穷小。

这个概念无疑常常困扰没有受过现代数学训练的阅读者们,这是很自然的事情,因为它可以从直觉上意识得到,却又难于精确地把握:无穷小是什么?是不是可以精确定义的数学概念?它是一个数?还是一段长度?能不能对无穷小做计算?诸如此类等等。由于这个概念几乎天然的和各种哲学式的思辨联系在一起,使得甚至哲学家们也对它颇为关注,——当然,还有数之不尽的民科们。

关于无穷小的讨论者,最著名的大概莫过于莱布尼茨,他花了大把的精力试图精确阐述无穷小的概念并且以此作为整个微积分学的基石。在莱布尼茨看来,无穷小是一个比任何数都小但是不等于零的量,对它可以做四则运算,尤为关键的是可以做除法:两个相关的无穷小量的比值就是一个函数的导数。以此为基本语言他开始建立微积分学的基本理论,——他基本上成功了。直至今天,数学家采用的关于微分的记号仍然来自莱布尼茨,而数学学科内部关于微积分学的专门称呼——“分析学”——也来自于莱布尼茨自己对他的理论的叫法:无穷小分析。尽管牛顿和莱布尼茨在微积分的发明权上争得不可开交,可是几个世纪过去,至少在这两件事情上莱布尼茨大获全胜。

可是,也许你想不到的一件吊诡的事情是:尽管莱布尼茨在微积分学的建立过程里做出如此重要的贡献,他的思想的基石——无穷小量——却是一个在今天的数学语言里被完全抛弃了的概念。人们发现这个词汇除了带来混乱之外并没有什么特别的用处,于是作为一种语言,它被丢弃了。事实上,即使在莱布尼茨的同时期人看来,无穷小也是一个有点让人不舒服的词:比任何大于零的数都小,却不是零。我们当然可以把它仅仅作为一种人为的逻辑概念来使用,可是这样一个怪东西的存在,既使得数学的基本对象——实数的结构变得混乱,也在很多场合带来了麻烦的难于回答的问题(尽管它也确实带来了不少方便)。在分析学蓬勃发展的十八世纪,一代又一代数学大师为此争论不休,大家混乱而各行其是地使用这个词,却没人能说清楚它的精确含义。终于,从十九世纪初期开始,以柯西(Cauchy)和魏尔斯特拉斯(Weierstrass)为代表的一大批数学家开始为分析学的严密化做出了大量的工作,他们试图在完全不采用“无穷小量”这个概念的前提下重新建立整个分析学,——他们也成功了。

于是这个词就被抛弃了。时至今日,这个词尽管在很多数学书里仍然会出现,但是这时它仅仅作为一个纯粹修辞上的词汇而不是严格的数学概念,——人们通常用它来指代“极限为零的变量”(感谢十九世纪那一大批数学家,极限这个词已经是有了严密清晰的定义而不再仅仅是某种哲学性的描述),也有的时候它被用来作为对微积分运算中的某些符号的称呼,但是无论何时,人们在使用它的时候都明确的知道自己想说什么,更关键的是,人们知道自己并不需要它,而只是偶尔像借助一个比喻一样借助它罢了。

那么,回到这个词最本源的意义:到底有没有这样一个量,比一切给定的正实数都小却又不是零?或者这个问题还有一系列等价的提法:在直线上存不存在两个“相邻”的点?存不存在“长度”的最小构成单位?等等等等。

在今天我们已经能够确定无疑的回答这些问题了:不,不存在。

事实上,这个问题的彻底解答甚至比柯西和魏尔斯特拉斯的时代还要晚:它本质上是关于实数的结构的理解的问题。即使柯西本人——尽管他奠定了现代极限理论的基础——也并不真正了解“实数是什么”这样一个简单的问题。关于严密的实数理论的最终建立,一般认为是皮亚诺(peano),康托(Cantor)和戴德金(Dedekind)这几位十九世纪下半叶的数学家的成就。所谓的“戴德金分划”仍然是今天的教科书里对“实数”这一概念所介绍的标准模型。在这套模型里,人们能够在逻辑上完全自洽的前提下回答有关实数结构的一切问题,而正如前面指出过的那样,它完全摈弃了“无穷小”的存在。

(是不是数学家说无穷小量不存在,这个词就没意义了呢?)

这又回到了前面我们屡次面对的那个关于数学断言的权威性的问题。如果承认无穷小是一个有关数的概念,那么,数学家的工作已经告诉我们,在实数理论中没有无穷小的位置。事实上,康托本人就曾经证明过承认无穷小是同承认实数中基本的阿基米德原理相矛盾的。(阿基米德原理是一个关于实数性质的基本原理,如果阿基米德原理是错的,整个数学大概都无法得以建立。)但是,如果把问题拉到数学的疆域以外,如果认为人们有权利不按照数学家的方式讨论数本身的性质,那么我们面对的就已经是全然另一层次的问题,——也就不可能在这里得到详尽的讨论了。

2. 无穷大。

有趣的是,和无穷小如此相似的一个词——无穷大——却在今天的数学语言中占有与之判若云泥的一个地位:人们谈论它,研究它,还给它以专门的记号(倒8字)。造成这一多少有点奇特的事实的关键在于,和通常人们的误解不同,无穷大其实并不是无穷小这个词在概念上的对偶(尽管乍一看似乎如此)。事实上,就某种意义而言,说它是零这个词的对偶也许更为恰当一些。

让我们回顾一下这个概念在数学中的递进过程:我们都知道存在这样的数列(例如自然数列),可以一直变得越来越大,直到比任何给定的数都更大,这种时候,我们把这样的数列称为“趋于无穷大”或者直接就简称它是无穷大。——请注意,在这里无穷大仅仅是作为人们对一个数列或者变量的极限的叫法而存在的,我们并没有承认它是一个数或者一个确定的对象,而只是一个形容词而已。每个具体的数都不可能真的比别的数都大,尽管一系列数可以没有止境地变得越来越大,这实质上就是亚里士多德所强调的“潜无穷”。

如果事情只是到此为止,那一切相安无事,无穷大这个词今天的地位也只不过和无穷小一样仅仅作为对一种极限的描述而存在罢了。可是这里有某种微妙的差别:正如前面提到过的那样,“无穷小”不是别的,只是一个变量极限为零而已,所以我们总可以认为无穷小只是一种说法,在必要的时候可以用“趋于零”这样一个替代说法来换掉它。可是“无穷大”是什么极限呢?它并不是趋于任何特定数字的极限,而是“趋于无穷大的极限”,你看,这个词轻易回避不掉。

于是人们只好被迫不断的提及它,要是非要替换成别的说法,就要花好多倍唇舌才成。比如,前面说过直线本身也是直线的可测子集,那么整条直线的测度是多少?当然我们可以佶屈赘牙地说“直线可测,但是它的测度并不是一个确定的数,而只是比任何给定的实数都要大。”——这也太麻烦了一点。为什么不省点事直接说“直线的测度等于无穷大”呢?

这样人们就开始不断的把无穷大当一个名词来使用,假装它好像也是一个数一样,这就是所谓的“实无穷”。哲学家和数学家中比较喜欢哲学争辩的那一部分人对此有许多争论(直觉主义学派等等),但是让我们忽略掉它们,先看看在今天数学家是怎么使用这个词的吧。

首先,无穷大不是一个实数,在实数集中不存在任何数比其他所有数更大,这是确定无疑的事情。

其次,在许多场合下,我们确实可以把无穷大当作一个名词来使用,既方便又不造成困扰。例如前面提及的在测度论里我们说一个可测集的测度是一个“数”,这里的“数”既包括非负实数也包括无穷大。事实上,在有些数学书里索性把实数加上无穷大这样一个集合称为“增广实数集”。我们甚至可以对无穷大定义运算(在事先做好严格约定的前提下),这对于很多理论的叙述带来了极大的方便。如果说得更技术化一点,在很多数学分支(例如仿射几何)里我们还能像让每个实数对应于直线上的一个点这样一个几何对象一样,让无穷大这样一个特殊的对象也对应于一个特殊的几何对象(所谓的“无穷远点”),并且让所有这些几何对象平等地参与到几何学中来。只要仔细做好事先的公理准备,这样子做并不会引起任何逻辑问题。

——也许有人会觉得奇怪,怎么数学家可以如此随便,想给实数集添上什么就添上什么?事实上,数学家就是有这样的权利,因为说到底,数学不是研究真实自然界的学问,而只是研究人造概念的学问。任何人造概念,只要在逻辑上被严格的描述出来又不造成内在的逻辑不自洽,都可以被认为是“存在”的。复数的引进就是一个很好的例子。

——那前面怎么又说“无穷小不存在”?就算无穷小本身不能是一个实数,为什么不能把它添在实数集之外也弄一个“增广实数集”出来研究?

事实上,这样做是可以的,而且事实上也确实有好事者这样做过。问题在于它毫无意义。前面说了,任何人都有权利自己定义出一些什么东西来作为数学对象来研究,这是对的,只要他在逻辑上足够细心就行。可是这句话还有一个常常被人忽视的反面:数学尽管不是直接研究自然界的学问,可是它毕竟是在人们研究自然界的过程中形成而又有助于人们对自然界的理解的。如果一个数学概念纯粹只是自说自话的产物,那无论它多么自洽,也没有人会去关心它。复数这一人为的构造之所以被所有人承认是因为它巨大的威力。而无穷小——正如前面所指出的——是一个毫无必要引入的概念,添上它只会自找麻烦。无穷小和无穷大的命运之所以不同,关键正在于此。

回到无穷大这个词上来。这一系列文章的一开头还说过无穷大可以分成“可数”和“不可数”的无穷大,那又是怎么回事?

这是一个更常见的误解,这其实是两个不同的词:作为一个极限的(潜)无穷和由此引申而来的作为一个数学对象的(实)无穷是一码事,作为一个集合的势的可数无穷或者不可数无穷是另一码事,不同于前者的“无穷大”,后者其实应该被称为“无穷多”才对,只是人们通常混为一谈。事实上,当我们说“一个集合有无穷多个元素”的时候,我们有必要指出这个集合是不是可数,而当我们说“一条直线的测度是无穷大”的时候,却完全谈不上什么可数不可数。——在数学书中通过观察上下文,分辨这两者并不是很难的事情,可是如果把“无穷”作为一个哲学命题来研究的时候,这种区分却是必须的。——不幸的是,就我阅读所及,很多时候人们都没做到这一点。

3. 不可测集与选择公理、数学的严密性

回顾一下“不可测集”这个词的意思:在勒贝格测度的意义下,总有一些集合是没办法定义测度的,这样的集合称为不可测集。同时已经被我们反复指出过的一点是:一个没受过专门数学训练的人所能想象到的任何古怪集合其实都是可测的,不可测集非常罕见。

不可测集的存在是数学中中一件令人遗憾的事实,要是能给直线的任何一个子集定义长度,这样的理论该有多么漂亮啊……数学中常常有这样的情形,一个人们通过直觉认定的美妙设想,偏偏被一两个好事者精心构造出的反例破坏了,但是数学毕竟受制于逻辑,不管一个反例多么煞风景,只要它确实成立,数学家也只好接受它。

可是不可测集这个例子有点不同:构造不可测集,用到了选择公理。

这件事情说来话长,简单的说,我们都知道整个数学是建立在一些很显然也很直观的公理之上的,这些公理大多数都是诸如等量之和为等量之类的废话,可是选择公理稍微复杂一点,它是说:

任何给定一组非空集合,我们总能从其中的每一个集合里取出一个元素组成一个集合。

也像废话一样,是吧,可是这句话多少有点罗嗦,不像等量之和为等量一样简单明了。于是人们对它多少有所争议,有人认为它不应当排在基本公理之内。可是毕竟这句话也挑不出什么错,而且人们很快发现,很多很有用的数学结果离开选择公理就变得很难证明或者根本不可能证明,于是将就着也就承认它了。

可是不可测集的存在却又掀起了人们的疑虑,反对选择公理的人说,看看吧,要是没有选择公理,也就没有不可测集了。

赞成的人反驳说,不可测就不可测呗,有什么大不了的……虽然整个理论确实变得不那么完美了。——他们不知道更大的问题还在后面。1924年,波兰数学家巴拿赫(Banach)在选择公理和不可测集构造法的基础上,证明了石破天惊的“分球定理”:一个半径为1的实心球,可以剖分成有限的若干块,用这些块可以完整地重新拼出两个半径为1的实心球体!

这一下引起轩然大波,反对选择公理的数学家们声势大振,认为选择公理完全是trouble maker,必欲除之而后快。赞成选择公理的数学家们则指出选择公理“功大于过”,毕竟有很多有价值的数学成果出自选择公理的基础。双方僵持的结果是大家各行其是,大多数数学家承认选择公理,同时忍受巴拿赫分球定理所带来的不适感,少数数学家坚持不要选择公理,为此失去很多别的很有用的定理也在所不惜。

这一僵持局面维持了很多年,直到二十世纪的中叶才被戏剧性地解决。人们在不承认选择公理的假设下构造出了一大堆比巴拿赫的球体更严重的反例(例如一个空间同时有两个维数)。这些反例不只像巴拿赫的例子一样违反直觉,而且还严重的破坏了大多数已有的数学结果。于是人们发现,承认选择公理也许是必须的,而像巴拿赫的反例那样的反直觉的结果,也只能被迫承担下来了。

所以到今天几乎所有的数学研究都是在承认选择公理的基础上进行的。虽然作为一种后遗症,人们总是会时不时地谨慎的在使用选择公理的时候加上一句声明:“本文依赖选择公理。”——这也许是这条公理的一个特殊待遇了。

以上便是这段公案的来龙去脉。很多人可能在读完这段故事之后疑虑重重。什么啊?数学家们难道是这么随便的确定公理体系的么?如此的实用主义,似乎全然置真理的地位于不顾的样子。很多人可能还会想起欧几里德第五公设的故事,觉得数学家们原来如此不负责任,带给人们的不是一套严整规范的理论体系,而是一个支离破碎的混乱图景。连公理的问题都搞不定,整个数学岂不是空中楼阁?

限于篇幅,这篇文章不可能对这个问题予以展开论述,可是至少我们可以澄清一个常见的似是而非的误解:数学是严密性的科学,数学的发展也只有在严密的公理化基础上才能得以实现。

这句话——至少在字面上——是对的。不可测集的例子本身就说明,为了严密性,数学家们甚至不惜放弃直观,——像巴拿赫球那样的例子尽管如此怪诞,可是它是严密逻辑的产物,数学家也只好承认它的存在。

可是在更宏观的层面上,这句话却是错的。前面提到的分析学就是很好的例子:微积分的思想的提出是在十七世纪,在随后的十八世纪里取得了丰硕的成果,可是它的严密化却直到十九世纪下半叶才真正得以实现。测度论是另一个例子:“测度”是人们对于长度这个词的直观理解的严密化,可是这并不是说,在测度论被提出之前的漫长岁月里人们对于长度都一无所知,恰恰相反,人们已经知道了相当多的事情,只是等待测度论的语言让一切都变得精确和完整而已。

所以数学的发展实质上是一个拖泥带水的过程,一代又一代崭新、充满活力却又粗糙的思想被提出来,人们意识到它的重要性,予以发扬光大,产生一系列重要的成果同时又带来困惑,直到崭新的数学语言诞生,清理战场,让一切显得井井有条,像教科书上的文字一样道貌岸然,而同时却又有新的粗糙的思想诞生了……在这个过程里,严密性始终只是一个背景,尽管无处不在,可是并不占据舞台的统治地位。数学家们在意严密性,追逐严密性,甚至不惜为了严密性而牺牲看似有价值的学术成果,可是严密性并不是数学发展的引领旗帜,从来都不是。

这就是为什么同很多人的误解相反,大多数数学家其实并不关心那些关于数学基础的哲学性的争论,这也就是为什么我把眼前这些讨论放进附记的原因——一件事情是不是关系到数学的逻辑基础和这件事情在数学上是不是重要一点关系都没有。所有这些故事:可数与不可数、可测与不可测、选择公理等等,都是和二十世纪初所谓“第三次数学危机”的大背景联系在一起的,那段时间里数学家之间产生了无数纷争,可是今天的数学学生们在严肃认真地学习集合论和测度论的同时,却只对那些八卦付之一笑,作为茶余饭后的谈资。——事实上,即使在二十世纪初,也有大量的数学家根本不关注这件事情或者压根就采取了日后看来是错误的立场(反对康托,反对不可数集的概念,等等)却同时又在自己的领域里作出了重要的甚至是历史性的贡献。

关于那个所谓的“第三次数学危机”,有一本著名的科普著作《数学:确定性的丧失》[2]专门讨论了它。这本书内容相当详尽,不幸的是它所引起的误解和它阐明的事情一样多。关于这次“危机”的描述主要集中在第十二章,那一章的结尾倒是相当深刻,值得特别引用在此:

“一个寓言恰如其分地概括了本世纪有关数学基础的进展状况。在莱茵河畔,一座美丽的城堡已经矗立了许多个世纪。在城堡的地下室中生活着一群蜘蛛,突然一阵大风吹散了它们辛辛苦苦编织的一张繁复的蛛网,于是它们慌乱地加以修补,因为它们认为,正是蛛网支撑着整个城堡。”

Tuesday, December 27, 2016

在Blogger中使用微软雅黑字体

如果需要在Blogger中使用微软雅黑字体,只需要在Template$\to$Customize$\to$Advanced$\to$Add CSS方框中填入如下内容

.post-body {
font: 15px/1.7em "Trebuchet MS","Lucida Grande","Lucida Sans Unicode","Lucida Sans",Arial,sans-serif;
letter-spacing: .07em;
text-align: justify;
}
h3.post-title, .comments h4 {
line-height: 1.5em;
font-family: "微軟正黑體","Microsoft JhengHei","Times New Roman",Times,serif;
color: #000000;
font-size: 1.8em;
text-shadow: 0 1px 1px rgba(0,0,0,.3);
}

如下图所示


Monday, December 26, 2016

提升专注力的4个方法

前阵子听完邓胖子的知乎Live,想做下总结,却一直拖到现在,拖延症还有救吗~>_<~+

提升专注力的方法部分也适用于自我管理。如题,那么有哪四个方法呢?大家先看看如下的这张思维导图吧。



提升专注力的四个方法

(1)像设计游戏一样设计任务
  • 目标:细分任务,每一件事情尽量保证精确,柳比歇夫的时间记录法 & To do list
  • 规则:从简单做起,逐步增加规则
  • 障碍:成就感与挫败感的平衡

(2)创造使用推理和类比的机会
  • 推理
  • 类比
  • 创造更多使用的机会
    • 费曼学习法则:如果我需要讲给别人听,我会如何讲解
    • 笔记:整理和回顾—“它的原理,我能不能用一句话概括”
    • 输出:和别人分享经验—我能不能模仿作者的笔触写一篇?
    • 反驳:左右手互博—“还有什么其他的可能性”

(3)开始学习之前,不要放弃一切寻找困惑的机会
  • 从困惑出发
  • 问题是目的,资料和书籍是路径,而不是根据资料来思考主题
  • 读书之前,先评估一本书

(4)抗干扰养成—和大脑相处
  • 情绪控制
  • 选择控制
  • 信息控制

=========================================================
好了,接下来就是详细解释上面的四个法则了。

(1)像设计游戏一样设计任务

也许大部分人和我一样,都有一段沉迷游戏的时光。大家回想一下,在沉迷某些游戏的期间是否会有无法集中精力的困扰,再回想,有没有让大家觉得很无聊的一些游戏,耗尽了我们所有的耐心而终弃之?想必心里都已经有了答案了。通过上面的例子说明,我们其实有能力去专注,而且对特定的任务能够自动的保持长久的专,其中的关键在于如何设计这个任务。

那么假设你就是一款叫“人生游戏”的策划师,你会如何设计这个游戏来吸引人?

如果我是游戏设计师,我会从三个方面来设计:目标,规则和障碍。

目标要清晰,不能让大家困惑

如果游戏的目标不明确,玩家会花费大量的时间去理解这些目标,直接导致玩家没有动力去深入这个游戏。回想自己以前玩《反恐精英》和《穿越火线》,目标非常的清晰,自由模式的目标是杀敌数最大,比赛模式则是整个团队协同努力赢得比赛。

规则要简单

游戏的规则如果太过复杂,玩家的精力便无法集中了。其实大家把这个想像成运行一个电脑程序。如果程序构造非常复杂,程序不断的进行复杂逻辑判断,以及在不同的存储空间来回跳转,那么我们就说这个程序非常的复杂(规则复杂),程序运行非常缓慢(玩家困惑,无法专注)。简约的程序应该是控制命令简约,整块的时间让GPU去执行运算(规则简单),这样效率会非常高。

难度恰当的障碍

学习的乐趣来源于克服障碍后的成就感。正如游戏,目标不能太复杂,但也绝不能太简单,过于简单的任务即使完成了也不会给玩家带来荣誉或者成就感。故在工作中设定障碍需要在成就感和挫败感之间找到平衡,最佳的的障碍应该是看似困难,但是专注后又能够解决。在列计划时,按照自己当前专注力的上限来安排任务,这种安排需要努力一下来完成。为了防止出现不断的挫败感,我们也需要一个缓冲,比如晚上划归一段自由时间,比如晚上9:00 - 10:00之间,主要对白天的任务进行补充,这样白天执行任务时就不会太过紧张了。

(2)创造使用推理和类比的机会

专注力本身是一种思维能力。真正的专注力是思维上的专注力,能够让自己集中精力思考,充分吸收知识的那部分专注力,而不是身体上的,形式上强制的专注。那么如何集中精力?如何通过思维深入理解一个东西?


答案是通过推理和类比。


首先是推理

推理能够探求本质的东西,比如我想了解焦虑,应该去查阅相关文献,焦虑怎么产生的,有哪些因素我可以控制,改变,有哪些次一级的因素可以控制?有没有哪些行动或者策略能够影响焦虑,比如锻炼和朋友交谈。

当我们面对太多的信息,大脑会反馈给自己一堆毫无意义的字符,暗示这些内容是毫无意义的,不值得学习。但是当我们把知识按照脉络理顺时,才能实现真正意义的专注。比如学习货币经济学,不断的问问题,货币是什么?货币是从商品界分离出来的表现其他一切商品价值的商品。更进一步,货币存在的本质是什么?货币存在的背后其实是信誉体系。那我们怎么去创造货币体系?这么一直循环往复追问下去。

另一个方面是类比

类比是横向的,建立一种和其他事物普遍联系的东西。当我们学了新东西后,和其他已经学习过的东西有什么区别。比如思维是一种锻炼,那么这种锻炼和身体或者肌肉的锻炼有什么类似的地方?比如说健身很火的一种hitt训练方法,这种方法是否也可以借鉴到专注力的训练中?

推理和类比不占用显性时间

可以利用碎片化时间来进行推理和类比,几乎不占用显性时间。但这需要不断的训练,好比是肌肉训练,很久不练习,必然会很疼,但如果持续的去练习推理和类比,那么这种思维能力就不会难受,成为习惯后反而很自然。

创造使用推理和类比的机会

推理和类比如何用?其实需要非常刻意的训练,下面介绍如何创造使用推理和类比的机会。




  • 费曼学习法如果我要把我新学的东西讲解给外行听,我会如何讲解?设想自己要把这些东西讲出去,那我们必须把很多没有想明白的东西弄清楚,有一些东西很复杂而又想要简单讲给外行听时,就需要查阅更多的资料或者问老师,反复下去,就能让我们对这个问题有非常深入的理解。
  • 笔记整理关上书,回忆整本书的脉络。整本书的论证过程是什么?哪个部分让自己感兴趣?最佩服的那些地方?如果让自己去写,自己会如何去写呢?
  • 输出写一篇文章,能不能写一篇综述,比如自己写一个博客。输出会倒逼自己去思考,推理和类比。
  • 左右手互博养成反驳自己的能力。反复思考有没有反面的例子。在互博过程中,可以发现越往深处所涉及道德变量越多,考虑到的信息和可能性也就越全面。通过这样的训练,我们能够敏锐地发现自己的逻辑漏洞,而不必等到别人驳斥的时候才想方设法回击。


(3)开始学习之前,不要放弃一切寻找困惑的机会

从困惑出发
困惑是人类想要学习一个东西的惊动力,人类的一切知识本质上都起源于困惑。
第一个发明火的人,会困惑为什么会有火?当我们学习知识的时候,需要去积累一个个的问题和困惑。比如通信,信息是如何通过电磁波发射出去的,基站的分布如何会影响通信的效率,所以首先要去创造困惑。

问题是目的,资料和书籍是路径
比如Python爬虫,如果我想要去爬一个网站的数据,首先我必须要登陆进去,然后需要用一个工具把信息提取出来,这就是正则表达式。其次网页会变,会动态加载,并且网站有反爬虫机制,这些情况下我又该如何去应对。所以首先要从自己的困惑出发,我们的问题决定了我们如何去看书,寻找一个切入点。

根据主题来查阅资料,根据主题来寻找知识会发现生活中很多东西都是很有意思的。

读书之前,先评估一本书
查阅资料时,需要评估一本书是否值得读。最重要的指标是作者,其次是目录和简介。译本的话,主要看豆瓣和亚马逊的评论,如果差评很多,基本上可以换一本原著来读。


(4)抗干扰养成—和大脑相处

人类两套系统,一个是理性的,另外一个是负责生命威胁的非理性的,专注的过程就是协调这两套系统的过程。不要习惯失败的模式,必须不断的总结。

杜绝纠结
不要给自己出太多的选择题,比如到底学C还是C++? 做好当前的那一步。比如可以先学数据结构和算法,寻找共通的知识入手,很多时候我们没有到达纠结的时候就开始纠结。

隔绝干扰
取消订阅一些无用的信息。使用一整块的时间来处理这些问题,这是非常重要的。一开始会很难受,但是一定要坚持,一个星期后自己就会习惯。


最后用一张图和邓胖子知乎Live的链接来结束这篇博客

提升专注力的四个方法—邓胖子知乎Live

Tuesday, December 20, 2016

TeXstudio双向搜索

最近使用Winedt很不顺心,一系列的操作后,还是无法支持正反向搜索,而且非常容易编译卡死,各种问题。而且听说Winedt已经停止更新了,现在Bug都没人修了。遂听从知友的建议,转向了开源,并且只有60M的TeXstudio。. 捣鼓了一会儿,终于能够支持双向搜索了。下面列出环境变量设置非常关键的几步:

首先安装如下三个软件

TeXstudio Download



(1)文件名必须没有空格,一开始我文件名使用的是Real Analysis,无论怎么设置环境变量都无法双向搜索,修改成RealAnalysis后问题得到解决.


(2)修改环境变量Build:
  • Default Complier: XeLaTex;      
  • Default Viewer: External PDF Viewer;


(3)修改环境变量Commands$\to$External PDF Viewer:

 "C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance -inverse-search "\"C:\Program Files (x86)\TeXstudio\texstudio.exe\" \"%%f\" -line 
%%l" "?am.pdf"

把上述语句复制到Commands$\to$External PDF Viewer,需要注意,上述语句中包含了两个地址,第一个是SumatraPDF的可执行文件地址,另外一个是TeXstudio的可执行文件地址,这两个地址需要根据它们在不同电脑中的安装路径进行修改。



(4)设置SumatraPDF

在SumatraPDF的Option中的Command-line中填入

"C:\Program Files (x86)\TeXstudio\texstudio.exe" "%f" -line %l

上面的TexStudio可执行文件的地址根据电脑的安装路径而修改



(4)正向搜索

在TeXstudio编辑器里面选中文字,然后右击,选择Go to PDF



(4)反向搜索
  • SumatraPDF中,在想要定位的文字处,双击左键,TeXstudio自动跳转到相应地方
  • 对于默认PDFviewer ,则需要按住Ctrl再双击左键完成编辑器中的定位

Tuesday, December 13, 2016

在Blogger中使用Latex公式

It took me a while to figure out how to insert equations here.
This is some quoted text.
This is a exciting moment

 $E = mc^{2}$

Copy-past the following code
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js">
MathJax.Hub.Config({
 extensions: ["tex2jax.js","TeX/AMSmath.js","TeX/AMSsymbols.js"],
 jax: ["input/TeX", "output/HTML-CSS"],
 tex2jax: {
     inlineMath: [ ['$','$'], ["\\(","\\)"] ],
     displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
 },
 "HTML-CSS": { availableFonts: ["TeX"] }
});
</script> 
in the HTML of the Blogger template (Design→Edit HTML→Edit Template) between <head> and </head>.

The advantage of this code here is that the Mathjax rendered is closer to the one practiced on the SE network (in particular with the $). Also one may use macros (\newcommand).

外测度不可加性的证明

昨晚看了下郭懋正老师有关外测度不可加性的证明,把我搞的非常糊涂,后来仔细研究了下,发现他的证明并不严谨,在一些概念和符号上不加区分。下面我把自己修正后的Notes贴出来,供大家参考。

外测度不具有可加性证明:

  Lebesgue构造了一个反例,互不相交的一系列集合不满足可加性.首先对于任意的$x\in (0,1)$,

 $ L_x = \{\xi \in (0,1) | \xi -x \in \mathbb{Q}\}.$

$x\in \mathbb{Q}$,$\xi -x \in \mathbb{Q}$这个条件易知,$\xi \in \mathbb{Q}$,$L_x(x\in \mathbb{Q}) = \{\xi \in (0,1) | \xi \in \mathbb{Q}\}$,$\xi$$(0,1)$上的全体有理数.$x \notin \mathbb{Q}$,$\xi -x \in \mathbb{Q}$这个条件,显然有$\xi = x+q, q\in \mathbb{Q}$,且由$\xi \in (0,1)$可以得到$0<x+q<1$,故有$-x<q<1-x$,$x\in (0,1)$,因此有$q \in \mathbb{Q} \bigcap (-1,1)$.这一段其实只是我个人加入的废话,和主题没啥关系.\\因为$x-x=0 \in \mathbb{Q}$,所以$x\in L_x$,推出$L_x \neq \emptyset$. $I=(0,1)$. $x,y \in I$, 易证:

 $ L_x\bigcap L_y \neq \emptyset \Leftrightarrow L_x = L_y \Leftrightarrow x-y\in \mathbb{Q}$

证明:
  1. 由于$L_x\bigcap L_y \neq \emptyset$,假设$\xi \in L_x \bigcap L_y$, $\forall \xi \in L_x \bigcap L_y$, 可以得到$\xi - x, \xi -y \in \mathbb{Q}$,故有$(\xi - y)-(\xi -x)=x-y \in \mathbb{Q}$.
  2. 如果$x-y \in \mathbb{Q}$,则对于任意的$\xi \in L_x$,$\xi -x \in \mathbb{Q}$,$(\xi - x)+(x-y)=\xi-y \in \mathbb{Q}$,可得$\xi \in L_y$,也即$L_x \subset L_y$.同理由于$x,y$的轮换性,可得$L_x \supset L_y$.故有$L_x=L_y$.

    
由上式可知,$(0,1)$可被分解成一些互不相交的$L_x$之并.可以这么理解,如果$x$$(0,1)$上的有理数,那么所有$L_x$是相等的,这样$\xi$ 就是$(0,1)$上的有理数了.如果$x$是一个无理数,那么可以得到$\xi$也必须是无理数,而无理数有无穷多个.这种分解就好像是一串时分复用的码元一样.或者说是不同的厂家的扑克混叠在一起.或者说是沙子和芝麻混合,这种分割是极其浓密的.这一段话算是注解,不是那么的严谨.


$(0,1)$可被分解成一些互不相交的$L_x$之并后,从每个$L_x$中取出一个元素构成一个集合$S$(貌似$S$只包含一个有理数),由于$L_x\subset (0,1)$,$S\subset (0,1)$.$\{r_i\}^{\infty}_{i=1}$$(0,1)$中有理数全体.$S_k=\{x+r_k|x\in S\}$.显然$S_k$是从$S$平移有理距离$r_k$之后得到的集合.显然$S_k\subset (-1,2)$,而且当$k\neq l$,$S_k \bigcap S_j = \emptyset$.

反证法

若不然,假设$\zeta \in S_k\bigcap S_j$ $k\neq j$,则必然存在$x,y\in S$,使$\xi_k+r_k=\zeta=\xi_j+r_j$,于是$\xi_k-\xi_j=r_j-r_k\in \mathbb{Q}$.$k\neq j$,$r_k\neq r_j$,因此$\xi_k\neq\xi_j$.$S$的构造,$\xi_k$$\xi_j$分别是从$S$ 中互不相交的点集$L_x,L_y$ 取出的,且满足$\xi_k-x\in \mathbb{Q}$以及$\xi_j-y\in \mathbb{Q}$.$(\xi_k-x)-(\xi_j-y)=(\xi_k-\xi_j)-(x-y)\in \mathbb{Q}$.由于在前面已经有了$\xi_k-\xi_j\in \mathbb{Q}$,因此可以推出$x-y \in \mathbb{Q}$,而根据上式,互不相交的集合$L_x$$L_y$必然有$x-y\notin \mathbb{Q}$,故矛盾.因此有$S_k \bigcap S_j = \emptyset$.在这里其实频繁用到了有理数四则运算的封闭性,有理数表示为分数就很容易理解这个封闭运算规律了.

在郭懋(mao)正老师的实变函数教材中,滥用$\xi$符号,$S$中的元素和$L_x$的元素不加区分就导出矛盾,逻辑上是不够严谨的.
  
既然$S_k \bigcap S_j = \emptyset$,那么我们构造一个集合列并集$\bigcup_{n=1}^{\infty} S_n$,则有$(0,1)\subset \bigcup_{n=1}^{\infty} S_n$

证明:
  
事实上,$\forall x\in (0,1)$,$x\in L_x$.由于$S$为从互不相交的$L_x$中各取一点的构成的集合,$S\bigcap L_x=\{y\}$,$L_x$的定义有$y-x \in \mathbb{Q}$,$x,y \in (0,1)$,$x-y\in (-1,1)$.因此存在某个$n$, 使$r_n=x-y,x=y+r_n\in S_n$,$x$$(0,1)$中的任意性,可以得到$(0,1)\subset \bigcup_{n=1}^{\infty} S_n$.
  
综上所述有$(0,1)\subset \bigcup_{n=1}^{\infty} S_n \subset (-1,2)$.若外测度具有可加性,

$1=m^{*}(0,1)\leq m^{*}(\bigcup_{n=1}^{\infty} S_n)=\sum_{n=1}^{\infty}m^{*}(S_n) \leq m^{*}(-1,2)=3$
  
$S_k$$S$的一个平移,而根据测度平移不变性,$m^{*}(S_k)=m^{*}(S)$,故有$m^{*}(\bigcup_{n=1}^{\infty} S_n)=m^{*}(\bigcup_{n=1}^{\infty} S)$,由于$m^{*}(\bigcup_{n=1}^{\infty} S_n)$的有限性(在区间(1,3)),故有$m^{*}(S)=0$.即导出矛盾$1\leq 0 \leq 3$.
  
  
个人一点思考

  1. $(0,1)$分解成互不相交的$L_x$之并,这种分解唯一吗?
  2. 集合$S$的势是阿列夫$\aleph$.因为$(0,1)\subset \bigcup_{n=1}^{\infty} S_n$,所以$|\bigcup_{n=1}^{\infty} S_n|\geq \aleph$,假若$S_n$可列,则可列个可列集的并集也是可列集,矛盾.$|S_n|\geq \aleph$(根据连续统假设,在阿$\aleph_0,\aleph$之间没有其他的势).$S_n$是定义在$R$上的,$|S_n|\leq \aleph$,根据伯恩斯坦定理,$|S_n|=\aleph$.显然$|S|=\aleph$.
Blogger对于公式的支持真的很差,最后出来的效果难以直视。我还是把latex做的notes截图上来吧.









Saturday, December 10, 2016

康托集的势


对于康托集的势,看过的几本书都没有很好的说清楚康托集是如何与三进制小数一一对应的,经过仔细的研究,我绘制了一张图,大家看到后就会明白了。



显然分割的次数$i$是可列个($i=1,2\cdots$),而第$i$次分割会产生三进制小数的第$i$位,三进制小数的每一位有两种选择0 或2,因此康托集的势等价为三进制小数,而三进制小数的势为连续势$c$。从另外一个角度来看,康托集可以看成是自然数集的全体子集组成的势(三进制小数的每一位都有取与不取两种选择),等于$2^{\aleph_0}=\aleph$. 故康托集不可数,其势为$\aleph$

Friday, December 9, 2016

数学史上三大危机


刚刚整理了下数学史上三大危机发生的时间,人物,以及具体细节。  引用自百度百科 “数学三大危机简述:


  1. 希帕索斯(Hippasu,米太旁登地方人,公元前5世纪)发现了一个腰为1的等腰直角三角形的斜边(即根号2)永远无法用最简整数比(不可公度比)来表示,从而发现了第一个无理数,推翻了毕达哥拉斯的著名理论。相传当时毕达哥拉斯派的人正在海上,但就因为这一发现而把希帕索斯抛入大海;
  2. 微积分的合理性遭到严重质疑,险些要把整个微积分理论推翻;
  3. 罗素悖论:S由一切不是自身元素的集合所组成,那S包含S吗?用通俗一点的话来说,小明有一天说:“我正在撒谎!”问小明到底撒谎还是说实话。罗素悖论的可怕在于,它不像最大序数悖论或最大基数悖论那样涉及集合高深知识,它很简单,却可以轻松摧毁集合理论!


花了点时间总结了下三大数学危机,画成了一个思维导图,保存在百度云盘了。

数学史上三大危机思维导图





关于成熟

关于成熟

知乎上关于一个人怎样才算成熟的讨论,摘录了张佳玮的答案:


  1. 不需要靠一切阿谀外界的行为来获得安全感。 
  2. 不需要靠一切贬损外界的行为来获得优越感。 
  3. 不需要靠外界的一切褒扬来获得存在感。 
  4. 安静公平的面对一切
  5.  确实知道自己该做什么,而且更明确自己不该做什么,以及可以不必做什么

共勉。

鸟儿学唱歌之强化学习

刚打开电脑,知乎便推送了一篇文章,使用强化学习理论来解释鸟儿唱歌时多巴胺分泌规律,知乎文章转载自Science杂志,这里把几个链接都贴出来:

《科学》:多巴胺信号编码成功与失败

小鸟如何学会唱歌? 神经系统中的强化学习 或 大脑利用随机数产生器探索运动空间

Dopamine neurons encode performance error in singing birds


这个研究由康奈尔大学发布。本来想直接查阅Science的原文,可惜NUS的图书馆没有Science杂志的access。下面给出一个康奈尔大学主页上对这个研究成果发表的简要介绍:

Dopamine reward helps songbirds learn to hit the right notes

这个研究的核心可以总结为:

"Dopamine spiking activity encodes performance error by evaluating the quality of ongoing behavior relative to internal performance benchmarks." ——"通过评估当前行为和预先期望的契合度,对行为误差编码,从而决定释放多巴胺的剂量,对行为进行校正"

在Science的那篇文章中,研究人员对斑胸草雀进行实验,年幼的斑胸草雀歌声没有规律,成年后才有一个特定的模式(频谱),那就说明唱歌这个行为是学习得来的,因此可以使用强化学习来诱导,这一点是整个实验的关键。研究人员观察到成年斑胸草雀唱歌的音节a的频率分布图为


若斑胸草雀唱歌频率超出2.25kHz,研究人员便播放一段白噪声,强迫鸟儿神经回路的一个负反馈,即减少其多巴胺的分泌,训练一段时间后,发现鸟儿唱歌的频谱向下偏移了以避免白噪声,其实这就是强化学习的结果,利用多巴胺进行诱导。


上述总结其实就是现代很多启发式优化算法(人工智能优化算法:GA,PSO,ABC等)的核心思想,时刻判断当下优化的fitness,符合预期就投入更多的力量,给予奖励,如果不符合预期,就减少这种行为,减少力量的投入。对于人类的行为活动又何尝不是呢?人的一生都在做这样的事情,也就是所谓的技能提升或者是成长了(有句话说的好,教做人。。)
"
强化学习理论的一个关键点是大脑中有一个信号表示动作的质量。下面再举几个强化学习的例子:

  1. 学习谈钢琴时,当我们有了按下某个键的想法时,大脑便有了一个benchmark,我们对于这个键的声音有一个预期,也即大脑中有一个信号表示动作的质量。如果这个键的声音不符合预期(按错键),那么信号回路给出消极反馈,多巴胺减少,如果钢琴发出正确的声音,符合大脑预期,那么这个信号回路给出积极的响应,多巴胺增加。
  2. 人类使用强化学习来训练动物的各种动作,比如杂技等。这种情况和人类学习钢琴还有点不一样,在训练动物时,必须使用一些道具(食物等)来诱导动物建立一个信号回路,一开始时的信号回路是:动作$\rightarrow$食物$\rightarrow$神经回路。

突然有一个想法,强化学习的多巴胺分泌过程,可以用一种自动控制理论来表征,那么我们能不能把自动控制理论应用到优化理论中呢?类比与生物的强化学习过程,我们可以思考如何进一步提高启发式算法的优化效果。

下面直接引用知乎的一个总结:
“强化学习理论有潜力在算法层面解释相当一部分行为的选择与学习:也许我们时刻都在判断眼下的情景是超出预期,符合预期,还是不如预期。据此,我们会增加那些超出预期的行为,减少那些不如预期的——这正是强化学习的理论核心。由于实验证明了多巴胺信号不仅编码对食物等外在奖励信号的预期误差,还可以推广到对唱歌这一主动产生行为的表现质量判断,我们有理由怀疑这一信号是我们判断大量行为是否符合目标,并据此指导行为的神经基础。”


最后,给出一张生物的强化训练示意图:






Saturday, December 3, 2016

Latex使用小技巧

花式字体
可以使用如下命令\mathcal{F}:$\mathcal{F}$,如果加载了包\usepackage{mathrsfs,amsmath},那么还能使用\mathscr{F}:$\mathscr{F}$

编号
需要先加载包\usepackage{enumerate},然后使用如下格式调用
\begin{enumerate}[(1)]
\item 交换律:
\item 结合律:
\end{enumerate}

定义快捷符号
有理数实数自然数等经常出现在数学公式中,一般可以如下实现\mathbb{N}:$\mathbb{N}$。但当需要大量使用这些符号时,可以定义快捷符号来方便和加速我们的书写。比如在头文件里定义
\newcommand{\QQ}{\mathbb{Q}} %定义有理数Q
\newcommand{\CC}{\mathbb{C}} %定义复数C
\newcommand{\RR}{\mathbb{R}} %定义实数R
\newcommand{\NN}{\mathbb{N}} %定义自然数N


快捷使用equation等
在打出"\begin{equation}}"时,Latex自动会补齐后面的部分

文字居中
有时需要把某一行文字居中,可以使用命令\centerline{}

超链接去掉方框和颜色
在头文件里使用
\usepackage[colorlinks,linkcolor=black,anchorcolor=black,citecolor=green]{hyperref}

开启新的段落(缩进)
\par

箭头上下标注文字
单线单向的可延长箭头,amsmath宏包已经提供,使用\xleftarrow[下方公式]{上方公式
}和\xrightarrow[下方公式]{上方公式}

长的竖线
\left.   竖线左端表达式   \right\vert  竖线右端表示式

Tuesday, November 29, 2016

如何使用WinEdt来编辑中文PDF

最近有计划写一些帖子来记录这段时间学习和工作的思考。平时我有用word做一些笔记,但无奈word的公式不能直接转化为Web的Latex公式(虽然也有转换工具,但是我很不喜欢)。所以想了一个两全其美的办法,用WinEdt来做学习笔记,这样就可以直接把内容复制到网页了。

下载完WinEdt,发现不能兼容中文,所以做了一点设置就解决问题了。为了防止以后忘记,我把必要的设置记录下来,首先去下载WinEdt的中文版CTex (Chinese Tex),网址如下

CTex下载链接


安装完成后,如果要编译一个中文的PDF,有以下几点需要注意:


第一步:在文档中添加一个ctex包,下面给出一个例子


\documentclass{article}
\usepackage{ctex}  %加载包,因为我们在用中文写文档,所以必须加载这个包,否则不支持中文
\usepackage{multicol}  %加载包
\usepackage[top=1in, bottom=1in, left=1.25in, right=1.25in]{geometry}  %加载包
\usepackage{lscape}
\author{爱思考的猪}  % 作者
\date{2016年11月30日}  %定义时间
\title{准备金风险相关文献梳理}  %文档标题

\begin{document}

\maketitle

以上几篇文献都建立在Mack模型下的解析推导。De Felice, M., Moriconi, F. (2006)最先提出了“CDR”这个想法,不过他用的是“Year-End Obligations”这个名称。后来 W¨uthrich, M.V用的是CDR这个概念,其前两篇文章推导有些瑕疵,与De Felice, M., Moriconi, F. (2006) 不一致。后来,Merz, M., W¨uthrich, M.V. (2008)做出了修正,形成了较为完善的概念体系。

\end{document}


第二步:保存文件

一定要注意保存类型和保存文件名的后缀,类型选”UTF-8”,后缀选择***.tex


第三步:选择编译器

保存好之后,选择编译器XeLatex来编译,这个编译器对中文支持比较好。


第三步:选择字体

有可能在编辑器中出现中文乱码现象,那么设置字体为仿宋就好了Option→Preference→Font→FangSong(仿宋)


最后这个帖子不是原创,只是为了提醒自己...

Monday, November 28, 2016

Tuesday, November 22, 2016

实变函数:上/下确界与上/下极限的区别和联系

这个帖子已经在知乎里面回答了,现在直接贴过来吧。


知乎链接

简而言之:上确界是最小的上界,下确界是最大的下界,这个概念将用来定义上极限和下极限

简而言之:上极限是所有收敛子列极限的最大值,下极限是所有收敛子列极限中的最小值

Friday, November 18, 2016

如何成为数据科学家?(知乎live记录)

时间:18/11/2016

人物:北冥乘海生

数据、机器学习和产品体系的关系



研究互联网任何分支最重要的是研究它的产品,产品承载的是利用数据深度加工后的变现,机器学习就是这艘船的动力。

大数据链条是什么?应该有什么样的大数据视野?

    

  • 本质:什么是大数据?如何利用大数据?
如今对于大数据的处理和加工,google应该算是处于第一梯队,但是它并没有去刻意宣传这个概念。大数据这个概念原本起源于一家咨询公司,现在也没有明确的定义。

网络上诸如4V定义法:
数据量大(Volume)、数据多样性(Variety)、高误差性(Veracity)、输入和处理速度快(Velocity)),这种定义Liver认为只是是概念性、表面性的判断。


不同于4V定义发,Liver认为大数据本质上有如下三个特点:

行为数据,全量加工以及自动化应用。

行为数据:我们可以大致把数据分为传统数据和行为数据。举个例子,对于通信运营商来说,传统数据来源于交易数据,比如用户用了多少流量,账户多少余额等,而行为数据则是用户使用数据的时间,地点等等。行为数据往往量很大,可能是交易数据的100倍以上,并且一致性要求不高,对于少部分的用户数据丢失也没有关系,有相应的分布式架构如Hadoop来处理此类数据。

全量加工:先举个反例,有些数据总量非常大,但是可以通过每个省份进行采样,进而不需要复杂的分布式的系统来处理就能达到分析数据的目的,这种情况就不能算作是大数据。大数据必须是全量加工,即数据量大,不能通过采样等减小,几乎所有信息都要用来处理。

自动化应用:这里要先区分洞察应用,洞察应用指的是通过数据分析帮助人去做决策,比如运营人员通过机器学习,把数据总结成报表,来帮助公司CEO, CTO决策。而对于自动化应用,整个过程都是机器在参与,机器抓去数据,分析数据,以及自动决策,比如只能广告投放系统,也即Liver写的《计算广告》这本书所提到的。另外一个自动化的应用是电商的自动购货系统,通过机器学习来定价,分析消费者喜好,并且自动给供应商下单。

  • 产品:大数据能做什么?市场上是怎么做的?
大数据非常重要的一点就是了解产品逻辑,知道产品链条,这样才能去指导公司的研究和产品方向。


大数据链条的产品和问题:

收集:什么样的数据有价值?如何收集整理?举个例子,医疗行业,交易数据是用户的检查结果和病例,而行为数据是一个没有病的人的日常的生理指标。这些行为数据往往蕴含了极大的信息量以及潜在的商业价值。软银孙振义预测物联网将在2020年达到一个小高潮,人均sensor的连接数能够达到1000个,海量的数据将涌现。如何收集整理这些数据会是第一步。

加工:如何把数据加工成为有用的信息?比如数据在hadoop上如何存放,如何根据手机的数据获得用户的profile “画像”(我对画像的理解,比如生理特征:包含性别,身高,年龄,etc; 社会地位:职业,社会阶层,薪水,etc;社交等:社交网络种类,花在社交网络的时间;习惯:购物习惯等等,不一一列举了)

变现:通过什么样的产品,能够把数据变成钱?对数据加工后,就可以提供个性化的服务和推荐。比如计算广告,通过个人用户生理画像来提供医疗咨询或者是健康保险。比如帮助商家分析用户画像,制定最佳销售策略。

交易:数据资产如何交易?存在哪些问题?(不太清楚是不是指把这些机器处理后的数据卖给大公司,比如说是保险医院等行业)


这里需要特别指出收集这一环节,美国大选模拟投票和最后结果每个洲差不多系统性的偏差了5%,这就和数据收集不当有很大的关系,很多底层的白人采访和模拟投票都投希拉里,但是心里却把最后的票给了川普。如果数据采集不当,那么后面的机器学习和数据分析也就失去了根基。所以数据收集时必须考虑清楚,是否这些数据有代表性,数据量是否足够,有没有重大干扰因素等。


  • 技能:我应该准备好哪些技能?
首先来看看数据科学家吧,什么是数据科学家呢?


百度里的解释有点无厘头。Liver的对于数据科学家的解读则是:

数据科学家是采用科学的方法论,调用充足的计算能力,将大量人类无法直接处理的数据转化为有用的信息,以驱动自动化业务决策的专家。

Liver的核心观念在于自动化方面,Liver提到过以后的趋势是机器全自动化,没有必要很多时间在洞察应用方面。但我对这点持保留态度。

硅谷传奇投资人Peter Thiel的《Zero to One》里面花了一个章节来阐述机器和人工的关系。他讲了他当年创立Paypal的故事。Paypal在早期主要依靠邮件来进行自动业务支付,但是欺诈交易一直困扰这这家创业公司,公司决定通过机器学习,建立了一套反欺诈判别系统,由机器自动判别交易是否是涉嫌诈骗,但是随着时间的推移,聪明的黑客总能找到其中的漏洞,在后期这套系统仍然阻挡不了恶意交易的发生,从而公司每年要蒙受巨大的损失。后来他们使用机器和人工相结合的方式,机器通过大数据分析,挑出欺诈率很高的交易,然后由人工来进行最终确认。结果大大降低了欺诈交易的事件。所以在未来,机器还是不能完全取代人类,有些三岁小孩儿能够轻而易举做到的,机器可能永远也做不到。机器不会思考,只是执行人类设定的程序而已,还没达到真正意义上的人工智能。因为是任何人工智能都是程序化的,所以总有黑客能够找到程序的弱点进行攻击。而我们让机器进行决策,往往必须要使用精确的数学模型,而很多东西没办法通过简单的模型进行量化,比如人的情绪,想法等,从而造成最终决策的失误。所以未来自动化应用和洞察应用都会有其相应的市场,并不像Liver说的未来只是自动化应用的世界。

下面谈一谈Data Scientist。硅谷把CS专业数据相关的博士毕业生都叫Data Scientist。Liver认为数据科学家是指采用科学的方法论,调用充足的计算能力,将大量人类无法直接处理的数据转化成为有用信息,以驱动自动化业务决策的专家。


数据科学家必备素质:机器学习原理和方法、领域知识的深刻认识、分布式计算使用能力。

数据科学家核心能力统计学基本准则、机器学习建模能力、最优化、Hadoop/Spark及相应的编程能力、领域学习能力。


数据科学家的养成途径主要靠如下三个方面


意识:数据优先于经验,计算先于人工。这两点虽然看起来简单,但是却很难做到,比如在游戏里的草坪到底设置为什么颜色?经验告诉我们绿色比较好,因为真实世界就是这个样子,但是如果考虑到用户交互率,则可能数据分析后会有不一样的结论。而计算优于人工,则在广泛体现在A/B Test里面,比如报纸版式或者标题决策,还有游戏里面值的设定等等。

能力:熟悉一项典型应用,定义问题目标能力。Liver建议结合一个具体按理来学习理解,比如计算广告。定义问题是一项非常重要的技能,指的是把问题转化为数学上可优化问题的能力。比如搜索里面的NDCG算法,提出了一个搜索质量的定义,把一个复杂的过程问题转变为了可用数序语言描述的问题,从而可通过程序上可实现最优化,NDCG的提出导致了搜索行业很长一段时间的蓬勃发展。最后,建模能力如何培养?这个需要培养意识,扎实的理论和技术的积累,并在实践中不断的锻炼,没有捷径可言。

技能:机器学习、最优化、分布式计算、编程语言、博弈论


零基础应该从何做起?



了解行业:对数据产业的全链条、主要应用、核心产品、市场现状有具体充分的了解

打好基础: 熟练掌握机器学习、最优化、分布式编程等基本能力

抓住实践机会: 找到工业界的实际问题,在工程实践中检验和提高自己

另外数据领域不仅仅有数据科学家!还有数据工程师来维护开发大数据平台,数据分析师来做洞察应用等。而运营人员则不一定要对具体数学和技术很了解,但是必须要了解金字塔顶端。


推荐的书籍


数据行业概率:
《大数据时代》

数据行业实战:
《计算广告》、《推荐系统实战》

数据相关技能:
机器学习 :《PRML》、《Deep Learning》
最优化: 《Convex Optimization》、《Numerical Optimization》
分布式计算:《Hadoop/Spark》、MOOC等



这是我在个人主页上首发,转发要注明出处。

JasonHuang