几个项目召唤研究者

除了要求比较高的非平衡疏运理论、汉字结构与汉字学习项目,目前,还有几个相对来说比较容易上手的项目需要多个研究者。我把它们总结在这里。

  1. 广义投入产出和拓展PageRank研究一个系统中主体的排名和相互影响
  2. 最后通牒博弈理论和实验的研究
  3. 几个移动App的开发

广义投入产出和拓展PageRank研究一个系统中主体的排名和相互影响
我们最近提出的广义投入产出方法和拓展的PageRank算法,可以用来讨论学术单位(大学和研究所、国家、作者)、学术领域、期刊、文章等各种主体的排名和相互关系。本质上就是问这样的问题:如果某一个主体的贡献缺失,对整体产生什么样的影响,对其他每一个主体个体产生什么影响。

实际上,这两个分析方法还可以用于经济领域的排名和相互影响,产业链或食物链中产品或者物种的排名和相互影响,专利领域和各个专利在整个专利研究中的排名和相互影响。甚至,如果有数据,例如有研究经费、研究论文、专利、专利的经济效益这个大系统的数据,我们可以讨论这样的问题:某一项研究在整个经济和科学技术中的地位。

目前,论文发表的数据比较全、专利的数据有一部分、经济领域的数据比较全、食物链的数据有相当一部分,需要研究者来开展研究。如果是研究生,就需要学习我们的方法(思想、算法和程序),然后(可能需要稍作修改)运用到以上的各种数据上,然后与各个领域的专家一起来完成找到值得呈现的结论,最后完成文章的写作。这里每一个不同的主体,例如研究领域、作者、期刊、大学等等等等,都是一个独立的有待完成的工作。

这里的具体问题主要是科学计量学和经济学,但是,如果你学会方法以后,找到其他的方向可以运用这个方法来回答那个领域内部的研究者感兴趣的问题,那么,只要找到合适的数据,你就可以开展相应的研究。

最后通牒博弈理论和实验的研究
在最后通牒博弈中,基于完全理性的博弈理论给出的结果是提议者给出最少的不为零的钱给接受者,而接受者接受这个提议。实际实验和观察的结果都不符合这个理论结果。于是,构造一个理论能够给出与实验和观察相符的结果就是一个非常重要的问题。

在现有的理论中,基本上还是坚持决策者的行为是在追求某种目标函数的最优化的这样一个思路。只不过,考虑的因素,除了钱,还包含公平性、利它性、声誉、报复、博弈着之间的联系等。当然,博弈的基本精神就是,在考虑最优的时候,不仅仅要考虑在对方行为确定的情况下自己的最优,还需要考虑对方的行为也是通过假设“我”的行为确定的情况下做优化来确定的。因此,这个最优化不是简单的单一主体和单一目标的最优化,而是多主体、多目标(通常一个主体一个目标,也可以更多)的最优化。

更一般地来说,除了“最优”的思路,我们还可以考虑“更优”的思路,也就是说,决策者不是选择最优的那个行动来执行,而是按照一定的比例来选择更优的行动(不是最好的也会被选中)。

更更一般地来说,没准,把所有考虑的因素放到一个目标函数里面,然后来考虑最优或者更优,都是理论上极大的简化。因此,有可能需要一个放弃整个这样的目标函数优化的思路来构造理论。注意,我们的大部分物理学其实也是符合这个思路的一个理论。当然,在我们不得不这样做之前,我们还是希望在这个思路的范围内来构造我们的博弈决策的理论。

具体到最后通牒博弈,我们就需要找到这样的一个目标函数,并且,这个函数里面的量都是可定义和可测量的,里面的参数,如果有的话,也是可以确定出来的。而且,根据这样的一个目标函数,我们可以通过最优或者更优的方式来给出理论结果,并能够与实验和观察相符。

目前,我们的实验方案已经基本确定下来,初步的结论也很有意思,不过,还有大量的实验工作和数据处理、理论模型的建构等工作需要展开。如果你有兴趣做一些对理论有基础性贡献的,用数学物理的角度(或者说科学的角度)来做一些社会科学理论研究的,工作,那你可以来尝试一下这个。

几个移动App的开发
在研究工作以及作为一个科学家的日常生活中产生了很多可以分享给其他人的产品的想法。有实现的价值。

