读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 我在一个大学当督导的时候,一次我听一位老师给学生讲 ...
随机推荐
- java的桥接模式
http://blog.csdn.net/jason0539/article/details/22568865 http://www.cnblogs.com/V1haoge/p/6497919.htm ...
- 用expressjs写RESTful API
http://blog.csdn.net/kiwi_coder/article/details/36424671 用expressjs写RESTful API http://blog.csdn ...
- CodeForces 485A Factory (抽屉原理)
A. Factory time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- c程序实现unicode字符转utf-8字符
下面是一个unicode字符转换为utf-8的c程序实现: /* * ================================================================= ...
- idea+tomcat 解决 debug超级慢 问题
最近在用intellij idea 开发程序,发现debug的时候启动得特别慢,正常run的时候启动的特别快,相差30多倍. 方法断点会戏剧性的降低debug的速度.当时并没有在意,因为并不清晰这个方 ...
- jquery中的$.ajax()的源码分析
针对获取到location.href的兼容代码: try { ajaxLocation = location.href; } catch( e ) { // Use the href attribut ...
- SetCapture到底是什么?
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标.如果鼠标光标在另一个线程创建的窗口上, ...
- Apt本地源制作
方法一 缓存deb包 # apt install XXX # mkdir -p /usr/local/mydebs # find /var/cache/apt/archives/ -name *.de ...
- 从RAID看垂直伸缩到水平伸缩的演化
磁盘的读写过程,最消耗时间的地方就是在磁盘中磁道寻址的过程,而一旦寻址完成,写入数据的速度很快. 连续写入:写入只寻址一次 存储位置与逻辑位置相邻 不用多次寻址 随机写入:每写一次 便寻址一次 增加了 ...
- UGUI CanvasGroup
说明,这种直接设置alpha的方法跟go的setActive(false)性能差不多,只少了激活和冻结冻结调用 http://blog.csdn.net/qq_28824335/article/det ...