研究和教学中的数学建模

提出问题,把问题转化成一个数学问题是科学研究中非常非常重要的两步。当然,解决问题和检验,也是重要的,不过,我认为比不上前者。把一个问题用合适的数学结构来表达,需要考虑这个问题内在的结构——也就是这个问题里面有哪些关键因素,这些关键因素之间有什么关系,这个系统的状态如何描述,如果有变化呢,则还关心如何变化、什么导致的变化。而这一步,传统上,叫做数学建模。

采用什么样的数学结构来描述所面对的系统的状态,这是数学建模要解决的第一个问题。理想情况,我们希望这个表示是忠实的:任何这个系统的状态都可以用这个数学结构来描述,任何这个数学结构的状态都在所面对的系统上找得到对应的状态;任何一个对这个状态的操作,正好对应这个数学结构上的一种映射;任何一个这个数学结构上的映射,正好对应着对这个实际系统的一个操作。当然,这样的理想情况一般是做不到的,这个时候,我们只要在我们关心的范围内满足上面的忠实性就可以,甚至只要近似地满足忠实性就可以。

于是,这个时候,我们自然要通过了解系统的状态,以及可能的对这些状态的操作,来寻找合适的数学结构。另一方面,我们也必须考虑,某一个在这个数学结构上能够做的计算,对应着什么样的实际系统的性质或者操作。

实际上,我认为,大多数时候,理论科学家,尤其是理论物理学家、系统科学研究者,都在做这样的数学建模的事情。因此,我也打算什么时候来建设一门数学建模的课程。实际上,这个帖子就是供我自己慢慢整理,形成一个这样的课程用的。当然,也非常欢迎有人给我提供线索。

比如说,量子系统的数学模型——以Hilbert空间矢量为基础的量子力学,就是这样的数学模型的极好的例子。当然,经典力学的质点——刚体——弹性体——流体也是,甚至背后的确定性方程——随机性方程也是。不过,有一些可能需要比较多的数学和物理的基础,不一定适合当做数学建模的例子。

网络科学的例子应该有很多,例如网络上的传染病模型,以及我们自己的汉字学习和检测的工作,广义投入产出分析的工作等。另外,昨天偶然得到一个很好的小例子:一个学生在计算地铁网络在攻击下的抗毁能力,主要通过攻击之后剩下的最大连通集团的大小来当指标;这个时候,一个自然的问题就是,为什么选择这个指标是有实际意义的,在实际问题中意味着什么,如果要让这个指标有实际意义我们需要做什么假设,这个假设是否具有合理性。在实际问题中,这样的思考往往就能够创新性的来源,并且这也是任何数学模型必须解决的问题——为了这个表示具有合理的“忠实性”,我们的假设是什么,数学结构和实际对象之间的联系是什么。

有了这个大原则——数学建模就是找到能够忠实或者近似忠实地表示实际系统的数学结构,我们还有一些更小的典型思维方式。比如说,数学建模更多的是艺术,而不是技术,尽管我们会非常努力地技术化一般化。因此,在教和学数学建模的过程中,就必须采用欣赏、临摹、创作的方式,而不是做大量的习题求解的方式。再比如说,数学建模不应该按照模型解法来分类教学,而是按照建模的思想,建模所需要的思维方式来做教学。更多的其他思维方式以后再整理,或者等遇到合适的例子再总结在这里。

基于这个数学建模的典型思维方式的重要性,在系统科学和物理学导论里面,都应该增加一小节关于数学模型的介绍、讨论和欣赏,除了专门开设数学建模课程之外。其实,这个小节比较简单,只需要用之前讲过的例子,但是从数学模型的角度来再一次欣赏和讨论一下就可以,而且可以放在数学和科学的关系那个大标题下面。

顺便,数学模型应该由科学家来教,而不是数学家。当然,非常厉害的数学家是能够看到数学和实际问题之间的联系的,也是受实际问题启发的。这方面可以看看Gowers的《Mathematics, a very short introduction》,或者丘成桐、陶哲轩对这个问题的讨论。不过大多数数学家就会进入某一个已经数学化形式化的问题里面去做。这也是由数学的特性决定的——严密的逻辑演绎在数学里面的特殊重要性:不想科学还可以实践检验,数学就只能检验内在自洽性,于是自然也就更强调严密。因此,这个不是数学家或者数学的缺陷,而是自然使然。那么,谁来教数学建模?科学家,有具体领域背景的科学家和没有具体领域背景的计算机科学家,一起来完成。