例如,最近我想起来实现一个多次多通道计时器。多通道就是有多个计时的任务相互重叠,一个没有完成另一个就已经开始的情况。多次就是一个计时任务中需要设置多个提醒的时间点的情况。多次在学术报告中会经常出现,例如离结束5分钟、2分钟和结束分别提醒。多通道在完成多任务的时候经常出现。这样的功能,也可以通过专门的硬件来实现,但是在手机时代,用手机App来实现是最好的方式。当然,这个App非常小众,钱途堪忧,对需要的人却很有价值。

其他的更多的ideas还包括强制事件和日程管理、课程和报告点评等等。有兴趣和能力的,可以一起来做做。

教育到底应该做什么?

教育的根本职责是让受教育者学会和开始思考,给自己树立一个驱动力,一个人生的目标,并且从而成为整个社会的驱动力。教育的次要的目的是为受教育者进一步自己学习做好准备,这个准备包含学习意愿、学习方法、核心基础知识、学科的核心思想和方向大图景几个方面。

一个梦想和驱动力有多重要?自己能够形成自己的梦想,选择自己的道路,有多重要?用一个不太恰当的例子来说明。两个人面对一样的每一天几乎都重复的,“无聊的”生活。一个有自己的追求和思考,通过思考和这个世界历史上(和现在)最有创造力的人交流。一个为了活着。你觉得生活体验能够一样吗?因此,至少梦想、动力和自由是欺骗自己的很好的理由,就算也许有人觉得你挺惨。教育的根本目的,我认为,就是让你思考人生,思考别人不思考的问题,确定目标,有选择的自由和欲望。

就教育的次要目的的这几个方面的准备来说,理解和内化这些基础、思想,梳理大方向,把它们变成自己思考的基础,在对学科的情感方面受到教育者的影响,才是真正做好了进一步学习的准备。

学习完整的知识绝对不是目标。老师们绝对不是搬运工。从教科书搬到课堂上,希望学生能够从课堂上搬到脑子里面。那么老师到底要做什么呢?

大部分的老师,都在做无脑教学:找一本教材,自己看看,跟着讲一遍,或者已经看过一两本教材,跟着或者揉合起来讲一遍。小到一门课,大到一个专业,到底要教学什么,学什么,基本上是没有思考的问题,因为前辈们已经定好了,有了一个规范。信息技术使得大部分记忆性知识变得非常容易获得。现在生产力的提升大部分来自于提出和解决前人没有解决的问题。这两点——原则上应该会很大程度上影响教学和教育的事情,基本上没有进入教师的脑袋。积累和创新、迁移的关系,理解和自发运用的重要性,没有被大多数教师认知。

于是,我们看到,学生们进了大学之后,就知道跟着老师的脚步来学习,听课之后觉得无聊,游戏、金钱、美女或者美男、知己或者精神伙伴的诱惑力又实在太大,经常平时不学习,也不思考学些什么,到期末两周的时间集中复习划重点,然后考试,接着忘记。于是,大学,成了最不学的地方。努力了很多年考上大学,就是为了可以不学习。

这个时候,当老师的怎么办,搞教育的怎么办?

教育和教学,实在是不能产生奇迹的:我们不能指望把一个东西塞进学生的脑袋,然后学生就懂了,理解了,行为就改变了。我们要珍惜学生的时间,珍惜学生能够跑到你这里来学习的时间,尽可能在最短的时间里面,教他/她这辈子最有用的最少量的东西。学生也要珍惜自己的时间,珍惜能够来到这样的老师这里学习的时间。那,在这个要求下,到底学什么?

一方面,思考比较深入的学科内部的老师注意到教知识确实是有问题的,但是不知道知识之外,可以教什么,让知识来体现什么。另一方面,有思想的教育家或者心理学家或者社会活动家在呼吁要教给学生能力或者素质,但是没有一个发展学生能力和素质的方法,以为给学生少做点作业,多上几节钢琴课、多欣赏几次毕加索、甚至多听听京剧就是素质和能力教育。这就是没有指导思想的学科的老师和没有专业背景的教育工作者的共同的悲哀。实际上,两者的结合就能够解决问题。

