查看原文
其他

田渊栋:数学的用处(下篇)

算法数学之美

日期:2019年2月26日

正文共:4367字1图

预计阅读时间:11分钟

来源:田渊栋


详情请见:数学的用处(上篇)

数学的用处(三)

人类自从有了智慧以来,一直以概念来描述世间万物。首先,我们给身边的每样物 体起名字,天,地,日,月,山,水,风,雨,都是独一无二的具体概念。渐渐地, 名字太多不好记,就开始以组合的方式命名。比如说,取两件事物相关联的特征来 指第三件事,暴雨落于田野,声音很大,于是起了个名字叫“雷”,亮的东西,就 像那太阳和月亮,于是就起了个名字叫“明”,等等。

在这种方式下,每个名字都渐渐丢失了原本具体事物的个性,而变成了很多事物共通的特征。在特征上研究而得到的规则和逻辑,能应用于所有具有这特征的事物, 因此有极强的推广能力,所谓“举一反三”是也。比如说,知道了“一加一等于二”,我们就知道一枚硬币加一枚硬币是两枚,一个苹果加一个苹果是两个,任何 单个同种物体相加都是两个。加和之后的数量,只和加和前的物体数量有关,和物 体的其它特征,比如说方的,圆的,红的,绿的,是没有关系的。 

日常概念,比如说数量,颜色,形状,大小,用自然语言都能解释明白,逻辑也清楚,数学在这里就显得“没什么用”;但如果要从日常抽象出的概念中,再一次地抽出共同的特性来加以理解和分析,即所谓的“抽象的抽象”或是“高层抽象”, 数学就有大威力。它的精确简洁,恰好击中了日常概念模糊冗长的命门,就可以在 坚实的基础上,建起高层抽象的大厦,并且仍然能保持严格的逻辑自洽性,不会出 错。 

一个经典例子,是求解多元线性方程组。一元(像 4x=12)是小学生课程,两元 (像求两直线交点)是初中生课程,三元以上就会令高中生们头痛了,因为求解的 过程漫长凌乱(我相信这是很多人恨数学的原因)。到了大学的线性代数课,矩阵 粉墨登场,利用高斯消元加上克莱姆法则,一下子就可以解任意多未知数的线性方程组。 

别看我们只学了半年一年,历史上这一步质的飞跃,花费千年。中国人试过,印度人试过,阿拉伯人试过,最后欧洲人终于建立了完整的体系,使这一问题得以彻底 解决。今天我们能看见火箭上天,能开着汽车到处走,能造出芯片,能玩 3D 游戏, 能看高清的数码电影,全要拜它所赐。从此以后,我们不用像高中生那样为解一个 三元一次方程组写一黑板的推导,而只要在 Matlab 里写一行就可以了:

 x=A\b。 

漂亮不?有了矩阵,我们的思维就不再挣扎纠结于四则运算细节,因为简洁有效的 矩阵运算(二级抽象)自然包含了繁杂的加减乘除(一级抽象)。大脑解放了之后, 就可以腾出空间来寻找更高级别的规律,新一层的抽象就又开始了。比如说,脱开 解线性方程组这个具体应用背景,而单纯考虑矩阵和向量运算的各种性质,我们看 见了它的线性特征和几何对应,于是就有了线性算子的概念,特征值的概念;考虑 矩阵之间的加法和乘法运算结构,我们可以抽象出群和环的概念。数学的大厦,就 是这样建立起来的。 

另一方面,高层抽象的成功构造,反过来会影响作为其基础的日常概念的选择。理 论是发展的,在发展过程中各种概念可以ᨀ很多,但是有用的概念需要经过时间的 检验,其中一种检验方式,就是看这个概念能在将来的体系中走多远。从牛顿力学 发展到相对论和量子力学的这个过程中,有些物理概念虽然很直观,但在更广泛的 情景下无法推广(比如说“力”),于是就渐渐废弃;有些概念初看起来很奇怪, 但后来被发现在各种情况下都找得到它的影子(比如说“动量”),那就大行其道。 为什么我们有碳氢氧的概念,却没有“燃素”的概念,因为前者导致了化学这一体 系的诞生,而后者的结论都被实践否定,像一篇没有后续工作的文章,渐渐被人遗 忘。 

