开篇词 | 从今天起,学会线性代数

你好,我是朱维刚。欢迎你跟我一起重学线性代数!

我们为什么要学线性代数?

“数学”其实是一个老生常谈的话题。我出生在80年代,在我这一代,父母一直给我们灌输“学好数理化,走遍天下都不怕”的思想。我们每个人都是从很小的时候就开始学习数学了。那你有没有想过,学了那么多年数学,我们到底把这些数学知识都学到哪里去了呢?它们到底可以用在什么地方呢?

我自己对数学这个学科比较感兴趣,从小就在想这些问题,但是一直百思不得其解。一直到了大学和研究生阶段,学了工程数学之后,我才真正恍然大悟——原来数学可以用在各类工程上,比如我现在正在从事的人工智能中的机器学习项目。

说起来,我与机器学习结缘还是比较早的。

2006年年初,我开始接触机器学习,加入了IronPort(后来被思科收购了)公司的TDA(Threat Data Analyst)团队。当时公司的主要业务集中在“反垃圾邮件”这个领域,我们这些工程师的主要职责,就是每天分析全球大量邮件数据、人工打分类标签、写匹配规则来优化机器学习引擎。其实有点类似如今的数据分析师和数据科学家,可以说基本上每天都在跟“数学”打交道。如今14年过去了,目前我致力于建筑行业数字孪生的工作,我希望通过人工智能技术,推动建筑行业进入“智慧建造”时代。

做了这么多年机器学习,我经常听到有人跟我说,机器学习很难啊,你到底是怎么学会的?

其实,我想说,机器学习本身没有多大难度,因为经过多年的积累后,很多规则已经成型了。对于我们来说真正难的,是机器学习背后的算法所涉及的基础数学原理,包括向量、矩阵等等。

我们可以来看下机器学习的整个知识体系。单从数学角度来看,这个覆盖范围非常广,有向量积分、矩阵分解等等,但最最核心的还是线性代数。所以说,不要再问我为什么自己学不会机器学习、人工智能了,因为你没有学好线性代数。

不过,你可千万不要觉得,学了线性代数之后,实际应用就只有机器学习。如果这么想,那就太局限了。

线性代数是计算机很多领域的基础。比如,如何让3D图形显示到二维屏幕上?这是线性代数在图形图像学中的应用。如何提高密码被破译的难度?这个密码学问题,用线性代数中的有限向量空间可以很好地解决。

线性代数的应用真的非常广泛。掌握了线性代数这样的基础学科知识,我们其实就相当于有了数学这个利器,为其他领域的实际应用打下了非常好、非常扎实的基础。最简单、最直接的利益——你不仅可以在工作中进行算法调优,还能成为公司创新团队的主力。

到底该怎么学线性代数?

既然线性代数是机器学习最底层的知识,如果我们想要在机器学习上有所作为,学会线性代数是必须的。那该怎么学呢?

我估计你肯定看过外面很多书或者课程,我也看过。它们无一例外都是直接上来就给你讲机器学习的应用实践,然后里面穿插了一些数学知识,从实践的角度切入。这样编排课程当然没问题,优点是入门容易,但它的缺点也是显而易见的。这样学下来,很多时候,你只知道固定的应用场景,死记硬背几个知识点容易,但是数学知识并不牢固。当遇到实际问题的时候,你除了套公式之外,还是只能干瞪眼,根本没有真正吃透背后的原理。

因此,从我自己学习的经验出发,在技术领域里,我更推荐自下而上的学习方式,也就是从底层基础概念开始,一步步循序渐进往上走,一直走到应用实践。当然,这个方式也有缺点,那就是入门的时候困难,可能会遇到很多知识阻碍,很多人都会中途放弃。这些学习经历我都深有体会。

所以,我运用了自下而上的方式来进行讲解,同时,讲解每个知识点的时候,我都会加入一些和理论有关的实践讲解。这样就能够帮你由里及表,融会贯通,在搭建起知识体系的同时,可以获得螺旋式上升的学习效果。

为了让你能更加系统地学习线性代数,在设计“重学线性代数”这门课时,我还真是下了一番苦功夫。下面就给你详细介绍下这门课的两大模块。

第一个模块是基础篇,我们主要讲线性代数的理论基础。

我会从最简单、也是你最熟悉的线性方程组说起,在这基础上引出向量和矩阵,并通过矩阵来讲“解线性方程组”的不同方法(有直接法,也有实践中用得最多的间接迭代法)。然后,我会在向量和矩阵的基础上讲线性空间,因为在实践中,更多的是对集合的操作,也就是对线性空间的操作。线性空间好比是容器,它包含了向量以及向量的运算。基础篇的最后,我还会为你介绍解析几何,是解析几何使得向量从抽象走向了具象,让向量具有了几何的含义,比如:计算向量的长度、之间的距离和角度,这在机器学习的主成分分析PCA中是非常有用的。

第二个模块是应用篇,我会结合线性代数的基础理论,讲解线性代数在计算机科学中的应用。

有了之前的基础后,你再来看应用实践就会觉得简单很多。当其中会涉及一些线性代数以外的数学领域时,我也会给予一定的说明。

特别地,我要强调一下。在每一讲最后我都特意设计了“线性代数练习场”,带你通过练习来巩固学到的知识点。所以,这个小板块一定要重视起来,期待和你一起在实践中探索。