学生要有人生的目标,要学习如何思考,养成思考的习惯(喜欢思考),有思考的基础。不过,思考不是瞎想的意思。第一,要保持对世界的好奇,并喜欢去追问。第二,要能够深入下去。这样,就必须从一般性的思考发展进入到学科性的思考。人生的目标可以很多种确定的方式。至少其中的一种,应该是从曾经获得的快乐中来寻找。例如,从体会到思考、探寻和理解某些现象(天体的、生命的、运动的、思维的、抽象的、艺术的等等)的中获取的快乐,没准就可以选择这些作为人生的目标。要养成思考的习惯,也要县体会到深入思考的快乐。因此,最关键的事情就是如何思考,思考什么,典型的思考方式和概念基础。

所有的这些问题,都不能通过泛泛的思考或者思维的教学来实现,而是需要在具体学科具体问题中,通过引领学生思考来实现。因此,解决人生目标动力和学会思考的问题的关键,就是以上两种老师的结合:有教育思想的学科专家。当然,让学科专家成为有教育思想的人,可能比让有教育思想的人成为学科专家,要来的简单。

这就是我们现在在概念地图系列课程《学会学习和思考》里面做的事情,让学生体会到每一个学科的基本面貌:基本问题、典型思维方式、学科理论中最核心的用于帮助学生继续学习的少量内容、典型分析方法,并且呈现有深度的思考,养成思考的习惯,并进而喜欢它。

例如,在物理学科,我们所选择的核心知识的教学要体现“什么是物理学”,包含一些典型的问题以及一些典型的思考方式,还要包含数学模型在物理中的特殊地位。例如,力学的思想——事物的状态、状态的变化和变化的原因——在物理学里面是非常重要的;在变化的原因方面,相互作用也就是力的概念贯穿物理学的所有学科;在探索相互作用的形式和规律上,还原论或者说分解成更小的部分的思想,以及期望在更高的层次实现一致的描述的想法,也是一定要在教学中体现的;量子物理学促使我们对现实和理论之间的关系,做更加深入的思考,这个也是需要体现的;所有的物理理论的表现形式都是某种数学结构,这个也是要在教学中体现出来的。

当然,在更小的层次的具体教学的过程中,还有很多关于“什么是物理”的认知,例如在运用Newton力学解力学题的时候一定要注意每一个系统里面的受力情况,做到具体问题具体分析,参考系坐标系的选择都不是一概而论的。

这些都是在选择具体教学内容的时候需要考虑的。按照这个必须反映“什么是这门学科”的标准,任何一门科学(非科学的学科不清楚),核心的内容都是不多的。这个时候,我们就有很多的时间让学生来思考问题,引领学生来思考问题,并自学(自己拓展阅读和完成作业,体会这个学科是什么,尝试喜欢这个学科)。

学生的拉车和看路

作为老师,一半的时间在看路,一小半的时间在教书,剩下的时间在拉车。由于技术上的积累已经比较多,概念上的积累完全可以和看路结合起来(纯粹概念上的积累的事情已经很少做,尽管我还是做,也喜欢做),并且有学生帮忙拉车,于是可以多看看路。

但是,学生呢?

技术上有很大的鸿沟需要跨越,而且是通过做中学的方式来跨越;概念上的积累倒是可以部分地依赖于课程,但是同样需要在运用中理解,否则就不是真的理解。没有研究经验、技术方法、知识和理解上的积累,看路也是迷迷糊糊。那就不看?

学生就是拉车的牛,路走得多了也就学会了走路?

一个学科的思想、发展方向,这个学科的基本问题、大的根本性的研究问题和对这些基本问题的回答,这些,都不看了?

要看的话,什么时候来看,什么时间来看?这是个问题,我仅从自身的经历来尝试回答一下。

在本科的阶段(高中的时候看过的《从一到无穷》之类的,不成系统,就不算了)看了第一推动丛书的几本(尤其记得这几本:数学:确定性的丧失 可怕的对称 终极理论之梦 时间之箭),也许因为本来就爱物理,被其中的物理的美和伟大的梦想深深地吸引。后来按照裴寿镛老师的推荐看了Feynman的系列小册子(《别闹了Feynman》、《物理定律的特性》、《光和物质的奇异性》等等),按照杜婵英老师的推荐看了《混沌:开创新科学》。还有自己找的《物理学的进化》、《数学模型导论》等等。现在仍然记得当时心潮澎湃,感叹为什么不早生100年(Schwinger还是谁说每一代的物理学家都这样感叹),还有那份雄心壮志。其中Bender的《数学模型导论》有关于什么是科学和什么是数学的深刻的思想。