致病和治病同时传播的传染病

根据我们的汉字检测模型——那里实际上是一个字的状态——被认得和不被认得(加上未确定,其实三状态)——两个相互冲突的状态在网络上传递或者说推断,我们提出来一个三状态——待感染、染病和染药三个状态的传染病模型。待传染的个体可以通过接触染病个体变成染病个体,也可以通过接触染药个体变成染药个体。同时,染病个体也可以通过接触染药个体变成染药个体,甚至三个状态的任意一个;染药个体也可以通过接触染病个体变成染病个体,甚至三个状态的任意一个。

任何一个时候每一个个体\(j\)的检测状态记为(\(k_{j}=\left\{1, 0, -1\right\}\))分别代表染病、待感染和染药。我们有一个接触网络\(A\),代表这些个体之间可能的接触。染病和染药两种传播可以在一个网络上,也可以在同样顶点的两种网络上,传播矩阵(意义稍后定义)分别记为\(\Omega^{\left(\pm\right)} = \left(\omega^{\left(\pm\right),i}_{j}\right)\)。再简单情况下,可以直接取\(\Omega^{\left(\pm\right)}=A\)。在\(t\)时刻,任意一个个体的状态描述是\(p\left(k_{j}, t\right)\)。

这个模型和同一网络,或者双关系网络——同样的一组顶点通过两种关系形成两个网络,上的两种传染病独立传播模型最大的区别是:这里的两种传染病是可以相互抵消的。下面我们来考虑抵消的动力学。

两种传染病抵消机制的简化描述

我们也可以定义一套新的状态变量\(\eta^{\left(1\right)}_{j}, \eta^{\left(-1\right)}_{j}\),并且上面的几率分别表达成
\begin{align}
q^{\left(1\right)}=p\left(1_{j},t\right) = \frac{\eta^{\left(1\right)}_{j} \left(t\right) – \eta^{\left(-1\right)}_{j} \left(t\right)}{\eta^{\left(1\right)}_{j} \left(t\right) + \eta^{\left(-1\right)}_{j} \left(t\right)}\theta\left(\eta^{\left(1\right)}_{j} \left(t\right) – \eta^{\left(-1\right)}_{j} \left(t\right)\right) \notag \\
q^{\left(-1\right)}=p\left(-1_{j},t\right) = \frac{\eta^{\left(-1\right)}_{j} \left(t\right) – \eta^{\left(1\right)}_{j} \left(t\right)}{\eta^{\left(1\right)}_{j} \left(t\right) + \eta^{\left(-1\right)}_{j} \left(t\right)}\theta\left(\eta^{\left(-1\right)}_{j} \left(t\right) – \eta^{\left(1\right)}_{j} \left(t\right)\right) \notag \\
p\left(0_{j},t\right) = 1-\frac{\left|\eta^{\left(1\right)}_{j} \left(t\right) – \eta^{\left(-1\right)}_{j} \left(t\right)\right|}{\eta^{\left(1\right)}_{j} \left(t\right) + \eta^{\left(-1\right)}_{j} \left(t\right)} = 1- q^{\left(1\right)} -q^{\left(-1\right)}
\end{align}
注意,采用\(\eta^{\left(1\right)}_{j}, \eta^{\left(-1\right)}_{j}\)这组变量以后,问题极大简化了,这是一个假设。

现在,我们已经清楚了系统状态的描述\(P\)(每一个个体都有一个状态分布函数,整体状态构成一个分布函数大矢量。这个矢量的具体写法可以采用直积或者直和,再说,现在用不着)和初始条件\(P\left(0\right)\),我们来构造一个动力学过程\(P\left(t-1\right)\rightarrow P\left(t\right)\)。将来,我们要讨论这样的问题:末状态如何依赖于初始条件和模型参数。

我们先讨论动力学过程。每一步(记为\(t\)时刻),我们选择一个个体\(i\)来看其状态变化。

