在我们从小学习数学的旅程中,培养对数学的直觉式的敏感,以及分析问题能够不重复,不遗漏,具备完备思维逻辑的能力是贯穿我们整个学习生涯的。比如有的同学可能很擅长猜想,最极端的例子自然是哥德巴赫猜想,还有费马同学在书上留下的一大堆没有证明完的定理;而有的同学更擅长去建立一个理论体系,内在逻辑完备,完美无缺,古有牛顿-莱布尼兹的微积分体系,现代则有香农的信息论系统,我想最开始有这个想法去建立这套系统的人可能不是他们,但是构建起这些大厦的,离不开这些数学家的严谨逻辑。
最近我在学习抽象代数中的群论,尤其是对称群(symmetric group)和其子群置换群,或者叫排列群的相关性质的时候,也深深地体会到了,数学的严谨证明,和能否有能力去用好数学工具去发现和解决问题,其实是两方面能力。我们发现一些应该成立的结论是直觉,能不能够构建逻辑体系来完备地说明,是严谨。
那作为数学的学习和科学素养的培养,是直觉重要还是严谨重要呢?它们分别有什么特点?
什么是数学直觉和严谨?
首先看直觉。举例来说,我们以前理解的排列,其对应的实际对象可以是比如一串珍珠,一叠作业本,一排行道树。我们轻而易举也能理解它们,并且十分直观地我们就能回答诸如,第一颗珍珠,下一本作业,树有多少棵这些问题,甚至压根都可以不需要直到世界上还有排列这种数学结构,就已经可以用这个抽象结构里的术语来描述问题了。这便是数学直觉,我们的大脑有一种神奇的能力去发现和学习客观世界里的结构。哪怕我们并没有严格地数学化这种结构,也因为大量的实例数据总结出来了,并且在大量的场景中已经足够通用,这其实也是数学建模的过程。它们虽然没有数学符号化的严谨,但是口口相传,一直没出问题,在不要求那么严谨的日常生活中,反而是最可行的方法。
那严谨的数学来看,排列是什么呢?其实所谓的排列,在数学上可以有两种结构来表达。第一种直观的建模自然就是一个集合对象的编号,也就是自然数列的前面若干项到对象的一一映射。但是你在还没有去定义自然数列的序列性质之前,这种映射其实并体现不出来序列的性质,而真正教科书上排列的定义,其实是一个集合到自身的双射。我的天,好好的一串的前后排列,竟然给建模成了一个奇怪的自身到自身的双射。但其实,这个结构才是排列的本质,用集合论的语言,不借助原始的自然数序列,就彻底地描述清楚了。
另一种是从生成角度定义的,那就是一个叫作下一个的函数,其每次复合都可以产生新的元素,第一个元素叫起点,最后一个叫终点。也就是说,排列其实是一个名叫下一个的函数。这个函数满足上述的性质。后来学到,这种关系叫作一个全序关系(迹,trail),满足了反对称,传递性和完全性/可比性/三分性(也可理解为相等元素的反身性,不等元素的亦或性和传递性),比如数值的大于等于就满足,一串有头的珍珠的前后关系也满足。但是把它头尾连在一起就成了圈(cycle),球队之间的胜负关系也不一定满足,比如可以有环等等。而如果剔除掉完全性和其等价性质,那就是偏序关系了。
看到了吧,我们明明可以直接理解和掌握的序列这种对象,凭借大脑直觉的经验总结,就可以很好地建模了。但是要说明其严谨的结构,比如把它建立成一个集合到自身的双射,或者一个满足全序关系的结构,反而失去了这个结构从整体上能够给人带来的直观感受。但是其好处是,这样建模以后,在这个框架内,你可以轻易地用逻辑就判定一个命题的真假,虽然这个过程看起来有时候是显然的,但是一旦遇到反直觉的事情,这样的逻辑思维就有绝对的优势了。严谨的数学人从来不相信知觉,如果任何一步推导所做的假设哪怕有一丝的问题,他们也会直接当不对处理。这也是形式逻辑和辩证逻辑的区别,形式逻辑只要找到一个反例,这条路就推不下去了。而辩证逻辑可以很轻易地去接受一个大体上成立的事实,是更加经世致用和均衡的。
更多案例
再举一个例子吧,小时候我们都学过鸽笼原理,在用这个原理解决问题的时候,脑海里就真的在想,几只鸽子,几个笼子,鸽子多一只,那至少有一个笼子有两只鸽子等等。这么讲解其实是方便同学们记忆,实际上,这个原理可以用一个定理来描述:一个大小为(n 1)的集合不存在一个到大小为n的集合的单射。而这其实很好证明,直接用反证法推出矛盾就好了。但是这显然不如直接的鸽子,抽屉这样的直观对象容易理解,而这个直观对象其实恰好就是这个性质的最典型的表达,我们的描述也几乎抽掉了其他无用的具象因素,又抽象,又方便感性大脑的理解,何乐而不为呢?
记得小时候还学过一个糖水不等式,说 (a c) / (b c) > a / b。我们假设承认了物理定律:糖水加糖会变甜变浓,以及浓度的计算式子,那就是说上面的式子在a < b, c > 0的时候成立。这种定律式的结论其实就是一种直觉。虽然这个问题的数学证明也很简单,但是引入直觉去观察式子的物理意义对我们找到证明思路也十分有帮助。
又比如,我们在学习函数的单调性的概念的时候,往往需要记住它的定义。当x1 < x2,有f(x1) < f(x2)。可是实际上我们对它的直观理解,就是一条向上走的曲线。虽然这样的描述很不严格,比如x压根就不是数,<也压根就不是数值的大小关系,可能是别的二元关系。但是我们记住它是一根向上的曲线,我们就很好地可以理解导数的正负和增减的关系,朝着导数方向走会如何等等。哪怕这种结论可能严格来说并不完全正确,但是在辩证逻辑看,这是十分有用的结论,而且直接用上,也许可以对结果大幅地改观。就好像数学家还在那里苦命地证明,机器学习专家已经把代码跑起来了,数学魔术师已经用好结论去创作新的魔术了。但是人类的逻辑大厦总得有人靠着严谨的数理逻辑去搭建,保证我们人类科学的种子的地基足够牢靠。但是直觉,也是人类不可多得的智慧形式,甚至更有独特性,创造性,不可替代性。
还有一个例子,就是极限的概念。我想大家在一开始学习极限概念的时候,脑海里一定出现过那个,哎呀,当ln(x 1) / x的x趋于0的时候,它的值到底是多少啊?我们会想象分子分母这两个数在0附近的变化趋势。那自然又能想到,在0附近的导数不久代表了那附近的逼近速度,自然也就知道了那附近的比值大小了,那就差不多是两个导数的比了吧?
没有严格的证明,谁也不敢这么做,也不知道哪些地方是你刚才的直觉可能没有考虑全面,可能有问题的。但是数学上的一个巨大进步便是,把这种极限的人脑概念居然用一套符号语言给完全描述清楚了,那就是epson-dirta语言,把极限的概念完全量化了。由此,我们才有了敢只要满足条件就敢套用的洛必达法则,才有了牛顿-莱布尼兹公式。你说这epson-dirta是我们人脑原始理解极限,逼近时候的思考方式吗?绝对不是,但是这却是数学定义中最接近我们的中思维的表达,是一次伟大的对人脑极限概念的数学建模,甚至以之结果称为真正的极限的定义,而不再只靠直觉了。这便是严谨的数理逻辑给人类的伟大贡献。比如,我们在用程序解决问题的时候,用的就是计算机的思路,并不是人脑的思路,因为那种思路,才方便用好它的资源来解决问题,而人类本身解决的方案,当个参考好了,压根不需要强加给计算机。比如,NLP任务中的语言模型,语音识别,关键词,分词等等任务,其实和人类理解的方式是有很大区别的,但是那又何妨呢?它能够堆数据,砌模型利用好它的算力和存储力的优势就行了。
总结
总结一下,我们因为有数学直觉,所以可以有很多的猜想,发现和描述,甚至直接解决很多问题,很多工程科学其实需要的就是这等能力。可能有的师傅可以有很好的工艺去打磨一个零件,你完全不知道是怎么做到的。你问它这里有没有什么逻辑和规律,还真难得找到,就是靠人脑和这件事不断交互,熟悉所培养出来的直觉,其实就是勤奋的汗水了。但是,我们人类也需要在一个平行世界里去构建一套逻辑,在这套逻辑框架下演进,去总结目前世界的客观规律,并在这个系统内推演出可能的未来,去用数学语言构建理论。这等严谨的逻辑正是数理逻辑,只有是非,没有对错和优劣,这个世界的思考足够纯粹和安全。当然很多非数学专业人士就会认为这种思考很无聊,殊不知哪怕你并不会以后去构建什么逻辑大厦,但这种基本的思维能力能够在多数时候凭借严谨发现很多直觉解决不了的问题。
当然了,世界的发展推往往是由物理学家的直觉和数学家的严谨共同推动的。有时牛顿快一点,有时候欧拉快一点。而现在某个时代谁快谁慢其实很好判断,就看这个结论是叫定理还是叫定律就好了。比如牛顿三定律就是先用直觉总结的规律,而动能定理就可以由做功和动能的定义推导而来。而机械能守恒定律居然叫定律,是因为最开始数学工具还没有跟上的时候当规律直觉地想象着发现了,但是后来很快就用动能定理和势能的定义所推导出来。但是对不起,人家已经叫定律了,这种马后炮的推导,只能叫证实罢了。
但大道至简,殊途同归,我想直觉作为上帝送给大脑的灵感,再附上艰苦的逻辑训练带来的严谨方法论,一定是称为任何一个领域内专家的秘密之一。而所谓的直觉,灵感,我相信一定也有其物理基础,高一等级的智能体能研究和制造低一等级的智能体,我们人类觉得伟大的直觉和发现可能在更高一等的上帝看来就是如此简单,而人类内的横向和纵向的比较来看,数学家的日常逻辑对普通人可能就是天书,哥白尼的日星说竟然是反当时的只觉的,行星运动规律应当和原子相当和预感两个铁球同时着地的直觉猜想在现在看来是这么的稀松平常。
我们一定只是智能体链条上微不足道一环,直觉其实就是日思夜想的积累下大脑能力的馈赠。然而受人类天赋所限,这些直觉化的思考可能并不正确,逻辑大厦则是人类给自己构筑的铜墙铁壁,内部坚不可摧,可是也并非所有场景无往不利。因此,我们在我们需要的学习和工作领域,放自己进去直觉化感受和思考,再用数学语言逻辑化存下来,我想这就是完成我们人类这个级别智能体任务最本分的方式了。
世界上哪有什么直觉和灵感,都是热爱基础上的千锤百炼,至于严谨到数学的级别,那是自然而然的产物。
共勉。