这个阶段的看路,主要是体会物理学是什么。专业书籍里面算的上看路的,是一条道的,倒是看的不多。也就Feynman物理学讲义一列算是道,尤其是《力学》和《量子力学》那两卷。其实Landau的书也算是道,可惜当时没有看,后来上了研究生才看的《力学》。Dirac的《量子力学原理》倒是断断续续看过,可惜Von Neumann的《量子力学的数学基础》直到博士快毕业了才认真看。喀兴林的《高等量子力学》把基础概念部分讲的非常好和Ballentine的《量子力学现代教程》除了基础概念讲得好,还提示你思考量子力学的解释。《Speakable and Unspeakable in Quantum Mechanics》(仅看了其中几篇)讨论了量子力学的基础。这些让我们思考物理学是什么的科普书籍、专业书籍、论文,我都看作是看路的一部分。偶然看到的《大自然如何工作》打开了一扇窗户,展示了复杂性和涌现性的一角。

后来,当了老师,重新把广泛阅读捡起来,看了《如何看一本书》、《Learn More, Study Less》、《科学研究的艺术》、《Mathematics: A Very Short Introduction》、《Complexity: A Very Short Introduction》、《Learning, Creating, and
Using Knowledge》,并且整理了这些年看过的好书,主要是教材类的,见工具、课程与学习资料。现在,顺便也就整理一下教材以外的对我的科学观具有重要影响的书籍。这样做的潜在的期望就是能够对学生有用。

可以,问题来了,一直在拉车的学生,会停下来看看这些激发思考、深化思想,但是没有什么直接用处的书吗?

从这个角度来说,很有必要开设一门读书的课:阅读跟这个学科的大图景相关的书籍,然后参与讨论。在这样的课程建立之前,只能希望学生能够自己主动去看看这些包含了大量的思想财富的书籍了。

编程的学习

必要性:当你对世界的运行有一个猜想或者理解的时候,你想检验一下;当你有这个世界运行的数据,你想发掘一下;当你有一个问题没法解析求解,你想大概看一下,你都需要运用计算机,而且通常是自己编程,来解决问题。

这个时候,最重要的是学会像计算机语言一样思考问题。具体来说,反映在面向过程编程上就是:知道流程的每一步,程序–想象成你自己–会面对什么数据什么情况,下一步做什么,尤其是所有流程控制的关键点。反映在面向对象的编程上面,就是要把问题转化成为对象和对对象的操作来解决。要搞清楚什么时候创建对象,什么时候改变对象的状态,用户做什么会激活这些创造对象和改变对象状态的事情。

这个像计算机一样思考回到传统的编程的时候你熟悉的语言就是画出流程图,以及搞清楚对象的抽象接口。

具体到语言的学习,不同的语言有不同的优势。可以考虑利用C语言来做科学计算和核心计算分析模块,利用Python来做字符处理、组装程序,用R语言来做统计分析,利用shell语言来做组装程序、输入输出和增加程序灵活性的控制。了解大量的程序包,并且熟悉其中的一部分。例如,所有的矩阵运算可以考虑lapack,傅立叶分解可以利用FFTW,一般积分插值等数值计算可以用gsl等等。

算法,语言本身,只要不是开创,是很简单的事情,通过编写一两个程序,也就学会了。进一步,我们不是真的计算机科学家,因此,算法方面,大多数时候,应该站在巨人的肩膀上,用其他人开发好的程序库来实现。语言本身大概包含程序的基本结构、数据类型、流程控制,库函数。前面的三个几个小时编一两个程序就能学会。后面的,用到再学,先大概浏览知道有哪些功能即可。

学会像计算机一样思考,了解语言和程序包之后,就需要开始写程序。写程序需要有良好的习惯和风格,例如变量和函数的名称要有意义,利用好注释,本功能拆分成尽量独立和能重用的子程序。缩进、大小写尽量保持一致。

当好科学家不是一件容易的事情,你希望各种理念和工具上,都走在世界的前面。

关于数学和科学理论与现实的关系以及学习方法的对话