考察这个个体的一级近邻。对于每一个一级近邻\(j\)按照如下方式来影响\(i\)的状态:

  1. 如果\(k_{j}=0\),则没有影响
  2. 如果\(k_{j}=1\)(这个时候可以约定\(\eta^{\left(1\right)}_{j}=1,\eta^{\left(-1\right)}_{j}=0\)),则采用乘性传播
  3. \begin{align}
    \eta^{\left(1\right)}_{i}\left(t\right) = \eta^{\left(1\right)}_{i}\left(t-1\right) + \omega^{\left(1\right),j}_{i}\eta^{\left(1\right)}_{j}\left(t-1\right)
    \end{align}
    或者加性传播
    \begin{align}
    \eta^{\left(1\right)}_{i}\left(t\right) = \eta^{\left(1\right)}_{i}\left(t-1\right) + \omega^{\left(1\right),j}_{i}
    \end{align}

  4. 如果\(k_{j}=-1\)(这个时候可以约定\(\eta^{\left(1\right)}_{j}=0,\eta^{\left(-1\right)}_{j}=1\)),则采用乘性传播
  5. \begin{align}
    \eta^{\left(-1\right)}_{i}\left(t\right) = \eta^{\left(-1\right)}_{i}\left(t-1\right) + \omega^{\left(-1\right),j}_{i}\eta^{\left(-1\right)}_{j}\left(t-1\right)
    \end{align}
    或者加性传播
    \begin{align}
    \eta^{\left(1\right)}_{i}\left(t\right) = \eta^{\left(1\right)}_{i}\left(t-1\right) + \omega^{\left(-1\right),j}_{i}
    \end{align}

把以上的过程合起来,也就是
\begin{align}
\eta^{\left(k_{j}\right)}_{i}\left(t\right) = \eta^{\left(k_{j}\right)}_{i}\left(t-1\right) + \omega^{\left(k_{j}\right),j}_{i}\eta^{\left(k_{j}\right)}_{j}\left(t-1\right)\left(k^{j}\right)^{2}
\end{align}
或者
\begin{align}
\eta^{\left(k_{j}\right)}_{i}\left(t\right) = \eta^{\left(k_{j}\right)}_{i}\left(t-1\right) + \omega^{\left(k_{j}\right),j}_{i}\left(k^{j}\right)^{2}
\end{align}

必要的时候可以回来计算概率\(p\left(k_{j},t\right)\) 。这样这两种传染状态就能够相互抵消了。

更一般的两种传染病抵消机制的描述

例如,当一个健康顶点周围的染病或者染药顶点多余某个值,就会变成相应的状态。类似的,染病(染药)顶点周围的染病或者染药顶点多余某个值,就会变成相应的状态。

概念网络上的高效学习方式

对于一个的集合\(L=\left\{1,2,\cdots, i, \cdots, \right\}\)中每个个体的学习,如果给定了每一个学习对象的难度\(\vec{C}=\left\{c_{i}\right\}\)和价值\(\vec{V}=\left\{v_{i}\right\}\),我们的学习顺序\(\vec{S}=\left[s_{1}, s_{2}, \cdots, \right]^{T}\)的问题是这样定义的:

  1. 给定\(\vec{S}\)之后在第\(m\)步的累计成本为
  2. \begin{align}
    C\left(\vec{S}, m\right) = \sum_{j=1}^{m} C_{s_{j}}
    \end{align}

  3. 给定\(\vec{S}\)之后在第\(m\)步的累计价值为
  4. \begin{align}
    V\left(\vec{S}, m\right) = \sum_{j=1}^{m} V_{s_{j}}
    \end{align}

我们希望某种意义上——例如在学习过程中的任何一步或者都某个具体的第M步——成本最小,价值最大。

如果这些个体之间相互没有联系,则我们没有特别好的巧妙的办法,就是一个简单的优化问题。例如,我们可以先考虑两种极限:成本完全一样或者价值完全一样的情况。例如,前者,这个时候对于任何的\(\vec{S}\),\(C\left(\vec{S}, m\right)\propto m\),我们只能考虑优化\(V\left(\vec{S}, m\right)\)。于是我们发现,按照价值的递减顺序,也就是选择价值大的来先学就好。这时候能够保证在任何一步\(V\left(\vec{S}, m\right)\)都是最大的。更一般的成本函数和价值函数,应该,运筹学之类的学科也有答案了。如果没有,也无所谓,交给运筹学去解决好了。