所以从整体来说,“重学线性代数”可以满足你四个层次的需求:

  • 第一层次:在研究应用领域时,希望能够理解数学公式的意义。
  • 第二层次:在阅读线性代数参考书时,希望理解书中的内容。
  • 第三层次:能够自己实践、自己计算。
  • 第四层次:能够踏入大规模矩阵计算的世界。

好了,到这里,我想说的已经差不多了,不知道你有没有准备好,跟我一起学习了呢?

进入DT时代后,很多企业都开始着手做数字化转型。站在从业者的角度,有了数字化的基础数据,我相信,终有一天人工智能将定义下一代软件解决方案,这是一个巨大的机会。

我希望在这个机会真正到来前,你能和我一起,一步步地、深入浅出地学习线性代数这门数学基础课,成为企业研究机构的创新力量之一。我也非常希望,通过这门课程的学习,你能对线性代数能有一个重新的认识,让线性代数融入到你的工作和生活中,真正改变你的工作和生活,让它成为你的翅膀。

当然,线性代数只是一个开始,在实际解决问题时,还需要用到很多其它的数学知识,我也会继续保持学习的心态,来和你一起探讨数学,一起更新最新的前沿知识,学习永无止境。

最后,让我们整装出发,一起来探索线性代数的世界,感受腾飞的乐趣吧!

精选留言

  • 数学汤家凤

    2020-07-27 19:08:12

    凯斯万
  • 天盖领域

    2020-08-07 12:54:16

    数学反反复复的学,学会了一个,一段时间不用,连公式和原理都忘记了。又要翻书看得头都痛。本身也不是聪明人,真是不知道为啥就选了计算机专业,到现在还只能是个码农。
  • 2020-07-28 19:47:53

    向量矩阵 怎么理解? 向量在高纬空间组成的图形?
    作者回复

    你好,一步,这是很好的场景匹配,图形是矩阵的一个应用场景,如果在2D平面中,那就是二维的,由二维向量组成图形,如果在3D空间中,那就是三维的,由三维向量组成图形,但是3D图形如果要做各类变换,比如旋转、平移、伸缩等等,需要4x4矩阵才能完成各种变换操作,具体在后续课程中我都会讲,继续加油。

    2020-07-29 08:20:33

  • 花雨田

    2020-07-28 00:38:02

    每次看到线性代数,就想到荒废的大学课程。出来混,迟早要还的。这次就和老师一起把旧债还掉
    作者回复

    能够在工作和生活中用的上就好。

    2020-07-28 12:26:29

  • 谭鹏

    2021-05-12 18:58:19

    大学线性代数考满分 过了一个暑假全忘了
    作者回复

    哈哈,都是这样的,主要还是应用到生活和工作中。

    2021-08-27 20:28:09

  • Stay Foolish

    2020-08-07 12:31:52

    老师,为什么矩阵对应的行列式≠0,矩阵就可逆而且满秩,这其中有什么联系?
    作者回复

    你好,你的ID我超喜欢,Stay Foolish, Stay Hungry,;-)
    因为根据逆矩阵的计算规则,一个2*2的矩阵A,我们交换a11和a22的位置,然后在a12和a21前加上负号,最后除以行列式:a11a22-a12a21,就得到A的逆矩阵了,所以a11a22-a12a21不能是0,因为它是分母,而且它又是A的行列式。

    2020-08-07 17:03:40

  • 咱是吓大的

    2020-11-26 17:02:58

    但凡以前学数学上点心,现在也不至于那么累,那就重新捡起来吧。。。
    作者回复

    加油,把数学用到生活和工作场景中。

    2021-02-09 08:31:59

  • 流浪的阳光

    2020-07-28 22:16:38

    和量化交易,有交集没?
    作者回复

    ������这是一个应用场景,可以研究一下数学模型,似乎更多和概率相关。

    2020-07-29 08:09:32

  • 西西弗与卡夫卡

    2020-07-28 08:32:14

    总有人说“公众号矩阵”、“抖音矩阵”,是时候展示真正的矩阵了
    作者回复

    还有这类矩阵,没听过,我只知道还有项目管理矩阵。

    2020-07-28 11:52:37

  • 吾颜六涩

    2022-01-19 15:05:58

    开始学习,大一疫情在家里学的太水了
  • 小炭

    2020-11-09 17:06:38

    从零基础出发,学好数学这门课程。改变自己的工作和生活,让自己越来越好。
  • 抱紧我的小鲤鱼

    2020-07-30 11:09:32

    开始新的课程,为机器学习打基础
  • kylexy_0817

    2020-07-29 09:29:20

    感觉要有一定的基础才能好好学这门课
    作者回复

    其实还好的,可以跟着慢慢来。

    2020-07-29 12:25:22

  • 张开元

    2020-07-29 07:37:27

    学习学习使我快乐
  • IT蜗壳-Tango

    2020-07-28 10:18:54

    打卡学习
  • Albert

    2020-07-28 09:19:47

    感觉学习的挺好的,也能够依据规律顺利应用推导,可始终没搞清楚线性代数的本质,期望学习完能够领悟更深。
  • 李沉舟

    2020-07-27 23:52:38

    来一次矩阵革命
  • Asyncrun

    2020-07-27 21:09:32

    开始学习
  • 郑泽洲

    2023-08-06 10:17:12

    几乎都忘光了,重新拾起来