事情是这样的,前几天一位数学系的老师(我还上过她的课……)发帖建议“在全校各专业无差别地普及数学分析课”,这引发了其他网友关于SJTU教学的讨论。连续两三天的十大造就了不少精妙的观点,下面我就来摘录部分文字,以批上交。
首先是mingruzh网友的长篇回帖,我来跳跃地摘取其精髓:
首先,sunnyrose(以下简称S)的设想是好的,但是出发点值得商酌。……吸引优秀生源到数学系学习,培养他们往数学家的道路上走,不是简单的通过提早学习数学分析或加强二专就能办到的。……只有从教育理念上去培养学生对数学真正的热爱,对数学或应用数学的追求,才可能(也只是可能)培养出数学系期望的人才。这就必然涉及到全校教育模式的根本调整,而不是简单的开班、扩课、普及某些课程就能解决问题的。
第二,即使冲着S这个出发点,如果配套体制不改变,操作起来也是会大打折扣的。根源在于交大的师资不行,教学制度和观念不行。
且不说理工科大一开设的数分课也存在师资的强弱和教学方式的弱点问题,就拿公认教学最出色的裘兆泰老师来说,又何尝不是迫于学时压力,不得不以很快的教学速度,海量的习题,来赶上教学进度,如此一来,数分很多的问题就不得不粗略处理,很多时候学生都学的不够深入和通达,达不到“品味”数分真正内涵的程度,充其量不过是在海量习题中训练了一些解题套路而已(包括证明套路)。
……
我相信不是裘老师不能讲出理科式的数分,而是因为学时限制,无法施展拳脚,把数分更美丽的篇章展现出来。然而,我们又有多少王老师裘老师这样的数分教师呢?即使有,如果我们把全校所有的理工科专业都安排三个学期的数分,这样教务部会同意吗?如果做不到这一点,那么把数分普及到全校所有专业就不会有好的效果,反而会让学生陷入学不懂又时间紧、课程深的困惑。如果盲目大跃进,开设了一批高精尖课程,而师资水平、教学方式、教材水平跟不上,我几乎敢断定其对多数学生而言是百害而无一利,相反会让本来对数学有兴趣的人彻底失去对数学的兴趣。(编者注:事实上,这不止于数学一个学科,还涉及所有领导拍脑袋搞面子工程政绩工程的所有学科)事实上,一个真正优秀的老师,一个真正生动深刻的课堂,一种先进合理而又紧张有序的教学方式,一本真正详尽全面人性化的教材,对学生的影响远远超过看起来豪华强大的一纸课程规划。
第 三,即使操作起来了,师资跟上来了,也有学生的天生兴趣倾向的区别,不能一概而论的统一处理。……往往历届工科专业中数分学得较为顺手的,是中学有奥赛经 历的学生。并不是他们天赋真的惊人,而是因为相对于没有经历过高强度奥赛训练的人而言,他们超前进行了“数学证明”的思维训练,这使得他们在大学一年级以 证明为主的数分等课程上显得比其他学生更为轻松,从而占了先机。如果把他们的这种先机作为所有人应该效仿的标准,那么把数分等课程简单的普及,是不是又等 价于回到了中学是否要把奥赛全力推广这个命题了呢?
我们可以看到,陶哲轩7岁开始看微积分,不是别人逼他看的,而是他自己感兴趣。华罗庚学数学没人逼他,完全是自学成才。可见真正的数学家都是自己努力的。实际上,任何行业里面,真正的天才都不是培养出来的,真正使天才涌现出来的,是一种自由的理念、宽松的环境和丰富的资源, 这也是为什么民国时代战乱频繁却大师辈出,如今歌舞升平却人才凋零的原因之一。看到某个方面弱了,于是就强化式的来一个大跨越,狠狠灌输一下数学是行不通 的。欧美人才辈出的根源在于他们的制度保证了这种“自由选择”的可操作性,是他们兴趣导向、创造性人才辈出的根源。而我们如果动不动就“普及”某个东西, 今天普及数分,明天普及物理,后天普及生物、化学,这与教育部普及中学生京剧、交谊舞,一厢情愿的指望他们熏陶出艺术修养有什么区别?只不过是从一种死板 的制度走向另一种死板的制度而已。
吴文俊是数学念到大三,遇到某位老师的讲课开了窍,才开始真正爱上数学,并不是对数学一见倾心。如果没有三年级时遇到这个老师生动的课堂,很难想象会有今天的吴文俊。可见,课程结构不是影响人才兴趣和能力的决定因素,老师和教学方法才是影响学生的人生航标。
……爱 因斯坦大学时代并不喜欢闵可夫斯基的抽象数学课,而是沉迷于物理学的直觉想象中,直到建立相对论时才发觉闵可夫斯基的数学是何等重要,于是抽身去修习数 学,最终利用这个工具建立了相对论。然而我们可以简单的评判爱因斯坦应该先学好闵可夫斯基的抽象数学,再去思考他的相对论,那样的话这个创造工作岂不是进 行得更顺利吗?如果真的按这个模式,恐怕爱因斯坦也就不是爱因斯坦了。
第四,数分基础就算是强硬的 打下来了,各专业后续课程能否做到同样高质量的跟上?……如果没有二专的模式,其他专业又不能提供如此高质量的教学资源,那就是虎头蛇尾。而如果拼命压进 来的话,现在这种制度下的课时时间够么?我们有这个胆量敢于彻底向MIT学习,本科规定必须修满300多个学分那样的高标准要求么?如果要往这个方向做, 教学制度就要大变样,这个又是个更大的命题;如果不跟上,虎头蛇尾的教育,又有多大的效果呢?
S在前一篇帖子提到剑桥大学全校几乎都是同样的数学课,所有专业上与数学系一样的数学课,可是另一方面,剑桥的几乎所有理工科本科阶段都是通课,剑桥的学生平均每星期要交三篇1000字的报告,直到博士才分出细致的专业方向。其实我们应该把剑桥这个例子反过来解读:他们的数学系上的数学课是全校各专业一样的课。这种体制和培养观念的深刻不同才是他们如此课程规划的根本原因。另外,很多时候我们只看到我们国内的数学教育比国外弱,是看到的他们开的课程比我们多,后续跟进很全面。而我们走的路子恰恰相反,前期开的课相对较深,并不见得比他们简单,但是恰恰就在后续课程上我们差距太大。
……(许多人)没有看到他们的课程往往是循序渐进,又持续不断,而不是在低年级一开始就出一记重拳,重重把人砸晕,然后就撒手不管,任其飘零,待到高深的课程和高深的问题降临时,学生们又惊呼原来数学如此重要,于是又进行恶补。现实的情况是,很多人低年级时绞尽脑汁学了一揽子数学,很可能在急功近利的应试
模式下还学得似懂非懂,而到了本科高年级就反而没有这类强度数学课了,或者没有数学课了。没有了倒也罢,而到了研究生一年级又猛然来一记数学重拳,砸得人晕头转向,那么多丰富内涵又实用的数学课压缩到一两个学期内,要么减少学习量,要么深度上打折扣。而研一半个学期一过去,数学课的培养又不见踪影了。这种简单粗暴的课程规划以及应试教育的模式不变,能训练出多少真正的数学素养?能培养出真正的人才吗?
看 国外的大学,为什么学生这么重的课,却大多学起来觉得很充实很快乐,而我们很多培养计划课程规划看起来华丽无比,而很多学生们学起来却觉得无味枯燥,甚至 怨声载道。没有教学理念和制度的彻底变革,仅仅是低层次的西学东渐,只能从西方又泊来一套“假学分制”,或者又泊来一套生硬的“大平台”。
第 五,也是最重要的一点,S的眼光应该更宏大一点,不应该仅仅狭隘的从数学系角度来思考“多吸引几个理工科学生来数学系读研究生”,从而期望多出几个数学 家,而应该从更宏观更本质的一个角度去思考,这就是我们究竟应该以什么样的方式去普及“真正的”数学,让“真正的”数学走进各种理工科专业,而不是简单的 让理工科的学生跑到数学系来上课拿文凭,希求多出几个数学家。
……这就是一个更重要的问题:怎么才能做好学科交叉、理工交叉的问题。 MIT最有特色的不是他的数学课有多么强,而是他的学科交叉、跨学科培养办得有声有色,把理科的知识、思维方式和深刻修养融进了各种理工科的教学和前沿研 究中去。钱学森最初学的还是工科,到了美国才兴趣逐渐转移,转到学航空,最后转向极度抽象的数学。这又是一个由工到理反过来成才的典型例子。
其实,相比于数学系急于想培养出数学家,理工科更期待培养出数理功底深厚的工程科学家,而不是仅仅在外资企业当白领的操作员或者通俗意义上的工程师。这个培养的方式绝不仅仅是通过二专的强化或数分一类课程的扩大化来实现的,应该是全校性自上而下的深刻反思和彻底改革。如果没有这个改革的大目标,那么仅仅是一门课程的普及一定不会带来很好的效果,更何况这个“普及”本身也是个大问题,就像前面所说的配套制度若跟不上,普及终会沦为形式。
交大提了这么多年跨学科交叉,口号喊了这么多年,依我看没有真正实质上的改变,只是简单的成立个某某学院,引进几个不同专业的老师,合起来开个大锅饭似的课堂,或者搞一个某某跨学科项目,发一个带着光环的文凭,声称取得了多么成功的成果……而跨学科科研的模式、跨学科教学思想和培养理念的建设、跨学科培养制度的建设,都没有真正的做起来。
其 实我们真正该做的是:当我们的学生在感觉到数学不够用,要补习数分这类基础知识时,我们能及时提供这样的机会吗?(而不是粗暴的斥责你为什么不大一时学好 数分或选修数分?)当我们的学生在专业上学习感到苦闷,无法释放自己的兴趣和激情时,我们能给他们提供最直接最宽容的帮助吗?(而不是简单的劝“先考好再 说,先过关再说,先毕业再说”)我们能实行真正的学分制吗?能快乐的学到真正的纯数学吗?我们的理工科学到深处、科研做到深处痛感数学匮乏的时候,能自如 的和数学系的人沟通吗?我们的本科生、研究生、博士生能有一个真正活跃的数理交流的平台吗?我们全校那么多理工科的教师和数学系的教师能真正走到一起,共 同培养学生和从事科研,而不存在着校中有院、院中有系这样的隔断吗?我们能把精品课程建设不再面向评优评奖,而是让全校所有学生的所有课程都能享受到精品 课程一样的师资和教学吗?从这个意义上来看数学课改革,也许最好的方式还是数学系能开出足够多有水平的课,提供足够多优秀的老师,开出足够多层次的课程深度,让学生在必须满足一定要求的前提下有足够多的选择,享受到足够丰富的资源。
结 论:S是个关心数学系人才培养的有心人,能有这份心,已经是相当不错、相当不容易了,但S这样的建议(以及S以前的不少建议)其实在国内、在交大这样的环 境下是难有实现的,即使运作了,也难有理想的效果,很可能也会沦为另一个口号工程或政绩项目,最终就像如今的中国改革一样,花样年年有新的,但是根本制度 不变革,都是治标不治本,这里貌似填埋了一个问题,很快那里又冒出另一个问题。建议S真正应该做的,是不再简单的呼吁进行这种治标不治本的简单改革,而是 详细思考后,呼吁进行一整套体制的根本变革,着重在于有第一流的师资和向一流看齐的教学方式。制度、理念、师资、教学方式上来了,数分的普及是自然的,学 生理科素养的提高是自然的,这才是交通大学数学系和整个交大理工科的希望所在。也许有人说区区一个S,怎么可能去撼动这个根本的教学体制,但是S既然有勇 气呼吁改变这个小制度,就表明有改革的志向和决心,也就应该有勇气呼吁改变这个大制度。只有越来越多这样的人出现,才会使我们这个表面繁荣昌盛欣欣向荣实际僵化死板恶瘤盘结的交大有真正的希望。(编者注:我们这样的批评者才是交大真正的希望,嗯)
下面的发言来自paradisor:
我回想起在交大的时间,不仅数学学得不够,什么东西都学得不够,不是因为课太少,而是因为课太多,什么稀奇古怪的东西都要上课。
只要有时间,哪有什么真学不好的东西,图书馆比一般的老师上课好多了。我认识的几个数学好的人没哪个是上课上出来的,都是自己读书做习题练出来的。
下面的发言来自Protel:
如 果全部改开数学分析,师资从哪儿来?花多少时间配习题课?计算题和证明题做起来感觉都一样?学生有多少精力?是刚入大学的时候灌一大堆知识,后面很多年用 不上,还是入学时候给一些工具和基础,后面循序渐进补上?工程有工程的学习路线,否则全世界理工科本科全改数学系算了。
下面的发言来自TombDigger:
所以说嘛,做项目高中数学就能解决绝大部分问题,解决不了的时候只要知道积分是曲边梯形面积就OK了。
下面的发言来自avenuewalk:
我的一点小小的异想天开:
理工科的数学课,尤其是分析代数这样的基础性课程,可以通过分级自主选择类别,而非一味地自上而下地订标准,ABCDE学分依次下降,难度也依学分递减而递减,在评分时严格
控制,规定好四年里要修的门数即可。其实不必担心会产生一窝蜂去抢低学分简单好学的,大一进来时好学的状态想必决大部分人都自知。或许有担心一些同学院啦成绩评定方面
的东西,其实不必,退一万步讲,现在的衡量标准也不能让人心服口服吧~
不止这算不算一种可行的办法?
下面的发言来自chenskylin:
实际mingruzh先生的观点是不错的,mingruzh 偏向于系统建设,循序渐进,这需要极大的耐心。不过,只要做起来,总是有希望成功的;
但问题是,目前的大环境下,谈这种教育改革,根本就是南辕北辙。领导需要的是暴风骤雨式的政绩,这种前人栽树,后人乘凉的事情,你想有人会做吗?
我以小人之心度之,mingruzh虽然见解深刻,也不乏激情,但在交大混得未必如意(如果真在交大谋生的话)。实际上,大陆高校,混得最好的,往往就是对上拍马,得过且过,
骗一些课题,窃几篇论文一类的人。
下面的发言来自于上面提到的mingruzh,是他给提建议的老师的信:
您好,我不是交大的老师,更不是数学家,只是一个已毕业工作的交大毕业生,在工科呆过,在数学系也呆过,上过(包括旁听)很多课,进过不少实验室, 跟过不同的导师,交过很多不同专业的同学朋友,亲身经历了太多的事物,长期以来都有很多思考和感受,无论是教学还是科研,实验室、项目、导师、课程设置、 学科交叉等等。只不过,在学生时代是没有资格来表达的,因为学生时代的想法一定会被领导老师当作幼稚处理。现在我也不可能来参与什么交大的改革或呼吁,时 间精力和生活重心都不在其位,最多抽空把多年来的思考稍微表达一下就不错了。不过,这些思考虽然是长期亲身经历的体验,但终究也只是个人的,我尽可能的客 观而不带主观偏见,但是否达到真正的客观,是不是真的是真理,我是不能做这个保证的,我并不是什么教育专家,尽管有些观点的表达看起来像专业人士的口气。
您的很多帖子我曾略有看过,想法都是好的,交大数学系以及工科其实不止您一位这样有想法的老师,但是交大数学系还没有达到真正自由的风气和对纯粹数学的追求氛围,哪怕是对应用数学的学术追求,交大数学系也差得很远,因此您的很多想法都很难得到实现。
我觉得要改变一个旧事物,引进一个新事物,改革者和呼吁者的角色是不同的。在目前情况下,有想法的老师基本上都只能充当一个呼吁者的角色,而敢不敢改革的人仍然只能从当权者中出现。改革能不能成功终究是自上而下的,上面的领导如果没有这个觉悟,没有这个大决心,大魄力,一般都是小打小闹,不置之不理就不错了。 周(国标)老师呼吁了那么多年工科数学的改革,仍然冲不破那道最厚实的墙。数学系自己的研究生生源糟糕是事实,而另一方面不管是哪种档次的生源,又有多少 是安心来学数学的呢?大家心里想着奔金融财会都是心照不宣罢了。而搞了这么几年的“理工结合”基本就是失败的,只负责招人、开课、考试、发文凭、就业,而 如何去“结合”理工,真正的“交叉”搞科研,却从来没有去认真建设这个环境和平台。毕业了系里又可以报上一堆数据,可以对外宣传数学系如何如何优势,各行 各业都能进……这一切情况不是上面不明白,而是因为上面没有“用心”去做。上面不用心,下面呼吁得再厉害,实质还是上不去。 当然理工科更是浮躁的厉害,只不过工科好引项目挣钱,在各种比数学系丰厚得多的利益面前大家也心照不宣罢了。极少数的专业和特色班级办得有模有样(例如刚 又夺冠的ACM班),是因为各种资源和政策太集中,其他专业根本没法比,就像当年搞深圳特区,上面下狠心要在这个小圈子里搞出来,但一旦要扩展到所有范 围,就难以具有这种勇气和魄力了。
所以我依然觉得,要改革只有让有想法的老师都踊跃的站出来,不是给出一点点的修修补补式的意见,而是根本性彻底性的意见。同时只有上面的领导真正的 “用心”来做,这些事情才做得出来,不然又是另一个可以拿出去宣传的新上马“项目”。我始终认为,国内的教育、交大的教育、数学系的教育、理工科的教育, 只有再出现一个像“刘道玉”(或者当年的“邓旭初”)这样的改革者才能从根本上动摇目前的旧体制(或者旧模式、旧理念),而有识之士的老师和学生们能不能 遇到或选择到一个这样的“刘道玉”(“邓旭初”),得看有没有这个福气。
我平时工作很忙,没有太多时间和精力和您探讨,这篇帖子只是偶然看到了您的发帖,心中忽然又涌出起当初的很多感慨,于是临时一气写出来 的,仅供参考。作为一个已离开母校的毕业生校友,我经常会关注交大的情况,很期待您这样的老师对交大数学系和交大理工科开辟出一条循序渐进而又彻底根本的 改革道路。
Best wishes!~
下面两段发言来自paradisor:
1. 我个人的经验是,不管喜欢什么,自己学就是了...从来没指望学校能教点啥
2. 你觉得有好处别人不觉得啊。
说来说去解决办法还是只有一个:广设课,全通选。
所谓跟国外大学接轨,第一条就是取消必修课,没听说哪个像样的大学有超过10门必修课的。
下面的发言来自boban:
纯粹数学生源紧缺是世界性难题
没有生源就应该逼出生源来么?
就跟当初谢某逼全校学大物一样扯淡
下面的发言来自WAMozart,一个我佩服的学长,拉一手极棒的小提琴,摄影高手,生物专业的在读博士:
你的意见对于那些数学底子好且对数学有兴趣的同学来说是好的,但请不要为难我们这些脑袋没有为数学而生的可怜人了吧。
我甚至怀疑你的逻辑思维能力,什么叫“而他们可以考取交大,一定会有很好的数学基础的”?有什么依据吗?无非是主观臆断罢了。我大一大二怎么过来的 只有自己知道,我在课堂上竭尽全力想听懂老师说的是什么,我课前预习课后求教同学完全所有作业,但还是没法在课堂上听懂老师说了什么,考试还是挂了。我脑 子里就是少了数学这么根筋,筋都在语言艺术方面了。我GRE作文随便准备了一下就考到5.5,但我仰视那些“居然”能轻轻松松做微积分的人,至于数分,偏 微分方程牛人我只好膜拜了。
研一的时候又碰到数学,周国标老师上的课。满课堂都是生物专业的人,叫苦连天,周老师最后不得不在考试
中放水,只要能把题型背出来的都能过。怪不得我们,不是我们懒,我们从大二以后所有的专业课跟高等数学都浑身不搭界!本来考生物专业特别是偏理科方向的人
有很多是如果到了工科、理学、计算机类专业就必死的,又有两年多一点没有碰数学,考研的时候也完全可以不选数学,当然全都忘光了,连最简单的微积分也不会
做了。
你不能不承认有些人是形象思维见长,有些人逻辑思维见长,也不能不承认不同学科对数学的要求是不同的。在生物学范畴内的许多领域,做一辈子研究在 Nature Science发文章也顶多只需要算个方差,p值罢了,顶尖杂志上只用到初等数学的文章一抓一大把。面对这种情况,强迫生物学专业的人学习跟他们今后的职业生涯毫无关系的数学课程,其荒谬程度等同于强迫数学系的人学习分子生物学,发育生物学和组织胚胎学!(编者注:类似地,计算机专业的人学电路,微波,物理等等)
计算生物学确实在不断壮大,确实需要扎实的数学基础,但不是每个人都有志于从事计算生物学方面的工作的。
总而言之,数学对有些同学确实重要,但你不能强迫中文系的同学去学数分,这对于生物学专业的很多本科生来说是一样的,至于有些数学好的今后想从事生 物工程和生物信息学方向的同学自己想选修数学课程当然是好事。我周围有些同学,包括我自己,GPA就是栽在大一大二的高数线代大物概率了,而我的专业 GPA在班级里排名很靠前,如果专业课需要用到数学就不可能了,不是么。
其实数学本身不可恨,可恨的是强迫所有理工科学生一概要学高数现代概率大物的僵化体制。
下面的发言来自于zhajingjing:
如果我能早点明白这个道理,就不会选修这么多数学课了,上了六门数学课,只在最后一门数学课上碰到一位讲课极有激情,善于启发学生思考的数学老师,尽管这位老师年纪很轻现在只是讲师,但上他的课,让我感觉自己很幸运,因为那才是我所希望的数学课的样子。
可是作为一个学生,你又如何能指望总能遇到那样的老师呢。
尽管我曾经喜爱数学,现在更是认为学数学已经不是一个兴趣问题了,而是必须得钻研,可是我对自己在数学上的长进已经不寄希望于课堂教育了,或许网络论坛形式的学习讨论才是更好的辅助形式。 ![]()
【 在 paradisor 的大作中提到: 】
: 我个人的经验是,不管喜欢什么,自己学就是了...从来没指望学校能教点啥
终。
这些天在学习数学,无论是测度理论,泛函分析还是统计学,我发现往往我最看不懂的东西都是和集合论有关系的,于是花了整个周六和周日来研读Set Theory。
还是那么简单,中学生也能毫不费力地理解,但是当这些简单的常识被天才的连在一起的时候,却支撑起如此壮丽的数学大厦。
当我从测度理论和泛函分析到拓扑理论到集合论走向核心,又走回来的时候,好像若有所悟——数学是怎样炼成的。
1. 集合论:告诉我们,事物可以联系在一起看,上面可以建立起关系(包括次序和对应);
2. 拓扑学:在集合的基础上开始建立简单的几何构造:点之间的连续性,空间的完备性;
3. 线性代数,群论:在集合和映射的基础上建立代数构造,给元素赋予了运算的能力;
4. 泛函分析:把代数构造和几何构造联系起来,建立了点之间的度量,还提供了对点进行变换的算子;
5. 测度理论:基于点的度量,建立集合的度量。于是我们能描述一个集合的大小,甚至进行积分了;
6. 微分流形:把平直的线性空间推广到曲的;
7. 统计分析:概率论其实就是测度理论的一个特例,概率就是波尔集上的一种特殊的测度。然后使用泛函分析和代数理论赋予的运算和度量能力来构造我们的模型和算法。微分流行则让我们可以把一些用线性不好描述的东西推广到非线性的流形上做,其实很多东西可以移植的。
现在的任务就是把这些数学在我自己的大脑中形成一个统一而完美的框架,让我可以游刃有余。路慢慢其修远兮,吾将上下而求索。
小时候,老师就告诉我们,读书讲究先由薄而厚,再由厚而薄。前者是吸收和积累,后者是融会和消化。
这些年,读了不少关于统计学习的东西,很多东西都记不清楚了。从我自己的角度看来(可能是很肤浅的),学概率和统计,关键是记住三个概念:测度(measure),期望(expectation),和独立性(independence)。
测度是现代概率理论的基石。在经典的概率论里面——比如我们在本科学的那些——大多是通过举例子和文字说明的方式告诉你概率是什么,这容易 明白,不过缺乏严密的公理化根基。现代概率论整个建立在测度理论的基础上,概率的定义非常简单,不过也很抽象——所谓“概率”,就是归一化的测度。没有测 度,就没有整个概率论的大厦,所以它很重要——不过,它在实用中直接用上的机会不大,所以不是这篇文章的主体。关于独立性,以及它的一个孪生的名 词:Markov,也扮演着非常重要的角色,它是Graphical models的基础。有兴趣的可以去读M. I. Jordan的书。
而在统计学习的实际应用中,就是你平时写code,用得最多的就是期望,或者一个通俗点的版本——平均值。其实这两者不太一样,期望是从model出发演绎的,平均值通常是指从data出发归纳的。不过它们的关系确实非常密切。
统计学习在很多情况下,就是求平均值
我们平常说去Learn一个model——其实,在很多情况下,这就是干一件听上去很简单的事情,求平均值。我们知道,我们所接触的大部分 重要的概率分布,都属于exponential family,比如Gauss, Binomial, Multinomial, Dirichlet, Poisson, Exponential, Gamma等等分布都属于这个家族。它的一个重要特点就是——得期望者得天下。就是说,知道了某些统计量的期望,就知道了整个model,至于model 的参数,或者就是期望本身(比如Gauss),或者不难从期望中得到。可以证明,对于这些model,对它们的最大似然估计(Maximum Likelihood estimation),就是从data中算出某些统计量的平均值作为model的期望。
在Bayes学习中,我们还考虑先验分布(prior)。在这里,model的估计还是求平均值。所谓prior是怎么来的?就是以前 曾经观察过的data那里总结得到的,然后以prior的形式影响当前的model估计。一般而言,使用exponential family,我们通常会使用conjugate prior,这种prior,基本就是沿着刚才说的,假想我们已经看过一些data的思路得到的,它的形式和data mean几乎如出一辙。而带了prior的估计,还是在求平均值,不过这里的平均值就是(假想)以前观察过的数据和当前的数据合在一起求平均。
对于更加复杂的Graphical model,每个节点的estimate和update,很多时候,其实是做了这样的事情——把其它节点传来的平均值和这个节点接触的数据的平均值混合进 行新的平均。从最简单的Gauss, 到更加复杂的Gaussian Mixture Model, Latent Dirichlet Allocation, Markov Random Field, Generalized Kalman Filtering概莫能外——大家可以仔细看看它们的每一个update公式,看看哪个不是在求平均值。
怎样求平均值
平均值是很重要的。不过怎么求呢?这似乎是小学初中就解决了的问题。不过,求平均值的世界其实是如此博大精深。如果说它是少林武学,我现在这点水平,也就够在嵩山下扫扫地罢了。很多在世界上赫赫有名的数学家,穷毕生心血,方能一窥堂奥。
虽然,只有扫地的水平,不过起码也看过大师们练武。这门学问主要有两个方面:得到data求平均值,得到model求期望。
先说说求data的平均值。这太简单了,有什么好说的。不就是加法和乘法么,小学学过算术的人都会算,即使没学过,拿个计算器也照样算。在 通常的实数空间内,确实很简单;不过对于一般的求平均值的情况,就非常非常困难了。一般来说,求平均值有两个流派,一种是基于线性代数(linear algebra),另外一种是基于度量空间(metric space)。前面一种大家很熟悉:
m = (x1 + x2 + ... + xn) * (1/n)。
这是我们读了这么多年书最常见的平均值。不过,这样定义太局限了,它要求这些东西能做加法和数乘——我不得不说,这个要求实在太高,只有线性空间 (这种空间是数学里面的贵族,它们什么好处都全了)能够满足——对于数学领域更广大的人民群众(各种更一般的数学结构,比如群,拓扑流形),加法和数乘简 直是一种奢侈得不切实际的活动。
其实平均值是一个非常广泛的概念,不仅仅存在于线性空间中,还为广大人民群众服务。对于某个度量空间,它的一般性定义是这么给出的
使得 d(m, x1) + d(m, x2) + ... + d(m, xn) 最小的那个m
也就是说,求平均值是一个优化问题。关于这个问题,在不同的空间中有不同的答案:在最高级的希尔伯特空间中(定义了内积的完备线性空间),m就是上 面给出的基于线性代数的形式。所以说,基于线性代数的定义仅仅是基于度量空间的定义的一个特例。不过由于这个特例被广泛使用,所以大家一说平均值就想起 它,而不是一般形式。在推广一些的巴拿赫空间中(定义了范数的完备线性空间),上述的问题是一个凸优化问题,因为范数必然是凸函数。它具有唯一的最优解。
最困难的是在非线性空间中。一个典型的例子是黎曼流形(注意,这里我们只讨论黎曼流形,对于更为一般的拓扑流形或者微分流形,因为不具有 度量结构,所以不能定义均值。)在黎曼流形上,两点间的距离是通过测地距离给出的。在黎曼流形上,通过测地距离定义的平均值,叫做黎曼中心。一部分朋友对 于这几个术语可能不太熟悉,还是举个形象点的例子。比如,在地球上给出几个地点,你要在地面上找一个“平均地点”,使得它到那几个地点的“地面距离”的平 方和最小。如果,用传统的算术方法拿这些地点的三维坐标来算,你估计得在那钻个油井了。对于“球面平均”问题(专门一点的说法叫做特殊正交群SO(3)的 黎曼中心,恩,这个名词我也有点晕),到了在本世纪,在数学里依旧可以发paper,目前还没有一般情况下的解析解。
别的领域我不懂,不过“球面平均”在vision里面价值是很大的,它是对三维旋转变换建立统计模型的基础——我们再一次看到了求平均 值对于统计的重要意义。球面平均求的是“平均”的旋转,如果对于一般的仿射变换(Affiine transform),“平均”的变换又怎么求呢?这是个open problem,留待大家思考。
怎样求期望
说完从data求平均值,再说说从model得到期望(expectation)——这们学问就更博大了。虽然,期望的定义很简单——求和或者积分就行了。不过,它的实际计算,对于很多实际模型是intractable的。
概率论最早源于掷色子,我们的前辈数学家们为了破解求复杂模型求期望的问题,提出的方法就是掷色子。在学术上,美其名曰“蒙特卡罗方法”(Monte Carlo)。原理很简单,不断地掷色子来大量采样,然后从采来的样本求平均值来逼近模型的期望。
掷色子是世界上最有学问的之一,正因为如此,我们对于“赌神”,“赌王”之类的人物崇拜犹如滔滔江水,因为它们掷色子掷得好。无数的统计学家把毕生经历奉献给掷色子(采样)事业,并且做出伟大成就。关于采样的专著和文献,汗牛充栋。
掷色子就这么难么?是的。据估算,即使对于一个复杂度不高的model,要得到一个可以接受的估计,所需的样本量往往大得惊人,而且指数增 长。如果不掌握要领,你即使掷到宇宙末日,估计离一个靠谱的估计还远着呢。采样技术名目繁多,最流行的莫过于重要性采样(importance sampling)和马尔科夫链蒙特卡罗过程(MCMC)。具体就不多说了。
题目中所说到的四个词语,都是Machine Learning以及相关领域中热门的研究课题。表面看属于不同的topic,实际上则是看待同一个问题的不同角度。不少文章论述了它们之间的一些联系,让大家看到了这个世界的奇妙。
从图说起
这里面,最简单的一个概念就是“图”(Graph),它用于表示事物之间的相互联系。每个图有一批节点(Node),每个节点表示一个对 象,通过一些边(Edge)把这些点连在一起,表示它们之间的关系。就这么一个简单的概念,它对学术发展的意义可以说是无可估量的。几乎所有领域研究的东 西,都是存在相互联系的,通过图,这些联系都具有了一个统一,灵活,而又强大的数学抽象。因此,很多领域的学者都对图有着深入探讨,而且某个领域关于图的 研究成果,可以被其它领域借鉴。
矩阵表示:让代数进入图的世界
在数学上,一种被普遍使用的表达就是邻接矩阵(Adjacency Matrix)。一个有N个节点的图,可以用一个N x N的矩阵G表示,G(i, j)用一个值表示第i个节点和第j个节点的联系,通常来说这个值越大它们关系越密切,这个值为0表示它们不存在直接联系。这个表达,很直接,但是非常重 要,因为它把数学上两个非常根本的概念联系在一起:“图”(Graph)和“矩阵”(Matrix)。矩阵是代数学中最重要的概念,给了图一个矩阵表达, 就建立了用代数方法研究图的途径。数学家们几十年前开始就看到了这一点,并且开创了数学上一个重要的分支——代数图论(Algebraic Graph Theory)。
代数图论通过图的矩阵表达来研究图。熟悉线性代数的朋友知道,代数中一个很重要的概念叫做“谱”(Spectrum)。一个矩阵的很多 特性和它的谱结构——就是它的特征值和特征向量是密切相关的。因此,当我们获得一个图的矩阵表达之后,就可以通过研究这个矩阵的谱结构来研究图的特性。通 常,我们会分析一个图的邻接矩阵(Adjacency Matrix)或者拉普拉斯矩阵(Laplace Matrix)的谱——这里多说一句,这两种矩阵的谱结构刚好是对称的。
谱:“分而治之”的代数
谱,这个词汇似乎在不少地方出现过,比如我们可能更多听说的频谱,光谱,等等。究竟什么叫“谱”呢?它的概念其实并不神秘,简单地说,谱这 个概念来自“分而治之”的策略。一个复杂的东西不好直接研究,就把它分解成简单的分量。如果我们把一个东西看成是一些分量叠加而成,那么这些分量以及它们 各自所占的比例,就叫这个东西的谱。所谓频谱,就是把一个信号分解成多个频率单一的分量。
矩阵的谱,就是它的特征值和特征向量,普通的线性代数课本会告诉你定义:如果A v = c v,那么c 就是A的特征值,v就叫特征向量。这仅仅是数学家发明的一种数学游戏么?——也许有些人刚学这个的时候,并一定能深入理解这么个公式代表什么。其实,这里 的谱,还是代表了一种分量结构,它为使用“分而治之”策略来研究矩阵的作用打开了一个重要途径。这里我们可以把矩阵理解为一个操作(operator), 它的作用就是把一个向量变成另外一个向量:y = A x。对于某些向量,矩阵对它的作用很简单,A v = cv,相当于就把这个向量v 拉长了c倍。我们把这种和矩阵A能如此密切配合的向量v1, v2, ... 叫做特征向量,这个倍数c1, c2, ...叫特征值。那么来了一个新的向量x 的时候,我们就可以把x 分解为这些向量的组合,x = a1 v1 + a2 v2 + ...,那么A对x的作用就可以分解了:A x = A (a1 v1 + a2 v2 + ...) = a1 c1 v1 + a2 c2 v2 ... 所以,矩阵的谱就是用于分解一个矩阵的作用的。
这里再稍微延伸一点。一个向量可以看成一个关于整数的函数,就是输入i,它返回v( i )。它可以延伸为一个连续函数(一个长度无限不可数的向量,呵呵),相应的矩阵 A 变成一个二元连续函数(面积无限大的矩阵)。这时候矩阵乘法中的求和变成了积分。同样的,A的作用可以理解为把一个连续函数映射为另外一个连续函数,这时 候A不叫矩阵,通常被称为算子。对于算子,上面的谱分析方法同样适用(从有限到无限,在数学上还需要处理一下,不多说了)——这个就是泛函分析中的一个重 要部分——谱论(Spectral Theory)。
马尔可夫过程——从时间的角度理解图
回到“图”这个题目,那么图的谱是干什么的呢?按照上面的理解,似乎是拿来分解一个图的。这里谱的作用还是分治,但是,不是直观的理解为把 图的大卸八块,而是把要把在图上运行的过程分解成简单的过程的叠加。如果一个图上每个节点都有一个值,那么在图上运行的过程就是对这些值进行更新的过程。 一个简单,大家经常使用的过程,就是马尔可夫过程(Markov Process)。
学过随机过程的朋友都了解马尔可夫过程。概念很简单——“将来只由现在决定,和过去无关”。考虑一个图,图上每个点有一个值,会被不断 更新。每个点通过一些边连接到其它一些点上,对于每个点,这些边的值都是正的,和为1。在图上每次更新一个点的值,就是对和它相连接的点的值加权平均。如 果图是联通并且非周期(数学上叫各态历经性, ergodicity),那么这个过程最后会收敛到一个唯一稳定的状态(平衡状态)。
图上的马尔可夫更新过程,对于很多学科有着非常重要的意义。这种数学抽象,可以用在什么地方呢?(1) Google对搜索结果的评估(PageRank)原理上依赖于这个核心过程,(2) 统计中一种广泛运用的采样过程MCMC,其核心就是上述的转移过程,(3) 物理上广泛存在的扩散过程(比如热扩散,流体扩散)和上面的过程有很重要的类比,(4) 网络中的信息的某些归纳与交换过程和上述过程相同 (比如Random Gossiping),还有很多。非常多的实际过程通过某种程度的简化和近似,都可以归结为上述过程。因此,对上面这个核心过程的研究,对于很多现象的理 解有重要的意义。各个领域的科学家从本领域的角度出发研究这个过程,得出了很多实质上一致的结论,并且很多都落在了图的谱结构的这个关键点上。
图和谱在此联姻
根据上面的定义,我们看到邻接矩阵A其实就是这个马尔可夫过程的转移概率矩阵。我们把各个节点的值放在一起可以得到一个向量v,那么我们就 可以获得对这个过程的代数表示, v(t+1) = A v(t)。稳定的时候,v = A v。我们可以看到稳定状态就是A的一个特征向量,特征值就是1。这里谱的概念进来了。我们把A的特征向量都列出来v1, v2, ...,它们有 A vi = ci vi。vi其实就是一种很特殊,但是很简单的状态,对它每进行一轮更新,所有节点的值就变成原来的ci倍。如果0 < ci < 1,那么,相当于所有节点的值呈现指数衰减,直到大家都趋近于0。
一般情况下,我们开始于一个任意一个状态u,它的更新过程就没那么简单了。我们用谱的方法来分析,把u分解成 u = v1 + c2 v2 + c3 v3 + ... (在数学上可以严格证明,对于上述的转移概率矩阵,最大的特征值就是1,这里对应于平衡状态v1,其它的特征状态v2, v3, ..., 对应于特征值1 > c2 > c3 > ... > -1)。那么,我们可以看到,当更新进行了t 步之后,状态变成 u(t) = v1 + c2^t v2 + c3^t v3 + ...,我们看到,除了代表平衡状态的分量保持不变外,其它分量随着t 增长而指数衰减,最后,其它整个趋近于平衡状态。
从上面的分析看到,这个过程的收敛速度,其实是和衰减得最慢的那个非平衡分量是密切相关的,它的衰减速度取决于第二大特征值c2,c2 的大小越接近于1,收敛越慢,越接近于0,收敛越快。这里,我们看到了谱的意义。第一,它帮助把一个图上运行的马尔可夫过程分解为多个简单的字过程的叠 加,这里面包含一个平衡过程和多个指数衰减的非平衡过程。第二,它指出平衡状态是对应于最大特征值1的分量,而收敛速度主要取决于第二大特征值。
我们这里知道了第二大特征值c2对于描述这个过程是个至关重要的量,究竟是越大越好,还是越小越好呢?这要看具体解决的问题。如果你要 设计一个采样过程或者更新过程,那么就要追求一个小的c2,它一方面提高过程的效率,另外一方面,使得图的结构改变的时候,能及时收敛,从而保证过程的稳 定。而对于网络而言,小的c2有利于信息的迅速扩散和传播。
聚类结构——从空间的角度理解图
c2的大小往往取决于图上的聚类结构。如果图上的点分成几组,各自聚成一团,缺乏组与组之间的联系,那么这种结构是很不利于扩散的。在某些 情况下,甚至需要O(exp(N))的时间才能收敛。这也符合我们的直观想象,好比两个大水缸,它们中间的只有一根很细的水管相连,那么就需要好长时间才 能达到平衡。有兴趣的朋友可以就这个水缸问题推导一下,这个水缸系统的第二大特征值和水管流量与水缸的容积的比例直接相关,随比例增大而下降。
对于这个现象进行推广,数学上有一个重要的模型叫导率模型(Conductance)。具体的公式不说了,大体思想是,节点集之间的导 通量和节点集大小的平均比例和第二大特征值之间存在一个单调的上下界关系。导率描述的是图上的节点连接的空间结合,这个模型把第二特征值c2和图的空间聚 集结构联系在一起了。
图上的聚类结构越明显, c2越大;反过来说,c2越大,聚类的结构越明显,(c2 = 1)时,整个图就断裂成非连通的两块或者多块了。从这个意义上说,c2越大,越容易对这个图上的点进行聚类。机器学习中一个重要课题叫做聚类,近十年来, 基于代数图论发展出来的一种新的聚类方法,就是利用了第二大特征值对应的谱结构,这种聚类方法叫做谱聚类(Spectral Clustering)。它在Computer Vision里面对应于一种著名的图像分割方法,叫做Normalized Cut。很多工作在使用这种方法。其实这种方法的成功,取决于c2的大小,也就是说取决于我们如何构造出一个利于聚类的图,另外c2的值本身也可以作为衡 量聚类质量,或者可聚类性的标志。遗憾的是,在paper里面,使用此方法者众,深入探讨此方法的内在特点者少。
归纳起来
马尔可夫过程代表了一种时间结构,聚类结构代表了一种空间结构,“谱”把它们联系在一起了,在数学刻画了这种时与空的深刻关系。
近日来,抽空再读了一遍点集拓扑(Point Set Topology),这是我第三次重新学习这个理论了。我看电视剧和小说,极少能有兴致看第二遍,但是,对于数学,每看一次都有新的启发和收获。
代 数,分析,和拓扑,被称为是现代数学的三大柱石。最初读拓扑,是在两三年前,由于学习流形理论的需要。可是,随着知识的积累,发现它是很多理论的根基。可 以说,没有拓扑,就没有现代意义的分析与几何。我们在各种数学分支中接触到的最基本的概念,比如,极限,连续,距离(度量),边界,路径,在现代数学中, 都源于拓扑。
拓扑学是一门非常奇妙的学科,它把最直观的现象和最抽象的概念联系在一起了。拓扑描述的是普遍使用的概念(比如开集,闭集, 连续),我们对这些概念习以为常,理所当然地使用着,可是,真要定义它,则需要对它们本质的最深刻的洞察。数学家们经过长时间的努力,得到了这些概念的现 代定义。这里面很多第一眼看上去,会感觉惊奇——怎么会定义成这个样子。
首先是开集。在学习初等数学时,我们都学习开区间 (a, b)。可是,这只是在一条线上的,怎么推广到二维空间,或者更高维空间,或者别的形体上呢?最直观的想法,就是“一个不包含边界的集合”。可是,问题来 了,给一个集合,何谓“边界”?在拓扑学里面,开集(Open Set)是最根本的概念,它是定义在集合运算的基础上的。它要求开集符合这样的条件:开集的任意并集和有限交集仍为开集。
我最初的时候, 对于这样的定义方式,确实百思不解。不过,读下去,看了和做了很多证明后,发现,这样的定义一个很重要的意义在于:它保证了开集中每个点都有一个邻域包含 在这个集合内——所有点都和外界(补集)保持距离。这样的理解应该比使用集合运算的定义有更明晰的几何意义。但是,直观的东西不容易直接形成严谨的定义, 使用集合运算则更为严格。而集合运算定义中,任意并集的封闭性是对这个几何特点的内在保证。
另外一个例子就是“连续函数” (Continuous Function)。在学微积分时,一个耳熟能详的定义是“对任意的epsilon > 0,存在delta > 0,使得 。。。。”,背后最直观的意思就是“足够近的点保证映射到任意小的范围内”。可是,epsilon, delta都依赖于实空间,不在实空间的映射又怎么办呢?拓扑的定义是“如果一个映射的值域中任何开集的原像都是开集,那么它连续。”这里就没有 epsilon什么事了。
这里的关键在于,在拓扑学中,开集的最重要意义就是要传递“邻域”的意思——开集本身就是所含点的邻域。这样连续定义成这样就顺理成章了。稍微把说法调节一下,上面的定义就变成了“对于f(x)的任意领域U,都有x的一个邻域V,使得V里面的点都映射到U中。”
这里面,我们可以感受到为什么开集在拓扑学中有根本性的意义。既然开集传达“邻域”的意思,那么,它最重要的作用就是要表达哪些点靠得比较近。给出一个拓扑结构,就是要指出哪些是开集,从而指出哪些点靠得比较近,这样就形成了一个聚集结构——这就是拓扑。
可是这也可以通过距离来描述,为什么要用开集呢,反而不直观了。某种意义上说,拓扑是“定性”的,距离度量是“定量”的。随着连续变形,距离会不断变化,但是靠近的点还是靠近,因此本身固有的拓扑特性不会改变。拓扑学研究的就是这种本质特性——连续变化中的不变性。
在 拓扑的基本概念中,最令人费解的,莫过于“紧性”(Compactness)。它描述一个空间或者一个集合“紧不紧”。正式的定义是“如果一个集合的任意 开覆盖都有有限子覆盖,那么它是紧的”。乍一看,实在有点莫名其妙。它究竟想描述一个什么东西呢?和“紧”这个形容词又怎么扯上关系呢?
一 个直观一点的理解,几个集合是“紧”的,就是说,无限个点撒进去,不可能充分散开。无论邻域多么小,必然有一些邻域里面有无限个点。上面关于 compactness的这个定义的玄机就在有限和无限的转换中。一个紧的集合,被无限多的小邻域覆盖着,但是,总能找到其中的有限个就能盖全。那么,后 果是什么呢?无限个点撒进去,总有一个邻域包着无数个点。邻域们再怎么小都是这样——这就保证了无限序列中存在极限点。
Compact这个概念虽然有点不那么直观,可是在分析中有着无比重要的作用。因为它关系到极限的存在性——这是数学分析的基础。了解泛函分析的朋友都知道,序列是否收敛,很多时候就看它了。微积分中,一个重要的定理——有界数列必然包含收敛子列,就是根源于此。
在 学习拓扑,或者其它现代数学理论之前,我们的数学一直都在有限维欧氏空间之中,那是一个完美的世界,具有一切良好的属性,Hausdorff, Locally compact, Simply connected,Completed,还有一套线性代数结构,还有良好定义的度量,范数,与内积。可是,随着研究的加深,终究还是要走出这个圈子。这 个时候,本来理所当然的东西,变得不那么必然了。
一 切看上去有悖常理,而又确实存在。从线性代数到一般的群,从有限维到无限维,从度量空间到拓扑空间,整个认识都需要重新清理。而且,这些绝非仅是数学家的 概念游戏,因为我们的世界不是有限维向量能充分表达的。当我们研究一些不是向量能表达的东西的时候,度量,代数,以及分析的概念,都要重新建立,而起点就 在拓扑。
Learning是一个融会多种数学于一体的领域。说起与此有关的数学学科,我们可能会迅速联想到线性代数以及建立在向量空间基础上的统计模型——事实上,主流的论文中确实在很大程度上基于它们。
R^n (n-维实向量空间) 是我们在paper中见到最多的空间,它确实非常重要和实用,但是,仅仅依靠它来描述我们的世界并不足够。事实上,数学家们给我们提供了丰富得多的工具。
“空间”(space),这是一个很有意思的名词,几乎出现在所有的数学分支的基础定义之中。归纳起来,所谓空间就是指一个集合以及在上面定义的某种数学结构。关于这个数学结构的定义或者公理,就成为这个数学分支的基础,一切由此而展开。
还是从我们最熟悉的空间——R^n 说起吧。大家平常使用这个空间的时候,除了线性运算,其实还用到了别的数学结构,包括度量结构和内积结构。
我 们可以看到,这是一个非常完美的空间,为我们的应用在数学上提供了一切的方便,在上面,我们可以理所当然地认为它具有我们希望的各种良好性质,而无须特别 的证明;我们可以直接使用它的各种运算结构,而不需要从头建立;而且很多本来不一样的概念在这里变成等价的了,我们因此不再需要辨明它们的区别。
以此为界,Learning的主要工作分成两个大的范畴:
这里只讨论第一个范畴。先看看,目前用得比较广泛的一些方法:
直 接基于原始数据建立表达。我们关心的最终目标是一个个现实世界中的对象:一幅图片,一段语音,一篇文章,一条交易记录,等等。这些东西大部分本身没有附着 一个数值向量的。为了构造一个向量表达,我们可以把传感器中记录的数值,或者别的什么方式收集的数值数据按照一定的顺序罗列出来,就形成一个向量了。如果 有n个数字,就认为它们在R^n里面。
不过,这在数学上有一点小问题,在大部分情况下,根据数据产生的物理原理,这些向量的值域并不能充 满整个空间。比如图像的像素值一般是正值,而且在一个有界闭集之中。这带来的问题是,对它们进行线性运算很可能得到的结果会溢出正常的范围——在大部分 paper中,可能只是采用某些heuristics的手段进行简单处理,或者根本不管,很少见到在数学上对此进行深入探讨的——不过如果能解决实际问 题,这也是无可厚非的,毕竟不是所有的工作都需要像纯数学那样追求严谨。
量化(quantization)。这 是在处理连续信号时被广泛采用的方式。只是习以为常,一般不提名字而已。比如一个空间信号(Vision中的image)或者时间信号,它们的 domain中的值是不可数无限大的(uncountably infinite),不要说表示为有限维向量,即使表达为无限序列也是不可能的。在这种情况下,一般在有限域内,按照一定顺序每隔一定距离取一个点来代表 其周围的点,从而形成有限维的表达。这就是信号在时域或空域的量化。
这样做不可避免要丢失信息。但是,由于小邻域内信号的高度相关,信息丢失的程度往往并不显著。而且,从理论上说,这相当于在频域中的低通过率。对于有限能量的连续信号,不可能在无限高的频域中依然保持足够的强度,只要采样密度足够,丢失的东西可以任意的少。
除了表示信号,对于几何形体的表达也经常使用量化,比如表示curve和surface。
找 出有限个数充分表达一个对象也许不是最困难的。不过,在其上面建立数学结构却未必了。一般来说,我们要对其进行处理,首先需要一个拓扑结构用以描述空间上 的点是如何联系在一起。直接建立拓扑结构在数学上往往非常困难,也未必实用。因此,绝大部分工作采取的方式是首先建立度量结构。一个度量空间,其度量会自 然地诱导出一个拓扑结构——不过,很多情况下我们似乎会无视它的存在。
最简单的情况,就是使用原始向量表达的欧氏距离 (Euclidean distance)作为metric。不过,由于原始表达数值的不同特性,这种方式效果一般不是特别好,未必能有效表达实际对象的相似性(或者不相似 性)。因此,很多工作会有再此基础上进行度量的二次建立。方式是多种多样的,一种是寻求一个映射,把原空间的元素变换到一个新的空间,在那里欧氏距离变得 更加合适。这个映射发挥的作用包括对信息进行筛选,整合,对某些部分进行加强或者抑制。这就是大部分关于feature selection,feature extraction,或者subspace learning的文章所要做的。另外一种方式,就是直接调节距离的计算方式(有些文章称之为metric learning)。
这两种方式未必是不同的。如果映射是单射,那么它相当于在原空间建立了一个不同的度量。反过来,通过改变距离计算方式建立的度量在特定的条件下对应于某种映射。
大 家可能注意到,上面提到的度量建立方法,比如欧氏距离,它需要对元素进行代数运算。对于普通的向量空间,线性运算是天然赋予的,我们无须专门建立,所以可 以直接进行度量的构造——这也是大部分工作的基础。可是,有些事物其原始表达不是一个n-tuple,它可能是一个set,一个graph,或者别的什么 特别的object。怎么建立代数运算呢?
一种方法是直接建立。就是给这些东西定义自己的加法和数乘。这往往不是那么直接(能很容易建立 的线性运算结构早已经被建立好并广泛应用了),可能需要涉及很深的数学知识,并且要有对问题本身的深入了解和数学上的洞察力。不过,一个新的代数结构一旦 建立起来,其它的数学结构,包括拓扑,度量,分析,以及内积结构也随之能被自然地诱导出来,我们也就具有了对这个对象空间进行各种数学运算和操作的基础。 加法和数乘看上去简单,但是如果我们对于本来不知道如何进行加法和数乘的空间建立了这两样东西,其理论上的贡献是非常大的。
(一个小问 题:大家常用各种graphical model,但是,每次这些model都是分别formulate,然后推导出estimation和evaluation的步骤方法。是否可能 对"the space of graphical model"或者它的某个特定子集建立某种代数结构呢?(不一定是线性空间,比如群,环,广群, etc)从而使得它们在代数意义上统一起来,而相应的estimation或者evaluation也可以用过代数运算derive。这不是我的研究范 围,也超出了我目前的能力和知识水平,只是我相信它在理论上的重要意义,留作一个远景的问题。事实上,数学中确实有一个分支叫做 Algebraic statistics 可能在探讨类似的问题,不过我现在对此了解非常有限。)
回到我们的正题,除了直接建立运算定 义,另外一种方式就是嵌入(embedding)到某个向量空间,从而继承其运算结构为我所用。当然这种嵌入也不是乱来,它需要保持原来这些对象的某种关 系。最常见的就是保距嵌入(isometric embedding),我们首先建立度量结构(绕过向量表达,直接对两个对象的距离通过某种方法进行计算),然后把这个空间嵌入到目标空间,通常是有限维 向量空间,要求保持度量不变。
“嵌入”是一种在数学上应用广泛的手段,其主要目标就是通过嵌入到一个属性良好,结构丰富的空间,从而利用 其某种结构或者运算体系。在拓扑学中,嵌入到metric space是对某个拓扑空间建立度量的重要手段。而在这里,我们是已有度量的情况下,通过嵌入获取线性运算的结构。除此以来,还有一种就是前些年比较热的 manifold embedding,这个是通过保持局部结构的嵌入,获取全局结构,后面还会提到。
接下来的一个 重要的代数结构,就是内积(inner product)结构。内积结构一旦建立,会直接诱导出一种性质良好的度量,就是范数(norm),并且进而诱导出拓扑结构。一般来说,内积需要建立在线 性空间的基础上,否则连一个二元运算是否是内积都无法验证。不过,kernel理论指出,对于一个空间,只要定义一个正定核(positive kernel)——一个符合正定条件的二元运算,就必然存在一个希尔伯特空间,其内积运算等效于核运算。这个结论的重要意义在于,我们可以绕开线性空间, 通过首先定义kernel的方式,诱导出一个线性空间(叫做再生核希尔伯特空间 Reproducing Kernel Hilbert Space),从而我们就自然获得我们所需要的度量结构和线性运算结构。这是kernel theory的基础。
在很多教科书中,以二次 核为例子,把二维空间变成三维,然后告诉大家kernel用于升维。对于这种说法,我一直认为在一定程度上是误导的。事实上,kernel的最首要意义是 内积的建立(或者改造),从而诱导出更利于表达的度量和运算结构。对于一个问题而言,选择一个切合问题的kernel比起关注“升维”来得更为重要。
kernel 被视为非线性化的重要手段,用于处理非高斯的数据分布。这是有道理的。通过nonlinear kernel改造的内积空间,其结构和原空间的结构确实不是线性关联,从这个意义上说,它实施了非线性化。不过,我们还应该明白,它的最终目标还是要回到 线性空间,新的内积空间仍旧是一个线性空间,它一旦建立,其后的运算都是线性的,因此,kernel的使用就是为了寻求一个新的线性空间,使得线性运算更 加合理——非线性化的改造最终仍旧是要为线性运算服务。
值得一提的是,kernelization本质上说还是一种嵌入过程:对于一个空间先建立内积结构,并且以保持内积结构不变的方式嵌入到一个高维的线性空间,从而继承其线性运算体系。
上 面说到的都是从全局的方式建立代数结构的过程,但是那必须以某种全局结构为基础(无论预先定义的是运算,度量还是内积,都必须适用于全空间。)但是,全局 结构未必存在或者适合,而局部结构往往简单方便得多。这里就形成一种策略,以局部而达全局——这就是流形(manifold)的思想,而其则根源于拓扑 学。
从拓扑学的角度说,流形就是一个非常优良的拓扑空间:符合Hausdorff分离公理(任何不同的两点都可以通过不相交的邻域分 离),符合第二可数公理(具有可数的拓扑基),并且更重要的是,局部同胚于R^n。因此,一个正则(Regular)流形基本就具有了各种最良好的拓扑特 性。而局部同胚于R^n,代表了它至少在局部上可以继承R^n的各种结构,比如线性运算和内积,从而建立分析体系。事实上,拓扑流形继承这些结构后形成的 体系,正是现代流形理论研究的重点。继承了分析体系的流形,就形成了微分流形(Differential manifold),这是现代微分几何的核心。而微分流形各点上的切空间(Tangent Space),则获得了线性运算的体系。而进一步继承了局部内积结构的流形,则形成黎曼流形(Riemann manifold),而流形的全局度量体系——测地距离(geodesics)正是通过对局部度量的延伸来获得。进一步的,当流行本身的拓扑结构和切空间 上的线性结构发生关系——也就获得一簇拓扑关联的线性空间——向量丛(Vector bundle)。
虽然manifold theory作为现代几何学的核心,是一个博大精深的领域,但是它在learning中的应用则显得非常狭窄。事实上,对于manifold,很多做 learning的朋友首先反应的是ISOMAP, LLE, eigenmap之类的算法。这些都属于embedding。当然,这确实是流形理论的一个重要方面。严格来说,这要求是从原空间到其映像的微分同胚映 射,因此,嵌入后的空间在局部上具有相同的分析结构,同时也获得了各种好处——全局的线性运算和度量。不过,这个概念在learning的应用中被相当程 度的放宽了——微分同胚并不能被完全保证,而整个分析结构也不能被完全保持。大家更关注的是保持局部结构中的某个方面——不过这在实际应用中的折衷方案也 是可以理解的。事实表明,当原空间中的数据足够密集的情况下,这些算法工作良好。
Learning中流形应用的真正问题在于它被过滥地运 用于稀疏空间(Sparse space),事实上在高维空间中撒进去几千乃至几十万点,即使最相邻的几点也难称为局部了,局部的范围和全局的范围其实已经没有了根本差别,连局部的概 念都立不住脚的时候,后面基于其展开的一切工作也都没有太大的意义。事实上,稀疏空间有其本身的规律和法则,通过局部形成全局的流形思想从本质上是不适合 于此的。虽然,流形是一种非常美的理论,但是再漂亮的理论也需要用得其所——它应该用于解决具有密集数据分布的低维空间。至于,一些paper所报告的在 高维空间(比如人脸)运用流形方法获得性能提升,其实未必是因为“流形”本身所起的作用,而很可能是其它方面的因素。
流 形在实际应用中起重要作用的还有两个方面:一个是研究几何形体的性质(我们暂且不谈这个),还有就是它和代数结构的结合形成的李群(Lie group)和李代数(Lie algebra)。 当我们研究的对象是变换本身的时候,它们构成的空间是有其特殊性的,比如所有子空间投影形成了Grassmann流形,所有的可逆线性算子,或者仿射算 子,也形成各自的流形。对他们的最重要操作是变换的结合,而不是加法数乘,因此,它们上面定义的更合适的代数结构应该是群和不是线性空间。而群和微分流形 的结合体——李群则成为它们最合适的描述体系——而其切空间则构成了一种加强的线性空间:李代数,用于描述其局部变化特性。
李代数和李群 的关系是非常漂亮的。它把变换的微变化转换成了线性空间的代数运算,使得移植传统的基于线性空间的模型和算法到李空间变得可能。而且李代数中的矩阵比起变 换本身的矩阵甚至更能反映变换的特性。几何变换的李代数矩阵的谱结构就能非常方便地用于分析变换的几何特性。
最后,回头总结一下关于嵌入 这个应用广泛的策略,在learning中的isometry, kernel和manifold embedding都属于此范畴,它们分别通过保持原空间的度量结构,内积结构和局部结构来获得到目标(通常是向量空间)的嵌入,从而获得全局的坐标表 达,线性运算和度量,进而能被各种线性算法和模型所应用。
在获得这一系列好处的同时,也有值得我们注意的地方。首先,嵌入只是一种数学手 段,并不能取代对问题本身的研究和分析。一种不恰当的原始结构或者嵌入策略,很多时候甚至适得其反——比如稀疏空间的流形嵌入,或者选取不恰当的 kernel。另外,嵌入适合于分析,而未必适合于重建或者合成。这是因为嵌入是一个单射(injection),目标空间不是每一个点都和原空间能有效 对应的。嵌入之后的运算往往就打破了原空间施加的限制。比如两个元素即使都是从原空间映射过来,它们的和却未必有原像,这时就不能直接地回到原空间了。当 然可以考虑在原空间找一个点它的映射与之最近,不过这在实际中的有效性是值得商榷的。
和Learning有关的数学 世界是非常广博的,我随着学习和研究的深入,越来越发现在一些我平常不注意的数学分支中有着适合于问题的结构和方法。比如,广群(groupoid)和广 代数(algebroid)能克服李群和李代数在表示连续变换过程中的一些困难——这些困难困扰了我很长时间。解决问题和建立数学模型是相辅相成的,一方 面,一个清晰的问题将使我们有明确的目标去寻求合适的数学结构,另一方面,对数学结构的深入理解对于指导问题的解决也是有重要作用的。对于解决一个问题来 说,数学工具的选择最重要的是适合,而不是高深,但是如果在现有数学方法陷入困难的时候,寻求更高级别的数学的帮助,往往能柳暗花明。数学家长时间的努力 解决的很多问题,并不都是理论游戏,他们的解决方案中很多时候蕴含着我们需要的东西,而且可能导致对更多问题的解决——但是我们需要时间去学习和发现它 们。
前面几篇谈了一些对数学的粗浅看法。其实,如果对某门数学有兴趣,最好的方法就是走进那个世界去学习和体验。
这里说说几本我看过后觉得不错的数学教科书。
1. 线性代数 (Linear Algebra):
我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要。这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的。我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是
Introduction to Linear Algebra (3rd Ed.) by Gilbert Strang.
这本书是MIT的线性代数课使用的教材,也是被很多其它大学选用的经典教材。它的难度适中,讲解清晰,重要的是对许多核心的概念讨论得比较 透彻。我个人觉得,学习线性代数,最重要的不是去熟练矩阵运算和解方程的方法——这些在实际工作中MATLAB可以代劳,关键的是要深入理解几个基础而又 重要的概念:子空间(Subspace),正交(Orthogonality),特征值和特征向量(Eigenvalues and eigenvectors),和线性变换(Linear transform)。从我的角度看来,一本线代教科书的质量,就在于它能否给这些根本概念以足够的重视,能否把它们的联系讲清楚。Strang的这本书 在这方面是做得很好的。
而且,这本书有个得天独厚的优势。书的作者长期在MIT讲授线性代数课(18.06),课程的video在MIT的Open courseware网站上有提供。有时间的朋友可以一边看着名师授课的录像,一边对照课本学习或者复习。
http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm
2. 概率和统计 (Probability and Statistics):
概率论和统计的入门教科书很多,我目前也没有特别的推荐。我在这里想介绍的是一本关于多元统计的基础教科书:
Applied Multivariate Statistical Analysis (5th Ed.) by Richard A. Johnson and Dean W. Wichern
这本书是我在刚接触向量统计的时候用于学习的,我在香港时做研究的基础就是从此打下了。实验室的一些同学也借用这本书学习向量统计。这本书 没有特别追求数学上的深度,而是以通俗易懂的方式讲述主要的基本概念,读起来很舒服,内容也很实用。对于Linear regression, factor analysis, principal component analysis (PCA), and canonical component analysis (CCA)这些Learning中的基本方法也展开了初步的论述。
之后就可以进一步深入学习贝叶斯统计和Graphical models。一本理想的书是
Introduction to Graphical Models (draft version). by M. Jordan and C. Bishop.
我不知道这本书是不是已经出版了(不要和Learning in Graphical Models混淆,那是个论文集,不适合初学)。这本书从基本的贝叶斯统计模型出发一直深入到复杂的统计网络的估计和推断,深入浅 出,statistical learning的许多重要方面都在此书有清楚论述和详细讲解。MIT内部可以access,至于外面,好像也是有电子版的。
3. 分析 (Analysis):
我想大家基本都在大学就学过微积分或者数学分析,深度和广度则随各个学校而异了。这个领域是很多学科的基础,值得推荐的教科书莫过于
Principles of Mathematical Analysis, by Walter Rudin
有点老,但是绝对经典,深入透彻。缺点就是比较艰深——这是Rudin的书的一贯风格,适合于有一定基础后回头去看。
在分析这个方向,接下来就是泛函分析(Functional Analysis)。
Introductory Functional Analysis with Applications, by Erwin Kreyszig.
适合作为泛函的基础教材,容易切入而不失全面。我特别喜欢它对于谱论和算子理论的特别关注,这对于做learning的研究是特别重要的。 Rudin也有一本关于functional analysis的书,那本书在数学上可能更为深刻,但是不易于上手,所讲内容和learning的切合度不如此书。
在分析这个方向,还有一个重要的学科是测度理论(Measure theory),但是我看过的书里面目前还没有感觉有特别值得介绍的。
4. 拓扑 (Topology):
在我读过的基本拓扑书各有特色,但是综合而言,我最推崇:
Topology (2nd Ed.) by James Munkres
这本书是Munkres教授长期执教MIT拓扑课的心血所凝。对于一般拓扑学(General topology)有全面介绍,而对于代数拓扑(Algebraic topology)也有适度的探讨。此书不需要特别的数学知识就可以开始学习,由浅入深,从最基本的集合论概念(很多书不屑讲这个)到Nagata- Smirnov Theorem和Tychonoff theorem等较深的定理(很多书避开了这个)都覆盖了。讲述方式思想性很强,对于很多定理,除了给出证明过程和引导你思考其背后的原理脉络,很多令人 赞叹的亮点——我常读得忘却饥饿,不愿释手。很多习题很有水平。
5. 流形理论 (Manifold theory):
对于拓扑和分析有一定把握时,方可开始学习流形理论,否则所学只能流于浮浅。我所使用的书是
Introduction to Smooth Manifolds. by John M. Lee
虽然书名有introduction这个单词,但是实际上此书涉入很深,除了讲授了基本的manifold, tangent space, bundle, sub-manifold等,还探讨了诸如纲理论(Category theory),德拉姆上同调(De Rham cohomology)和积分流形等一些比较高级的专题。对于李群和李代数也有相当多的讨论。行文通俗而又不失严谨,不过对某些记号方式需要熟悉一下。
虽然李群论是建基于平滑流形的概念之上,不过,也可能从矩阵出发直接学习李群和李代数——这种方法对于急需使用李群论解决问题的朋友可能更加实用。而且,对于一个问题从不同角度看待也利于加深理解。下面一本书就是这个方向的典范:
Lie Groups, Lie Algebras, and Representations: An Elementary Introduction. by Brian C. Hall
此书从开始即从矩阵切入,从代数而非几何角度引入矩阵李群的概念。并通过定义运算的方式建立exponential mapping,并就此引入李代数。这种方式比起传统的通过“左不变向量场(Left-invariant vector field)“的方式定义李代数更容易为人所接受,也更容易揭示李代数的意义。最后,也有专门的论述把这种新的定义方式和传统方式联系起来。
————————————————————————————
无论是研究Vision, Learning还是其它别的学科,数学终究是根基所在。学好数学是做好研究的基石。学好数学的关键归根结底是自己的努力,但是选择一本好的书还是大有益 处的。不同的人有不同的知识背景,思维习惯和研究方向,因此书的选择也因人而异,只求适合自己,不必强求一致。上面的书仅仅是从我个人角度的出发介绍的, 我的阅读经历实在非常有限,很可能还有比它们更好的书(不妨也告知我一声,先说声谢谢了)。
collections of saved topical research for better bookmarking and sharing. Jetpaks have permanent urls for easy access from any computer and public ones are constantly indexed by Google and Yahoo and have higher organic search results, especially if you include a description.
If you would like to help make Jeteye even better, we have a page just for you!
This is an advertising and user supported product. If you find Jeteye useful, please consider a donation to further development of the service.