更重要的问题是,一旦个体之间有联系,会如何?也就是说,一旦一个字\(j\)的学习难度会随着相联系的字\(i\)的学习状态(是否已经被学习到)而改变,这个时候,如何解决上面的优化问题。

那,我们先来看学习成本会如何变化。本质上,这个变化机制当然应该来源于实际学习过程。这里,我们先给出一个描述框架和大概描述。

我们认为,概念之间的逻辑关系,可以做为关联的客观表现。以汉字为例,汉字之间通过结构关系相互联系,这一点是客观的(尽管繁体字和简体字在汉字之间是如何从结构上联系起来的这一点上不一样。先考虑例如仅仅简体字)。例如:木——林——森,人——从——众,水——冰——淼,(木,一)——本,(人,本)——体。当然,这个客观的结构联系是否就能代表逻辑联系,是有待讨论的。也就是说,在汉字集合上,存在着一个逻辑关系网络,网络的每一条边代表上面举例中的一个字\(i\)(更简单的字,处在更底层)成为另一个字\(j\)(更复杂的字,处在更上层)的一部分这样的结构关系\(A=\left(a^{i}_{j}\right)_{N\times N}\)(这个矩阵的标记采用的是投入产出习惯的符号,从\(i\)投入到\(j\)。)。这个结构关系上面叠加了一层逻辑关系。这个逻辑关系可以用来改变学习成本。再次强调,这仅仅是一个理想模型。记每一个概念的当前状态——学到或者没有学到——为\(\vec{K}\left(t\right)\)或者每一个概念\(i\)的状态\(k_{i}\left(t\right)=\pm 1\)。例如,我们可以定义每一个字在当前时刻的学习成本为一个由网络结构和网络上各个顶点的当前时刻的状态决定的函数\(c_{i}=c_{i}\left(A,\vec{K}\left(t\right)\right)\),而\(\vec{K}\left(t\right)\)实际上是学习顺序\(\vec{S}\)的函数。于是,学习成本\(C\)和学习成果\(V\)都是学习顺序\(\vec{S}\)的函数。当然,这个函数由于有网络关系,比完全没有联系的情况要复杂。但是,给定网络\(A\),那么\(C\left(\vec{S}, m; A\right)\)和\(V\left(\vec{S}, m; A\right)\)就是完全确定的函数,就可以讨论优化问题。下面给出一种我们使用过的成本决定机制。

      

  1. 认识下层字\(j\),以一定的概率降低上层字\(i\)的学习成本,\(\omega^{j, \left(\uparrow\right)}_{i} \),和结构矩阵的元素\(a^{j}_{i}\)有关。原则上可以不遵循结构矩阵,来自于其他实证关系。做为一个简化模型,我们可以假设\(\omega^{j, \left(\uparrow\right)}_{i} = 0 \mbox{或者} a^{j}_{i}\)。更复杂的需要考虑理据性。
  2. 认识上层字\(j\),以一定的概率降低下层字\(i\)的学习成本\(\omega^{j, \left(\downarrow\right)}_{i} \),和结构矩阵的元素\(a^{i}_{j}\)有关。原则上可以不遵循结构矩阵,来自于其他实证关系。做为一个简化模型,我们可以假设\(\omega^{j, \left(\downarrow\right)}_{i} = 0\)。更复杂的需要考虑理据性。
  3. 有了这个改变学习成本的概率,我们再来看学习成本改变的值。采用递归定义:
  4. \begin{align}
    c_{i}\left(t\right) = \left(1-k_{i}\right) \cdot \left[\Pi_{u}\left(1-k_{u}\omega^{u,\left(\downarrow\right)}_{i}\right)a^{i}_{u}\right]\cdot \left\{1+\sum_{d}\left(1-k_{d}\omega^{d\left(\uparrow\right)}_{i}\right) \cdot \left[1+\left(1-k_{d}\right)c_{d}\left(t\right)\right]a^{d}_{i}\right\}.
    \end{align}