有人就会问了,大部分高级抽象和我们平时的工作没啥关联,有必要学习它们么? 答案是:确实没有必要(笑)。数学家们把这种抽象过程当作游戏,自得其乐地在 那里不停地发文章;而我们工科生要解决实际问题,要以最小的代价命中问题的要害,只取所需要的部分就行。虽然如此,但是—— 

学会这样一种自下而上的,多级抽象的思考方式,个人认为是数学带给我们的最重 要财富。 

有效率的思维,是像一束激光,在合适的时候聚焦于问题关键点,而忽略细节;等 解决完了,再重新分析,迅速切换到下一个关键点,几个关键点一解决,纲举而目 张,问题自然解决。而关键点如何选择,大节如何把握,细节如何忽略,就是需要 不停磨练的艺术。每次细节复杂,逻辑关系混乱的时候,不是拼耐心把它们全都解 决,而是移开目光,朝天仰望,想一想其中有什么最重要的成分,把他们抽出来反 复理解,按照重要和次要排序,最终理顺关系,再开始动手。 

在这一点上,发展几百年的数学体系给了无数的范例可供欣赏。每一个公式或是定 理,都是去粗存精后的结晶,都让人惊喜于巧妙而简洁的假设,有趣却严格的分析, 和精致而广泛的结论。理解了这些,才真正体会到何谓数学之美—— 

数学不是令人生畏的满屏公式,不是折磨人的重复计算,是有关“如何对概念进行 抽象”的精巧艺术。 


数学的用处(四) 

现代科学发展到如今,大部分学科的原理都已发现,理论体系都已建立,纯净实验 室里的,以控制变量法为准绳的实验,基本上把大到太阳系,小到原子核,长到几 亿年,短到几皮秒的世界规律和基本原理都挖掘得差不多了。 

科学的任务,好像已经由我们上一代的科学家们完成了,余下的,似乎只是反复使 用和组合原理以达成具体目标的“工程实践”而已。我们在上大学的时候,都有这 样一种感觉,好像理科最为神圣,工科则等而下之,因为工科触及各种零碎细节, 却不对基本原理伤筋动骨。 

其实不仅是我们,二战后的科学家们中间也弥漫着这样一种乐观的情绪,认为有了 原理,一切都所向披靡,过不了二十年,会有机器人为我们端茶倒水。人工智能? 图象识别?全都是归在应用领域的小事情,一个 MIT 学生的暑期项目而已。 

但是实际上,我们的认识大错特错了,工程实践听起来轻᧿淡写,但实则重逾千钧。 简单原理的组合,却会产生无限的结果。有机化学里碳氢氧氮四个元素,不知道组 成了多少有机化合物;ATCG 四个碱基和二十个氨基酸,编织出地球这个丰富的生 物圈;0 和 1 两个状态改变了人们的生活方式,那是大家都知道的耳濡目染的事实。 如何为无限的组合建模,如何进行有效的匹配和识别?在这一点上,我们现在还处 在一张白纸的状态。 

个人觉得,这也是五十年来科技没有大发展的原因。各行各业都遇到了“有效计算” 和“原理组合”的瓶颈。DNA 复制的机制发现了,碱基编码却迟迟无法破解;大脑 单个神经元的动作非常简单,但是它们成亿地连在一起,所做的事情却神奇般地统 治了整个人类世界。对这样的复杂系统,目前我们的办法,或是用统计的方式把复 杂系统当成黑箱,通过对群体的普查找到输入和输出的相关性;或是通过实验,像 调程序那样一点一点追踪找到某个具体机制的运行(比如说药物动力学)。前者往 往引起争论且不适用于个体,而后者则太慢太费时。 

本质原因,是因为在一个复杂系统下,存在各种大小问题和未知因素,没有清晰简 单的统一框架和原理可挖。在这样的系统面前,数学往往显得僵硬和不灵活,而且 越是漂亮庞大的体系,越是精巧的数学抽象,越难套进去,不是这里多出个不必要 的假设,就是那里有诸多约束无法践行。我们做计算机视觉的,都有这样的体会, 简单的,通过分析问题得来的步骤拼凑,在性能上往往远远胜过按照精巧的数学框 架得来的算法。上世纪初,像爱因斯坦那样将黎曼几何应用于广义相对论的神来之 笔,或是泛函分析和算子代数用于量子力学的伟大成就,或是用外微分形式和张量 等精巧的数学工具将整个物理教科书改写一遍的事情,现在已经不太可能复现了。

