吉尔伯特·斯特朗:线性代数、深度学习、教学与 MIT 公开课
Gilbert Strang: Linear Algebra, Deep Learning, Teaching, and MIT OpenCourseWare
MIT 线性代数教授谈数学教学的方法、深度学习背后的线性代数,以及公开课如何影响全球学生。
2019 年,一位 84 岁的老教授录了一段线性代数课。这门课后来被几百万人看过,其中包括当时还在读本科的 Lex Fridman。画面里没有动画,也没有交互式课件,只有一块黑板、一支粗粉笔,和一个把矩阵讲得像故事一样的人。
这位教授叫 Gilbert Strang(吉尔伯特·斯特朗),MIT 数学系教授。他在访谈里说了一句挺实在的话:视频能火,功劳大部分在线性代数这门学科本身,过去几十年它的重要性暴涨了。数据来了,而数据天生就是矩阵的形状。
那门课的开头,是一块黑板和一支粗粉笔
Strang 提到自己只用一种粉笔,就是那种特别粗的、写在黑板上会发出明显声音的粉笔。他说别人喜欢,他自己也喜欢,别的粉笔他不用了。
这个细节其实说明了一些事情。18.06 这门课的录像就是课堂实况,没有重录,没有剪辑,没有为镜头重新设计板书。他在 2000 年前后录的,因为这门课他教过很多遍,结构已经理得很顺,讲起来自己也享受。
MIT 公开课(MIT OpenCourseWare)这件事的起源,他讲得很轻松。当时校长韦斯特(Charles Vest)任命了一个委员会,本来的任务是研究怎么把 MIT 的课程像其他大学那样包装、营销出去。委员会讨论了一个周末没找到路子,回来跟校长说:要不我们干脆全部免费送出去?校长说,行。
如果把大学看成一个生产产品的机构,知识就是它的产品。把产品免费送人,听起来是疯了。(Gilbert Strang)
但这个决定后来证明是对的。Strang 的解释是,MIT 的名声建立在硬核技术上,而公开课是展示「MIT 到底是什么样」最直接的方式。它跳过了宣传册和排名的套路,直接把课堂摆到全世界面前。
这里还有一层值得留意的差别。宣传册讲的是结论,课堂展示的是过程。一个人坐在屏幕前看斯特朗推着粉笔一步一步把矩阵拆开,学到的东西远不止知识点,还包括一个做数学的人怎样思考、在哪里停顿、什么时候说「这里其实很简单」。讲授本身的节奏,也是教学内容的一部分。
四个子空间:他这辈子最得意的一个教学设计
问到他最喜欢的教学内容,他挑的东西一点都不高深:四个基本子空间。
他特意说明,这个概念在他命名之前早就存在了,他只是把它组织成了一个好讲的框架。矩阵就是一堆排成矩形的数字,有若干列,也有若干行。列和行用的是同一批数字,所以它们之间必然有关系。但这种关系不简单:列可能比行多,数字被打乱了次序。
第一个空间是列空间。把矩阵的每一列看成一个向量,也就是高维空间里的一个点。把所有列的所有线性组合放在一起,会得到一个平坦的曲面。在三维里它就是一张纸,在十维里它依然是一张「纸」,只是没法画出来。
第二个空间是行空间,来自同一批数字,但组合的是行。
另外两个空间和它们垂直。三维空间里有一张平面,垂直于它的是一条直线。对应到矩阵上,就是零空间和左零空间。
四个空间拼在一起,构成了一个矩阵的完整结构图。Strang 说这个想法本身好懂,在 18.06 里出现得很早,但他自己挺骄傲,因为这张图能把一个矩阵的行为解释清楚。
这里有个更值得琢磨的点。他在课上会直接跟学生说,他自己脑子里也没有十维向量的箭头图像,谁都画不出来。可你不需要图像也能做运算:两组十个数可以相加,一组十个数可以乘以 3。会做这两件事,你就在十维空间里做线性代数了。
我没法说自己脑子里有画面。但我还是会把课堂往那个方向推,让他们去想十维空间里的一张平面。(Gilbert Strang)
这句话背后有一个反常识的推论:数学直觉未必是视觉性的。人可以在完全没有图像的情况下熟练操作高维对象,靠的是对规则的手感。画不出十维空间的箭头,跟做不了十维线性代数,是两回事。
为什么线性代数比微积分简单,却排在它后面教
Strang 有个说得挺直白的观点:线性代数本该先教。
理由是这样的。微积分所有的复杂性都来自曲线,来自弯曲的曲面。线性代数里一切都是平的,没有任何弯的东西。平的东西不会让你出错,从二维推到十维、一百维,一路顺下去。
但教学顺序是反的。牛顿和莱布尼茨先搞出了微积分,所以高中开 AP 微积分,大学一年级还是微积分。线性代数被排到后面,甚至很多工科生到大二大三才第一次正经接触。
他在访谈里说得更重一点:本科数学教育里,微积分占的课时和关注度是「不成比例的」,代价是代数和概率统计被压缩了。
他把今天的本科数学分成三块:微积分、线性代数与矩阵、概率与统计。三块都该有重要位置,但微积分长期拿走了最大的那份。
这个判断放在 2019 年说,是有现实依据的。数据以矩阵形式出现,而处理数据的方法几乎全部长在线性代数上。石油工程的模型、气候模型、医学试验、推荐系统,输入都是矩形数字阵列。反倒是微分方程那套语言,在数据科学里用得少。
他也没有主张把微积分赶出去,只是希望份额调一调。一门学科的教学时间分配,往往滞后于这门学科的实际使用方式几十年,调整起来比想象中慢。
奇异值:给数据科学家的一条实用建议
问到他觉得最美的概念,他先提了特征值,然后马上转向奇异值(singular values)。
原因很实在:特征值只对方阵有效,而真实数据几乎都是长方形的矩阵。一百个病人乘五十种药,这个矩阵不是方的,特征值用不上。奇异值可以。
奇异值的核心是一个分解定理:任何矩阵,不管是方的还是长的,都能写成三个简单矩阵的乘积,即旋转、拉伸、再旋转。
旋转好想象。二维空间绕着中心转,三维空间里飞行员要记三个转向轴,十维空间有十种转法,但「转」这件事本身你能看见。拉伸也好想象,就是沿某些方向拉长或压扁,其余方向全为零。
一个塞满数字、看不出规律的矩阵,被拆成「转、拉、转」之后,就变成了人脑能处理的东西。这是 Strang 觉得漂亮的地方。
他给数据科学家的建议很直接:把矩阵分解成若干部分,第一部分是最重要的信息,第二部分是第二重要的,往后排。很多情况下,找到前一两项就可以停了,剩下的部分是实验误差或者浮点舍入的噪声。
如果数据科学家能找到第一项和第二项,就在那里停下。剩下的数据大概率是舍入误差,或者是实验误差。(Gilbert Strang)
他还顺带说了句对数学系同行的抱怨:赶紧教奇异值,别只教特征值。这句话听着像玩笑,但指向的问题是真的。很多课程花大半学期讲特征值和特征向量,只因为它们在理论上更整齐,学生毕业之后拿到一张长方形的数据表,手上一件称手的工具都没有。
神经网络在他看来,是一堆折起来的平面
谈到深度学习,他没有绕开,直接给了定义。
你有一百万组输入和对应的正确输出,任务是找一条规则,把训练输入映射到已知输出,然后用这条规则去预测没见过的新输入。神经网络就是构造这条规则的一种结构。
线性代数在这里面占大头,但只有线性代数不够。矩阵只会画直线和平面,而数据不长这样。所以必须引入一点非线性。
他讲的这个非线性函数极其朴素:一条直线,到某个点折一下,换成另一个斜率。就是一个折线,一个「弯折」(fold)。
它只是把一条直线折了一下,但当你把这个折痕重复上百万次,你就得到了一个足够复杂、足够贴近真实的函数。(Gilbert Strang)
这个类比他很喜欢用:一栋造型极其复杂的房子,屋顶每个局部都是平的,但整体弯弯曲曲。工程界早就在用这个思路,叫有限元方法(finite element method)。设计桥梁、设计飞机、设计建筑,用的都是「分片平坦」作为可计算的近似。
所以神经网络的表达能力为什么强?因为折的次数足够多。这也是他理解的极限所在:过去人们以为限制在算力,算力不够就做不了更复杂的曲面。但算力一直在涨,这条线一直在往外推。
顺着这个思路还能往下走一步。如果神经网络本质上是一种分段线性的逼近器,那它的长处就落在连续、光滑、有局部规律的映射上。图像、语音、传感器读数,都是这种类型。至于那些需要严格逻辑推理、需要长链条符号操作的任务,分片平坦的近似能不能撑住,就是另一个问题了。这个判断在 2019 年说出来还是开放的,今天回头看,正好点在了要害上。
关于「能不能学到东西」这个前提
访谈里有一段讨论,值得单独拎出来。
Lex 问的是:这个世界在多大程度上可以被这种方式表达?
Strang 的回答把深度学习放回了科学史里。如果数据完全是随机数生成的,那就没有规则可学,因为压根没有规则。深度学习的成立前提是:数据里存在信号。
他把这件事和一个更古老的图景放在一起看。牛顿找到了力学定律,爱因斯坦往前走了一步,石油工程师知道油会怎样停留在地下盆地。这些人是在推导规则。而人工智能换了个做法:不去推导,让机器去搜索规则。
新的想法是让计算机自己去搜索规则,从前那套请牛顿、请爱因斯坦把规则想出来的路子,被绕过去了。这是又往前走了一步。(Gilbert Strang)
他的态度是谨慎乐观。随机性里面也有用处,随机初始化、随机梯度下降都用得上,但数据里得有基本的结构,得有信号。全是噪声,什么也学不出来。
这个判断听起来平常,但从一个教了一辈子线性代数的人嘴里说出来,分量不太一样。他见过太多矩阵,知道什么样的矩阵里有结构,什么样的没有。现代深度学习的成功,被他归到「碰巧撞上了有信号的数据」这个前提上,而非归到算法本身有多神奇。
他最喜欢的矩阵,和二阶导数有关
问他最喜欢的矩阵是哪个,他给出的答案是:对角线上全是 2,紧挨着上下两条对角线上全是 −1,其余位置全是 0。
这个矩阵看起来平平无奇,就是三条非零对角线。但它出现的地方出奇地多,工程里到处都是它。
它的意义在于:在离散世界里,它就是二阶导数的对应物。
一阶导数衡量变化有多快,二阶导数衡量变化本身变化有多快,也就是曲线弯得有多急。爱因斯坦的工作表明,理解空间必须用到二阶导数。
Strang 由此得出一个结论:二阶导数在微积分教学里该有更大的位置。而它对应的这个矩阵,在 Strang 眼里是「一切都会算得刚刚好」的那种优雅。
把一个连续对象换成离散版本,通常要付出代价,边缘会出问题,精度会掉。这个矩阵好就好在代价极小:它保持对称,保持正定,边界条件干净地落在两头。所以做数值计算的人一看到它就放心。
他不喜欢考试,也不装
有一段回答挺打动人的。他说自己算不上好老师,因为他不喜欢考试那一部分,出题、评分、给 A 还是 B,他做只是因为职责所在。
他会在开学第一节课跟学生说:我来这里是教你们数学的,不会给你们打分。他说学生多半不信,心里想的还是这位老师最后会给 A− 还是 B+。
我告诉全班,我在这儿是教你们数学的,不是来给你们评分的。但他们心里在想,他到底会给我 A− 还是 B+。(Gilbert Strang)
他把自己定位在「教」那一端,那是他觉得有意思的部分:第一次跟一个人讲清楚矩阵是什么。
Lex 追问:有没有那种时刻,你从学生的眼睛里看到他们被点亮了,不需要看成绩单?
他的回答落到了具体的地方。教大课时,他能感觉到全班什么时候真的懂了,那个时刻通常出现在讲完四个基本子空间、讲完线性代数基本定理那张关系图之后。他说,那时候他觉得课堂「接住了」。
反面他也提到了。有些学生会说「我就是不擅长数学」,然后放弃。他的看法是,这多半要归到过去的教学方式头上,把人劝退了,跟能力上限关系不大。
别被劝退。这门东西太好了,错过太可惜。(Gilbert Strang)
同一件事在两个方向上都成立。好的讲解能把人拉进来,坏的讲解能把人推出去,而后者造成的伤害往往被误认成天赋的差距。一个学生把「我不擅长数学」当成自我认知,可能只是因为某一年遇到了一位没耐心的人。
数学为什么让人安心
访谈里有一段特别日常的对话。Lex 问他数学给人带来的那种确定感从哪来,他讲了个小时候补牙的故事。
躺在牙医椅子上,他就开始算 2 的幂:2、4、8、16,一直算到脑子开始疼。牙医说,你在数数吧。
你知道自己在哪里。2 乘自己 10 次是 1024,这件事谁算都是这个结果。(Gilbert Strang)
他自称不是哲学家,也不装深沉。他说自己就是个喜欢数字的人。这种确定性给了他一种近乎安慰的东西。
这段对话里还有个问题挺有意思:数学是工具还是艺术?他的回答是两者都是,而这正是数学的好处。你可以是艺术家然后喜欢数学,也可以是工程师然后使用数学。
他自己站在中间偏工程那一侧,明确说自己不是艺术家型、哲学家型的人,虽然在访谈里听起来有点像。他真正享受的是教工程师,因为工程师要的是答案。
他还提了 MIT 数学系的一个现实:系里多数人更喜欢教那些能抓住抽象概念的学生,而他对「想找答案的工程师」更自在。这不是降低标准,是另一种诚实。工程师会逼着讲的人把每一步落到实处,讲不清楚就过不了关。
国会里几乎没有工程师,他觉得这是问题
话题转到了公共生活。Lex 提到当时的总统候选人杨安泽(Andrew Yang),口号是把 MATH 印在帽子上,Make America Think Harder。
Strang 顺着说了句:国会议员里几乎没有工程或科学背景的人,总统也不是。
我们需要对数字、对数量有感觉的人。你说这个导致那个,他们能看明白,这是无法否认的。(Gilbert Strang)
他自己有过一次近距离的经历。大约 2000 年前后,他担任美国工业与应用数学学会(SIAM)主席,被安排去众议院的一个委员会讲十分钟数学。那次经历让他觉得有趣的地方是:在座的一位议员,当年上过他的课,来自新罕布什尔州。
他也很清楚那只是短暂的一段。他说那几年数学在华盛顿还算有点存在感,后来别的事情占了上风,数学又不那么显眼了。而今天华盛顿关心的议题里有 AI,AI 的内核是数学,只是这层关系被藏起来了,像是换了一顶帽子。
这段闲聊其实连着前面的话题。一个社会对数学的耐心,和它在课堂里给线性代数多少时间,处在同一条链条上。教得少,懂的人就少;懂的人少,做决策的时候就没有人替数字说话。
他认同的那句话,来自费曼
访谈结尾,Lex 引了费曼的一句话作为收束:
拼命去学你最感兴趣的东西,用最不守规矩、最不恭敬、最有原创性的方式。(Richard Feynman)
这句话和 Strang 讲的东西其实对得上。他在访谈里反复讲同一个意思:数学之所以让人着迷,是因为那里有秩序,东西不明摆着,但它是真的。这种「不明摆着但确实为真」,正是让人愿意学下去的动力。
2019 年录下这段对话时,他 84 岁。他还在想新办法讲课,还在琢磨怎么把线性代数基本定理讲得更让人信服。他说这是乐趣所在:某个瞬间你会说,哦,这样行得通。
那门 2000 年录的课,至今还有人点开。它靠的是把一件本来可以对所有人敞开的东西,真的敞开了。制作上的精良在这里几乎可以忽略不计,一块黑板、一支粗粉笔,加上一个还想把话讲明白的人,就够了。
- 如果只打算学一门本科数学,从线性代数开始。它全是平的东西,从二维推到一百维不会翻车,而今天的绝大部分数据工作都建立在它上面。
- 学的时候别死磕几何直觉。十维空间的箭头你画不出来,教授也画不出来。会做两件事就够了:两组十个数相加,一组十个数乘 3。抽象运算不依赖图像。
- 如果接触数据,直接去学奇异值分解,别停在特征值。真实数据是长方形的,特征值只对方阵有效,这条工具你迟早要用上。
- 做数据清洗时先做一次分解,看前一两项能解释多少。剩下的部分如果很小,那就是噪声,砍掉它比建模更省事。
- 想理解神经网络为什么有效,别从反向传播公式入手。先想清楚一件事:把一条折线重复上百万次,能拟合出多复杂的形状。
- 如果你曾经断定自己「不擅长数学」,先怀疑一下过去那个教你的人。放弃通常是教学方式造成的,跟能力上限关系不大。
- 找一位还在享受自己讲的东西的老师。Strang 说的原话是,那种乐趣就在「哦,这样行得通」的那一刻。
本集资源与出处
- 视频在 YouTube 收看
- 音频官方 MP3 直链来自 lexfridman.com 官方播客 RSS
- 官网Lex Fridman 官网本集页面
- 文稿HappyScribe 版文稿