第一项的含义是,如果字\(i\)本身是学习过的,也就是\(k_{i}=1\),则\(c_{i}\left(t\right)=0\)。第二项的含义是,每一个字\(i\)上层字\(u\)如果学习过,则会成比例地降低字\(i\)的学习成本。第三项表示字\(i\)的学习成本包含三项——整体组合成本(按照单位一算),有几个子结构,每一个子结构如果不认得的话成本的累计。同时,如果下层的字学习过,则整体上会按照降低成本的几率再次降低子结构的成本(那时候子结构自己已经认得了,没有学习成本了)。由于采用了递归定义,整个网络不能有循环。其次,递归的每次都是从当前需要算成本的开始,然后往下计算——递归表达式中仅仅出现了往下的顶点的学习成本。

我们在Efficient learning strategy of Chinese characters based on network approach中的成本更新机制实际上就是上面的一般表达是的简化模型:
\begin{align}
c_{i}\left(t\right) = \left(1-k_{i}\right) \cdot \left\{1+\sum_{d}\left[1+\left(1-k_{d}\right)c_{d}\left(t\right)\right]a^{d}_{i}\right\}.
\end{align}
就算在这个简化机制下,我们也没有精确求解开这个优化问题。而是,基于对问题的理解,提出了一种近似算法:顶点权分配算法——后来我们发现实际上是一种广义投入产出分析计算。

现在,我们有了一个结构网络\(A\),两个这个网络上的逻辑关系\(\Omega^{\left(\downarrow\right)}, \Omega^{\left(\uparrow\right)}\),有一个学习顺序\(\vec{S}\),一个依赖于学习顺序的成本更新机制\(M\left(\vec{S}\right)\left|\right._{\vec{C}\left(t-1\right)\rightarrow \vec{C}\left(t\right)}\),以及初始条件\(\vec{C}\left(0\right)\)。还有一个价值变量\(\vec{V}\left(t\right)\),或者更复杂一点一个可能依赖于学习顺序的价值更新机制——这里当做价值不更新。

问:什么样的学习顺序\(\vec{S}\),会使得整个学习过程、在这个过程中的某个时间点m、或者在某个时间点m之前的过程中的学习效率最高——例如用平均每个字的学习成本来衡量。也可以为了学习到给定学习对象集合\(T=\left\{t_{1}, t_{2}, \cdots\right\}\)里面的所有的字的整体成本。

概念地图和大图景对于科学研究的作用

刚才和人聊天,讨论到如何来看自己和他人的研究工作,如何才能更有方向感。正好就体现了概念地图和大图景的作用。总结下来,跟大家分享。

大约在初入门研究工作的阶段,可能不太需要关心研究问题的选择——基本上是你的导师给你选的。随着研究工作的开展,了解的更深更广,有的人,后来就形成了自己的品味和自己的领域,学会了自己来做选择。有的人就一直在差不多同样的境界上:看某篇其他人的工作,觉得哪里做得好哪里做得不好,把不好的改过来,把好的迁移学习用到其他另一篇某个地方不好的工作上去。当然,这也是科学研究工作,没问题的。不过,不是为了学科做的研究,也不一定是按照自己的品味和兴趣做的研究。我记得那些年我们管这样的叫做修补匠、修地球。

那么,除了依靠研究者的悟性和积累,有没有什么办法能够做到研究自己的工作更有方向感,以及,对其他人的工作做出来更加合理的学术评价呢?

有,依靠概念地图和学科大图景。

我们说过,学科大图景​就是一个学科的典型对象、典型问题、典型思维方式、典型分析方法、和世界以及其他学科的关系。其中,最后那个是学科的典型责任或者典型目的。我们还说过,学科大图景最适合用概念地图来显式地呈现或者在研究者自己脑子里面非显式地表示,主要依赖于主题概念和概念之间联系构成的学科骨架地图。我也把这样的骨架地图的集合称为知识高速公路。

研究者首先要在脑子里面形成这样的学科骨架地图,甚至知识高速公路。一旦有了这样的骨架地图,我们就可以把具体的研究工作放到这个骨架上面来:看一下可能这个工作的研究问题在这个骨架的什么位置——是否靠近学科基本责任还是某个主要分析方法甚至是新的思维方式,还是说给这个骨架地图增加了新的概念或者显得连边。也就是说,我们需要依靠这个骨架地图来给研究工作定位。有了这样的定位,不仅仅对当前的工作能够形成更清楚和明确的把握,还能够提醒将来的研究的方向。