从讨论对某些网络上的几何量的定义开始,我和一个学生做了下面的对话。这个对话不是完全忠实的记录,但是主要的意思没有变。

问了学生这样一个问题:给定一个人的身高数据,并且从中能计算出平均值和均方差,你能告诉我什么?

学生答:我给出一份报告上面写着均值和方差,如果有必要可以给出更高阶矩的值。

问:如果你的老板非常聪明,但是没学过统计学,不了解拿到均值和均方差的含义怎么办?例如你的老板在考虑设计一个梯子,需要最短最长的数据,为了够着一个长度为3m的东西。

答:不知道,还是给均值、方差,以及各阶矩,然后说明一下:均值表示平均身高,方差表示离散程度等等。

问:这是不足以用来做决策的,怎么提升报告和所面对的任务的直接相关性?

答:不知道。

问:举个例子,一把弹簧秤,一块豆腐,经过一套程序(把豆腐挂钩上,然后读数),可以得到一个叫做豆腐重量的东西。如果现在有人来买豆腐,你怎么办?

答:取一块豆腐,称重量,乘以单位重量的价格,然后收相应的钱。

问:为什么以上定义的重量可以这样用?如果我想知道这块豆腐的热量和各种营养成份,怎么办?

答:不知道为什么可以这样用。但是热量和营养成份的计算也是重量乘以相应的单位重量的热量和单位重量营养成分含量百分比。

问:实际上,这里能够用来计算应付款、热量、营养成份,都是因为重量反映了这块豆腐里面物质的量的多少。也就是说,准确理解了定义,以及对这个定义将来有什么用,也就是用在什么样的具体问题中有一个认识,是能能够把“重量”用在以上三个不同地方的原因。并不是因为有人告诉你可以这样用,才用的。具体的应用还有好多其他地方,例如还可以放到“月球”上去压宇宙飞船(这个更深刻,需要理解质量和重量之间的关系,以及造成这个关系的原因)。现在回到身高均值和方差的例子,给老板一个怎样的报告?

答:没有很好地理解重量实际上反映了物质的量,是不能灵活和迁移运用的原因。那么,也就是说,没有很好地理解均值和方差的概念。

问:不仅仅如此,还有不理解整个这两个统计量背后的假设的原因。这个统计者先假设人群的身高符合高斯分布。接着,如果能够从样本均值和样本方差估计真实群体的均值和方差,那么随便遇到一个人,其身高介于均值和左右一个标准差之间的概率是68%,左右三个标准差之间的概率是99%,这时候如何写报告?

答:从样本均值和样本方差计算出群体的真实均值、真实方差,并给出计算结果的置信度,然后报告,99%的人身高介于均值 ± 三个标准差之间,68%的人身高介于均值 ± 一个标准差之间。

问:前后两份报告,差别在哪里?

答:前者仅仅知道均值、方差的定义;后者明白这个统计的基本假以及熟悉高斯分布。这个时候聪明的老板拿到这个报告,就知道,如果需要覆盖大约,例如99%,的人的需求,则梯子的设计长度是多少。

问:什么原因造成这个差别?

答:前者为了学习定义而学习定义,后者思考运算和定义的假设和动机,并思考将来可能的应用。

问:这种差别又时如何造成的?

答:前者为了学习数学而学习数学,为了学习理论而学习理论。后者在深刻理解概念的同时,关心概念提出的动机以及可能的与现实的联系。

总结:也就是说,后者一直企图把理论和定义与现实联系起来(或者间接地通过其他概念与现实相联系),而前者就是简单地记住定义。本质上,后者是科学家——理解定义,思考其与现实的可能联系与检验;前者是被动接受定义,最多了解一下其他人如何使用这个定义。本质差别是:
是否明白科学就是企图找到现实的数学结构;
是否明白科学理论的最终检验标准是现实(实验与实践);
学习的时候是主动地寻找知识之间的联系,知识与现实之间的联系,还是被动接受知识。

对最后一条的补充说明:在上面的例子里面,对均值和方差与高斯分布的联系的理解是深刻认识的基础,从而也是应用与现实的基础;对物质的量的深刻的理解是应用于现实的基础。另外,思考如何与现实相结合的问题,也促进我们对概念本身的理解。因此,我们看到,对知识本身的理解和对把知识联系到现实,这个两个方面是相互促进的。