最近一直有师弟师妹和朋友问我数学和研究的关系,研一要去学什么数学课。毕竟在清华,衡量一个研究生最重要的指标之一就是paper,而没有数学,是肯定上不了世界顶级的期刊和会议的,这在计算机学界尤其重要!你会发现,不论哪个领域有价值的东西,都一定离不开数学!在这样一个信息时代,当google已经让世界没有秘密的时候,一种卓越的数学思维,绝对可以成为你的核心竞争力. 无奈本人实在见地有限,且生活慵懒,一直没能整理出一些有价值的东西,今日拜读了lin dahua的空间,突然发现大牛已经做了此工作,便zz至此与大家分享。红笔标注之处,是本人的一些感受,也算站在巨人肩膀上做一些肤浅之论吧。最后补充一句:对于大部分不做纯数学理论的人来说(99.99999%的人都属于这一类),学一门数学时一定要建立和实际物理世界的联系。这样掌握的数学知识才有价值,也最深刻!
前面几篇谈了一些对数学的粗浅看法。其实,如果对某门数学有兴趣,最好的方法就是走进那个世界去学习和体验。
这里说说几本我看过后觉得不错的数学教科书。
1. 线性代数 (Linear Algebra):
我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要。这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的。我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是
Introduction to Linear Algebra (3rd Ed.) by Gilbert Strang.
这本书是MIT的线性代数课使用的教材,也是被很多其它大学选用的经典教材。它的难度适中,讲解清晰,重要的是对许多核心的概念讨论得比较透彻。我个人觉得,学习线性代数,最重要的不是去熟练矩阵运算和解方程的方法——这些在实际工作中MATLAB可以代劳,关键的是要深入理解几个基础而又重要的概念:子空间(Subspace),正交(Orthogonality),特征值和特征向量(Eigenvalues and eigenvectors),和线性变换(Linear transform)。(如果你能理解傅立叶变化究竟做了一件什么事情,你才能说你知道了子空间!学线性代数一定要理解MATLAB能为你做的事情之外其他的东西,这才是精髓。而很遗憾,很多高校的线性代数考试只测试学生的计算能力。有几个数学老师能告诉学生:我们为什么要计算特征值?)从我的角度看来,一本线代教科书的质量,就在于它能否给这些根本概念以足够的重视,能否把它们的联系讲清楚。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。(To my great acknowledgement, it is just for research.)一本理想的书是
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),(泛函是一切数学之源,而测度论又是泛函的基石。如今世界顶级投行的quant大部分都是利用概率测度去做风险中性建模和衍生品定价,谁说分析数学没有用?!ibank的衍生品投资分析都是基于测度中性去做的,因为对于大规模投资来说,最大的问题不是profit,而是risk hedging)但是我看过的书里面目前还没有感觉有特别值得介绍的。
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, (个人觉得现在vision领域的manifold learning只是一些无病呻吟的研究,it is just for papers,但是我并不是说流行学习对vision没有用处,只是manifold真正的魅力远没有被挖掘出来!正像俄罗斯那一群科学怪人整出的l1-norm,谁能想到今天对vision界带来了如此大的变革。其实,有时学习数学只是一种信仰。)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还是其它别的学科,数学终究是根基所在。(数学是能与上帝对话的语言)学好数学是做好研究的基石。(如果你能摒弃了功利的去学习数学,那么数学也势必能够为你带来功利!)学好数学的关键归根结底是自己的努力但是选择一本好的书还是大有益处的。不同的人有不同的知识背景,思维习惯和研究方向,因此书的选择也因人而异,只求适合自己,不必强求一致。上面的书仅仅是从我个人角度的出发介绍的,我的阅读经历实在非常有限,很可能还有比它们更好的书(不妨也告知我一声,先说声谢谢了)。
- 浏览: 49434 次
- 性别:
- 来自: 重庆
最新评论
-
nail2008:
我在用jBPM的时候,jBPM生成的按钮默认id为id=&qu ...
关于Extjs中(uncaught exception: No center region defined in BorderLayout) -
liang8113:
对jdom的认识和用法小解 -
xjnine:
同学,我讲的东东不是说extjs中那三个文件是最关键的。而是说 ...
extjs中断网后,图片显示不正常问题 -
cainwise:
一般extjs我们需要配置三个文件也就是说他最核心的文件
分别 ...
extjs中断网后,图片显示不正常问题
相关推荐
在研究数学在计算机人工智能发展中的重要性时,主要可以从以下几个方面深入探讨: 1. 数学的抽象性与计算机科学技术的结合 数学具备强大的抽象性,能够对现实世界的问题进行形式化表达,这使得数学理论与计算机科学...
以上这些数学分支不仅构成了计算机科学的理论基础,而且在实际编程和系统设计中都发挥着重要作用。了解并掌握这些数学知识,能帮助我们更好地理解和解决计算机科学中的复杂问题,从而提高我们的编程能力和解决问题的...
在计算机应用数学中,线性代数用于处理多维数据和复杂的算法,比如图像处理、数据分析、机器学习等领域。 5. 特征值与特征向量:文档提到了计算特征值和特征向量,这是线性代数中的一个核心概念,特征向量可以用来...
在计算机图形学、信号处理和机器学习等领域,这些理论知识能帮助构建精确的模型和算法。此外,数学分析的训练有助于培养计算机专业人士的逻辑思维和问题解决能力,这些都是软件设计和分析的关键技能。 【计算机科学...
西安电子科技大学的研究生复试中,离散数学的重要性不言而喻,因为它为理解和解决计算机科学中的问题提供了严格的数学工具。 首先,让我们详细探讨集合论。集合论是现代数学的基石,它定义了数学对象的基本概念,如...
计算机应用数学是指那些在计算机科学与工程中应用数学工具和技术的领域。在计算机科学领域中,数学是不可或缺的基础学科之一,它为算法设计、软件开发、硬件优化、数据结构、网络通信等提供理论支持。计算机应用数学...
计算机数学是IT领域中至关重要的基础学科,它涵盖了微积分、线性代数和离散数学等多个核心领域。这些知识不仅是计算机科学理论的基础,也是解决实际问题和设计算法的关键工具。 **第一篇 微积分** 微积分是研究...
离散数学是计算机科学中的基础学科,它主要研究离散而非连续的对象,是计算机科学、信息工程、软件工程等领域的理论基石。广工计算机学院的离散数学试卷,特别是07级和06级的,反映了该学院对学生在这一关键课程上的...
1. 具体数学的定义和重要性:具体数学是研究计算机科学中常用的数学方法和理论,包括但不限于组合数学、图论、数论、离散数学等。 2. 具体数学在计算机科学中的应用:在算法分析、数据结构设计、计算机网络、密码学...
然而,现在计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展。计算机科学和数学的关系可以从两个方面来看:一方面,计算机科学的数学基础是理论计算机科学,它关心的是离散数学,包括...
总的来说,深度学习视域下的高中数学学习能力研究旨在改变传统的教学模式,倡导以学生为中心,注重培养他们的创新能力、实践能力和自主学习习惯。教师的角色转变为引导者和促进者,鼓励学生积极参与,主动探索,从而...
在计算机图形学的学习过程中,不必一开始就深入所有数学领域,可以根据个人兴趣和职业目标逐步深入。但扎实的数学基础会为理解和创新提供更大的空间。通过阅读推荐的教材,如《Computer Graphics: Principles and ...
高等数学是理工科类专业的重要基础课程,它涵盖了微积分、线性代数、概率论与数理统计等多个核心领域,对于高职高专学生来说,掌握高等数学的基本概念、定理和方法至关重要。"高职高专 高等数学 学习系统"是一个专门...
计算机应用数学是计算机科学领域的重要基础学科,尤其对于博士阶段的研究工作来说,它的重要性不言而喻。浙江大学的计算机博士课程“计算机应用数学”旨在深入探讨数学原理在计算机科学中的应用,为学生提供坚实的...
离散数学是计算机科学的基础课程,它主要研究不连续、非连续对象的结构和性质,是计算机科学理论的基石...这个课件集合提供了一个系统性的学习资源,有助于计算机类学生和专业人士巩固和提升他们在离散数学领域的知识。
计算机是21世纪的核心技术,它的特性与广泛应用使得学习计算机的重要性日益凸显。计算机的主要特点包括高速运算能力、高精度计算、强大的内存以及自动化的工作能力。这些特性使得计算机在各种领域中发挥着不可替代的...
《计算机科学数学基础及分析》是由宾夕法尼亚大学计算机及信息科学系知名教授Gallier编订的一套...学生在学习过程中将能够提升自己运用数学解决实际问题的能力,这在未来的学术研究和职业生涯中都是极其宝贵的技能。
在学习和应用计算机网络数学基础时,对于数学概念的深入理解和熟练掌握至关重要。例如,理解随机过程和排队理论对于进行网络性能的分析和设计时就非常有用。随机过程可以用来模拟网络中的各种随机事件,排队理论则...
计算机中的数学是理解计算机科学本质的基础之一,这本《Mathematics for Computer Science》作为计算机科学领域内...通过学习这本书,读者可以建立起一套完整的数学思维,这对于在计算机科学领域取得进步是至关重要的。
在计算机科学中,能够正确理解和应用证明方法是至关重要的,因为算法的正确性和程序的可靠性需要通过严谨的数学证明来保证。 接下来,“The Well Ordering Principle”部分讨论了良序原理,这是一种强有力的数学...