因此,在我这里就算硕士学生,我也会提供一个很长的研究问题和方向的列表,然后让学生来绘制自己感兴趣的学科和问题的概念地图,最后按照这个概念地图来选择研究问题。希望通过这个过程学会做领域综述,学会做骨架地图,并且学会用骨架地图来给研究工作定位。

因此,不管研究还是教学,实际上,关键都在用好这张反映学科大图景的概念地图。

会思考得自我

最近看了美剧《unabomber》。剧中有一个用邮件炸弹来袭击大学航空公司的恐怖分子。其原型是Ted Kaczynski,一个“不能仅仅用聪明来形容”(引自Wikipedia)的美国数学家,毕业于Harvard以及Michigan,曾经任职于UC Berkeley。对于他的恐怖行为,他写了一个名为《Industrial Society and Its Future》(工业社会和它的未来)的观点和动机说明。当然,剧中和现实中真正让FBI抓到他的线索就来自于这个说明文档的语言风格和信仰内容。

在说明中,Ted Kaczynski提出来了下面的问题:你在多大程度上在自己做主?例如,你有一个问题,你可能从别人那里,或者计算机上获得答案,因此这个问题的思考不一定代表你自己的思考,这个答案不一定代表你自己的意思。例如,你的工作有可能是按一系列的按钮,而这一切都是其他人安排好的流程。例如,你可能觉得我今天要穿什么衣服系什么领带是我自己决定的,但是有可能是你需要参加的婚礼或者工作场合决定了你的穿戴,或者由于昨天遇到一群人穿红色的或者某人有意的暗示,于是你特意了选择相同或者相反的颜色。更进一步,你觉得可能特意相反和相同,这个总是你自己的选择了吧?但是,其实,没准你的生活经验很大程度上决定了你是那种特意相同或者特意相反的类型。尽管在天体力学开始,很早就有宇宙运动的Laplace决定论,但是,Ted Kaczynski认为工业社会使得这个决定论的程度更大了,基本上所有的人都失去了或者很大程度上失去了自由意志,其看起来自主的思考其实也是假的,不是自主的。于是,Ted Kaczynski就决定用炸掉工业社会的方式来表达这个思想和寻找出路。当然,剧中更加有意思的事情,除了运用语言分析的方式来破案之外,主要破案人(主角)被这个视角震撼和说服,在破案之后,过起来了远离工业社会的生活。其中的一个镜头很有意思,在深夜的大马路上,没有任何的车,主角驾驶着他的车,停在红灯处等待红灯变绿:这个等待,不是他的自由选择的结果。

随着人工智能的发展,上面的问题会更加的严重。那么,出路在哪里?

例如,没有红灯的时候,我开得多快,加油、刹车、道路的选择,这些总该是我的自己的思考的结果吧,自己的决策吧?真的是吗?很快,或者说现在已经可以,我们就可以把驾车的任务交给人工智能了。于是,尽管现在看起来还需要驾驶者的决策,但是,实际上,驾驶者的决策只不过是人工智能的替代品,也就是说,所执行决策并不是真正意义上的决策,就是某个已经完全确定的思维过程思维模式甚至思维结果的实现和执行而已。例如,我们可以从菜谱里面学会和照着做某个好吃的菜,并且得到家人的欣赏。也许今天选择做什么菜是自主思考的结果,但是,至少做这个菜的步骤都是规定好的,不是自主思考的结果。原则上,将来可以发明一个机器也能够做这些。那么,选择做什么菜,以及编制出来这个菜单,是不是自主思考的结果呢?前者,请回到选择衣服和领带的例子。后者,如果是一个从来都没有其他人做过的组合,那么,看具体的情况,有可能是属于自主思考的结果,也有可能是“简单而重复地遍历所有的组合”这个体力活的结果。

也就是说,到底是不是自主思考,取决于,你所问的问题的是否已经有其他人思考过并且解决了,还取决于你思考的方式和渠道。如果完全没有人思考过这个问题(完全的意思是,不仅问题本身和答案是新的,而且连比较接近的问题和答案——可以通过这些接近的问题和答案来简单组合得到答案——都没有),或者有人思考过,但是你在提出和回答这个问题的过程中,确实不知道这个问题和答案,那么,这个是自主思考。这是你自己,这是自我。

于是,你会发现,只有创新性的思考,才是自我。

