读Linear Algebra -- Gilbert Strang
转眼间我的学士学位修读生涯已经快要到期了,重读线性代数,一是为了重新理解Algebra的的重要概念以祭奠大一刷过的计算题,二是为了将来的学术工作先打下一点点(薄弱的)基础。数学毫无疑问是指导着的科研方向与科学发展,即使是同一本数学书,每次翻阅也能读出不同的内涵、享受不同的乐趣。
P1-149
Strang在书的序言便给出了linear algebra的研究对象,一切的来源便在于Ax=b这个方程组。虽然从向量矩阵、线性方程组到向量空间、线性变换,费了好大劲才将任意一个线性变化凝练到一个矩阵上,但对于Ax=b的经典案例的解空间的描述是连接矩阵、向量等数据元素和线性代数空间的不可或缺的纽带。这个思想被概括在了针对Ax=b的三个解法中:
1. forward elimination + backward substitution 其实就是中学的高斯消元法和代换法
2. b x inverse A,仅在矩阵A存在逆矩阵的时候可使用
3. Paticular + nullspace 构造解空间的方法,这里貌似道出了线性空间的真谛!如果仅有前两种方法,便没有space的概念了。
Vectors:何谓向量?一个对象的一组属性值?
空间中的向量本质上是群/环中的定义了运算的元素,它有很多运算性质(加法乘法内积外积),而最让我印象深刻的是它的相似性度量。向量天然带有可计算相似性的特征,包括两向量的距离、夹角等等,事实上在ML/DL/AI蓬勃发展的今天,许多工作也围绕这相似性度量而展开,尤其是我所学习的信息安全领域。今天阅读的一篇Dawn Song小组的文献提出了一种新的度量跨平台二进制代码相似性的办法就是摒弃了传统graph matching而改用embedding(一个数值向量)的,此类例子不胜枚举,即使是最简单的数学也能成为一个idea的动机。
Matrices:operation or features or weights
矩阵是最早的空间降维技术,在21世纪初研究人员研究随机搜索算法时,搜索的解空间数据形式的组织为向量,而Ax=b以及在A满秩情况下x与b的一一对应性质为向量的降维带来的最直接的手段。关于矩阵的四个操作:Elimination, Substitution, Factorization, Permutation. 前二者都是对方程组表征在空间上的矫正,第三个操作实际上给我带来了两个问题:一个矩阵到底有多少信息是有用的,是否存在冗余,高斯消元对信息量的影响是什么?一个普适的线性变换系统可以拆分为多个系统叠加,上三角/下三角阵系统是否隐含着一种时移性?对于我的这大部分疑惑作者都在解空间的章节中给出了答案。最后一个操作是行向量顺序的交换,在书中我暂时只看到体现出了计算上的差异。
Ax=b:
这个方程的左边:既可以看成是矩阵A对列向量x的线性变换,又可以看作是用列向量x的元素对矩阵A的列向量的线性组合。真巧,像是在宇宙中的某个空间内,线性变换等同于了线性组合。仔细想一想那只不过是矩阵的两个维度,原文对于A拆分成行或列是这么说的:three planes meet at a point & combines three columns to produce. 这里其实很具体只不过我没插图。
P150-199
Vector Space:
可以说是线性代数中最重要的概念了,我们平时讨论的问题、解空间大多都是R^n的子空间,满足8条性质构成了一个完美的度量环境(我一直在想它跟离散数学的群环域有什么联系,但貌似知识储备有点短缺...)。Dr. Strang在这里的分析真的是非常精妙,围绕Ax=b方程的解空间与矩阵A的特性,引出了关于矩阵A的四个空间(four foundational spaces):
1. Nullspace --- Ax=0的解空间,根据elimination操作将矩阵A化为梯形阵R之后,就可以得到pivot & free variables,pivot columns是线性无关的一组列向量(引出Rank和Basis),它构成了方程解的关键,free colums可以由之线性组合表示,这也说明了矩阵A的关键信息都包含在其中的一些列中而不一定是所有。针对free colum的特征很容易构造出special solution,再组合出所有解。Basis的概念在科研实际的应用也十分广泛,这周的paper reading会议上师姐分享的deblur in universal domain的方法就是把多个detector转化为一组基来使用,思想非常类似线性代数中空间的基向量,只不过原文作者用实验去寻找了向量个数的最优解,然鹅参照秩(rank)的概念我相信它是有理论最优的。
2. Column space --- 矩阵A列向量所有线性组合构成的向量空间,根据pivot / rank的概念,实际上也等价于其中部分关键列构成的列空间。
3. Row space --- 矩阵A行向量所有线性组合构成的向量空间,这一点几乎和column space平行,并且也可以利用pivot来简化(喵喵喵?突然好对称)
4. Left nullspace --- A^T的nullspace,这个概念就像是信号与系统里最后引入的FTFT,表面上它存在的最大的意义就是一块完整空间的拼图,让整个空间圆满起来。
整个叙述之中不乏有rank = dimension,A^-1之类的特殊例子讲解,最重要的是它的逻辑自洽让一个强迫症患者非常舒适。可是问题进一步又得到了更令人惊讶的一系列结论是:column space和row space向量一一对应,row space任意向量与null space所有向量垂直...于是正交便出现了。四个空间的关系:

这里不上图没法表现出我的惊喜!而且作为这本书的封皮的图示,想必也是意义非凡。
总结一下:相比于你科编写的教材,这本经典的教科书更倾向于围绕着实际问题——线性方程组的解——来研究和讲解,而不是一条条的阐述经典概念,它让定义、理论、概念伴随着问题的研究而产生,恰如孔子云“吾道一以贯之”、“居其所而众星拱之”,它始终以经典问题为思考对象并自然地探索。我很享受这样的感觉,Prof. Weiping的以这种理念来教授的S&S课也是我这几年以来最享受的课程,那是我第一次考完试之后有一种”自己思考的浅薄对不起试卷的深度“的感觉。你科的有些教学内容什么什么的从2008年至9102也好多好多个年头了,与时俱进也是非常重要的叭。
大仲马在《基督山伯爵》书的结尾描述:人类的全部智慧就包含在了两个词中——等待与希望。套用这个公式,线性代数学的全部智慧就包含在一个方程中——Ax equals b. 最后,我想着反正我写的博客也没什么人看,虽然没写完我还是把它当作读书笔记挂出去了,这两周一边看一边改。
读Linear Algebra -- Gilbert Strang的更多相关文章
- Linear Algebra lecture1 note
Professor: Gilbert Strang Text: Introduction to Linear Algebra http://web.mit.edu/18.06 Lecture 1 ...
- 线性代数导论 | Linear Algebra 课程
搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...
- 【线性代数】Linear Algebra Big Picture
Abstract: 通过学习MIT 18.06课程,总结出的线性代数的知识点相互依赖关系,后续博客将会按照相应的依赖关系进行介绍.(2017-08-18 16:28:36) Keywords: Lin ...
- PYTHON替代MATLAB在线性代数学习中的应用(使用Python辅助MIT 18.06 Linear Algebra学习)
前言 MATLAB一向是理工科学生的必备神器,但随着中美贸易冲突的一再升级,禁售与禁用的阴云也持续笼罩在高等学院的头顶.也许我们都应当考虑更多的途径,来辅助我们的学习和研究工作. 虽然PYTHON和众 ...
- 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍
调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作.移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到.这 ...
- Python Linear algebra
Linear algebra 1.模块文档 NAME numpy.linalg DESCRIPTION Core Linear Algebra Tools ---------------------- ...
- Here’s just a fraction of what you can do with linear algebra
Here’s just a fraction of what you can do with linear algebra The next time someone wonders what the ...
- cdoj793-A Linear Algebra Problem
http://acm.uestc.edu.cn/#/problem/show/793 A Linear Algebra Problem Time Limit: 3000/1000MS (Java/Ot ...
- 个案排秩 Rank (linear algebra) 秩 (线性代数)
非叫“秩”不可,有秩才有解_王治祥_新浪博客http://blog.sina.com.cn/s/blog_8e7bc4f801012c23.html 我在一个大学当督导的时候,一次我听一位老师给学生讲 ...
随机推荐
- mina2中的线程池
一.Mina中的线程池模型 前面介绍了Mina总体的层次结构,那么在Mina里面是怎么使用Java NIO和进行线程调度的呢?这是提高IO处理性能的关键所在.Mina的线程调度原理主要如下图所示: A ...
- jQuery命名空间和自定义插件的的多种方法
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- JavaScript代码放在HTML代码不同位置的差别
通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方.但放置的地方,会对 JavaScript 代码的正常执行会有一 ...
- Ajax的调试错误信息的输出
error: function(xhr, status, error) { console.log(xhr); console.log(status); console.log(error); }
- 2014年第五届蓝桥杯国赛试题(JavaA组)
1.结果填空 (满分15分)2.结果填空 (满分45分)3.代码填空 (满分30分)4.程序设计(满分30分)5.程序设计(满分80分)6.程序设计(满分100分) 1.标题:海盗分金币 有5个海盗, ...
- C#连接Oracle数据库解决报错(需要安装Oracle客户端软件8.1.7)的问题
1.通过nuget安装 ManagedDataAccess 2.引用 using Oracle.ManagedDataAccess.Client; 注:最低framework4.0 测试连接: // ...
- PHP正则表达式,看这一篇就够啦!
前言 不知道你们有没有这个感觉,看正则表达式就像看天文数字一样,什么电话号码.邮箱的正则表达式,上网复制一下粘贴下来就搞定了.完全不知道这写的是什么玩意.后来我自己也想学一下,因为感觉用处还是挺大的. ...
- Python:asyncio模块学习
python asyncio 网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程.无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态 ...
- codevs1245 最小的N个和
1245 最小的N个和 题目描述 Description 有两个长度为 N 的序列 A 和 B,在 A 和 B 中各任取一个数可以得到 N^2 个和,求这N^2 个和中最小的 N个.
- uoj#386. 【UNR #3】鸽子固定器(乱搞)
传送门 题解 //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define fp(i ...