难怪大家都要感叹数学无用论。 

怎么办呢?蓦然回首,传统的人文科学,处理的正是复杂系统的问题。不管是分析 性的如历史,法律,语言,经济,文学比较,考据,还是创造性的如绘画,音乐, 写作,都是要面对大量先人作品或是过去文献,先熟悉咀嚼体会所从事的领域并且 进行积累,然后加以比较分析鉴赏,接着从反复联系到简单模仿,最后从小步创新 再到观念革命。自古以来,这个过程并没有计算机的参与,而是纯以人脑之力分析 理解数据,通过长时间的经验积累慢慢在大脑中形成正确的概念和模型,最后举一 反三触类旁通,成为专家和大师。 

这是人处理问题的“数据驱动”的方式。而获取经验(或是数据)的过程,就是所 谓修行和积淀。每个人能否有成就,不仅看个人天赋修为,还看各人人生际遇,一 本书,一件小事,一个朋友,一句话,外人毫无察觉,对自己却有莫大影响,乃至 改变人生观和人生轨迹,进入下一个境界。这是人之所以为人的魅力所在,但站在 解决问题的立场上,这种慢和不确定,却让人无可奈何甚至抓狂。 

幸运的是,在这个时代,我们有了大量的数据和计算资源可用。随便一台笔记本就 能在几分钟内扫过莎士比亚的全部著作或是最近几百年来的全部新闻,就阅读量而 言远远超过以往所有语言专家的阅读量总和。随着各类传感器的普及,我们可以知 道每时每刻身体的信息,远远比一位专科医生一次门诊所掌握的信息要多。有了这 些数据之后,我们设计一套学习机制,一个自动算法去为海量的数据建模,自动抓 取出概念和规律来。 

在这个环节上,数学重新找到了自己的用武之地。这时候,我们已不在乎某个具体 的数学公式是不是能运用在某个具体的问题上,而是去建模大脑的抽象过程,去思 考思考本身。这一回,我们再一次进行了高层抽象,将概念的形成和推导过程,变 成可以由计算机贯彻执行的严密步骤,是在吸收了大量数据之后,为了保证有举一 反三的推广能力而导致的必然结果。 

这就是所谓数据驱动下的人工智能。 

在这建模过程中,以前的任何一种数学工具,只要是有用,都会被用到。数学的体 系还在,只是符号的意义完全不同,以前向量里放的是速度,是位移,今天放的则 可能是单词出现的频率,是某个像素的颜色。但是没关系,数学符号本来就没有意 义,数学的逻辑结构才有意义,这就是数学的威力。 

当然,数据驱动的建模风格,和以前有所不同,最主要的,是自由度的数目不再固 定于问题᧿述和物理背景,而开始依赖于数据的个数。像矩阵这样的工具,因为可 以容纳任意的自由度,已经被使用了好多年;更多数学结构,如微分流形,如李代 数,如群论,如多项式环,也正在被一一挖掘出来,虽然不见得都有作用,不见得 计算上经济实惠,但是在这场人工智能建模的赛跑中,多一件武器有什么坏处呢?

古代战场上一人能对付两三个就很了不起来,俗话说双掌难敌四手;但是在现在这 个满世界都是廉价工具的环境下,处理起事务来以一当千完全可能,几台电脑,几 千行代码,可以轻松完成以前需要几万个人的手工作业,够震撼人心了吧?但我个 人认为,信息革命三十年,这些还只是前奏,等到人工智能发展起来,等到对大数 据的分析趋向成熟,等到信息技术充分渗透其它产业,等到传统的文科因为更多数 据的到来而变成基础扎实的理工课程—— 

到那个时候,我们再回头看来,今天的这些成就,不过只是历史的先声。

- End - -


更多精彩:

一位中科院退学博士生的感想

华中科大两领导被曝论文造假 涉嫌大段抄袭!盘点那些著名的学术造假事件 !

数学的用处(上篇)

清华北大或者其他 985 高校的学生都很牛吗?

业余做研究的经验

普通程序员如何转向AI方向

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存