随着社会的进步,我们越来越多的事情,甚至有一些看起来需要做一些思考和决策的事情,会被机器所替代。如果我们思考的层次太低——活着为了吃饭,那么,必然我们会失去自我,变成某个机器上的螺丝钉,某个按钮的操作员,无论这个机器或者按钮看起来有多么的复杂。当然,并不是说这个螺丝钉和操作员的生活就是不好的——有的时候不用自己去思考的生活也挺好,尤其是当我有其他的值得和需要我来做创新性思考的问题的时候。我不会期待着我遇到的任何问题都是全新的问题。

因此,回答Ted Kaczynski,如何才能有自我,如何才能自己做主:做创新性的思考,思考完全其他人没有想过或者至少没有找到答案的问题。当然,如果你需要思考那些已经有答案的问题,你可以简单地通过人工智能通过搜索引擎或者其他人来获得答案,只要你心里还思考这那些创新性的问题,无伤大雅,你还是你自己。

如果你接着思考,这样的话,是不是大多数人都成了“失去”自我的人,仅仅少数真正的思考着才得大自在?是的,如果这些大多数人的思考没有真正的创新性的话;不是的,如果大多数人都来寻找新的问题来思考的话。你想,如果不这样做,就算在人工智能和工业化之前的时代,真的大多数人就有自我了吗?其日常行为不还是由吃的喝的以及管理者的皮鞭来决定的吗?

因此,不管过去、现在还是将来,会(真正创新的)思考者得自我。因此,我们的教育就更加应该关注学会思考学会问问题,而不是学会具体的知识。当然,具体知识还是需要的,需要把具体知识当例子来学会思考和问问题。

下次开课的时候,我把这个放在广告词里面,“《学会学习和思考》得自我”,以及“学会《量子力学》得自我”。

刚才看到有人发了一个最强大脑里面的片段:一个智力上和身体上有缺陷的人能够非常迅速而准确地计算高次开方。这属于典型的没有自我。第一、这件事情不是很难完成的,华罗庚有一个短文《天才和锻炼》做了揭秘并且做了锻炼实验(顺便,不仅理论上告诉你怎么回事,还实践锻炼一下,这个太了不起了)。普通人只要锻炼一下,是能够做到的。第二、这个高次开方的事情能够做到,意味着什么?只不过还是一个计算器的替代物,而且肯定没有计算器稳定可靠速度快。按照本文的说法,这是层次很低的思考,甚至不是思考,不会让你找到自我——不是你独特的东西,不是来源于你的自由意志的产物,不过就是照着菜谱做饭,不过就是学会了茴香豆的茴的第五种写法。这真的是非常悲哀的事情:就算你能够做非常好的四则计算,你能是什么,不过就是一个计算器!就算你能够做很好的微积分和矩阵的计算,你能是什么,不过就是一个Matlab!数学的核心是把一个看起来不是明显的数学问题的问题用数学的方式来表达,并且表达之后尝试寻找新的方法求解或者用别人已经提出来的求解方法来求解。当然,为了学会做这个抽象化,你可能需要掌握一些已经有的数学结构和已经有的求解方法。但是,终究,求解方法不是数学本身,远远比不上抽象化的体验和能力,甚至远远比不上具体的数学结构(例如集合、映射、群、域、矢量空间、流形)。第三,利用智力和身体有缺陷的人来做这个“魔术”,这更加就是不道德的事情了。第一,增加了表演者的学习负担——表演者自己喜欢的情况下除外;第二,利用同情心和强烈对比感,欺骗了观众。

甚至,你看看,整个最强大脑、汉字英雄、汉字大会、成语大会什么的节目在展示什么?除了细致观察能力可能有那么一点点促进你提出创新性问题的作用之外,其他的算术题、某个读音的字写上20个、某个诗词能够背出来,这些东西你给我一台电脑,我绝对可以做的比你好很多很多。实际上,美国也有类似的节目,不过在那里,终于有人有了类似的想法并且付诸实践——把IBM Waston拿出来去参加这样的节目。如果我们的社会到现在仍然在赞扬、欣赏、羡慕和培养这种层次的能力,那么,就是集体丧失自我。当然,大多数人丧失自我也不是一件多么神奇而不可预料的事情。那么,我们教育者和科学家的责任就是尽量使得那些还有希望找到自我的人找到自我。