最近在学习线性代数,难免就接触到了秩(rank,当然不是打排位的那个rank),感觉挺有意思的一个概念。不妨记录一下我的一些理解和思维发散(我也是重新捡起,不知道有些理解是否确切,若有不妥,欢迎大佬指正)。
目录
前言
一、秩是什么?
二、怎么算秩?
高斯消元法(化成阶梯形)
三、秩的性质
对称性:行秩 = 列秩
最大值限制
零矩阵的秩是0
满秩 = 所有信息都独立
四、秩的规则
1. 和的秩 ≤ 秩的和
2. 乘积的秩 ≤ 各自的秩
3. Sylvester不等式
4. 分块矩阵的秩 ≥ 各块的秩
5. 秩 + 零度 = 列数(秩-零化度定理)
五、秩和其他一些概念的关系
六、讲讲别的
总结
前言
最近在学习线性代数,学到了秩(rank),(当然不是打游戏排位的那个rank,也不是铁),感觉挺有意思的一个概念。本人就是喜欢瞎琢磨,故此记录一下我的一些理解,学习思路和思维发散。
一、秩是什么?
网上标准的定义叽里咕噜一大堆,乍一看说得非常高大上以及学术化(在我看来初看对我这个数学白痴来说理解是困难的),反正让我是比较头疼,所以在这里我就用我自己的大白话来说好了。
想象你是一个spy,正在调查一个案件。你拿到了一堆线索(矩阵的每一行或每一列代表一条线索)。比如:
“嫌疑人穿了黑衣服。”“他穿的是黑色外套。”“衣服颜色是深色。”
这些其实都在说同一件事——信息不独立。难免有些线索是重复的(黑衣服和黑外套)
而“秩”是什么呢?他就是这个矩阵中真正独立、不重复的信息条数。所以我们不妨换句话说:
秩 = 矩阵中线性无关的行(或列)的最大数目
举个栗子!
有一个矩阵:
第2行是第1行的2倍 → 重复信息第3行不能由前两行组合出来 → 独立
所以,行秩 = 2,这个矩阵的秩是2。
二、怎么算秩?
我想聪明的你应该已经大概明白秩是什么了,那么进入下一个level,算秩!
高斯消元法(化成阶梯形)
我们用“消元法”把矩阵变成“阶梯状”,然后数一数有多少个非零行,就是秩。(很简单吧,他确实很简单,小口诀:化成阶梯形,数非零行)
比如:
有两个非零行 → 秩 = 2
三、秩的性质
好了,现在会算了,那么就是进入下一level,我们稍微琢磨琢磨秩这个东西有什么性质呢?
对称性:行秩 = 列秩
不管你是按“行”看还是按“列”看,独立信息的数量是一样的。(可以类比为就像从不同角度拍照片,看到的“真实内容”本质总是不改变的)
最大值限制
一个3×5的矩阵,最多只有 3 个独立行(因为只有3行),所以秩 ≤ 3。(很好理解,建立在刚刚说的对称性上就更合理了)
零矩阵的秩是0
说回侦探的例子,没有任何线索?那当然秩是0。
满秩 = 所有信息都独立
比如一个 3×3 矩阵秩是3,说明每一行、每一列都“独一无二”。这时候我们就说他满秩!
四、秩的规则
接下来,我们来看一些"秩的法律",也就是秩的不等式,他们像法律一样规范着秩的行为。
1. 和的秩 ≤ 秩的和
如何理解这个?我是这么想的,还是用一个例子吧,现在你是FBI了,你有两个情报组(两个矩阵),A组有3条独立线索,B组有4条。合并后,总线索数不会超过 3+4=7 条。但可能有重复,所以最多是7条。
2. 乘积的秩 ≤ 各自的秩
怎么理解勒,现在A是一个筛子,B是需要选择的东西,即使 B 有 5 条独立信息,如果 A 只能通过 3 条,那最终输出最多只有 3 条独立信息。举个栗子可能更直观。
A 是 3×4秩为2,B 是 4×5秩为3,那么 AB 的秩最多是 2!
再说一句,乘法会“丢失信息”,所以秩不会变大,只会变小或不变。
3. Sylvester不等式
(其中 A 是 m×n,B是 n×p)
看起来稍微复杂点,但也不难理解,A 和 B现在都是不良中介都要带人通过一个“n人会议室”面试。如果 A 带进来的大学牲太多,B 带的也多;但如果会议室太小(n小),人数就会被压缩。
再往深想一想,你自然会得出乘积的秩不会太小,除非两个矩阵都“很弱”。
4. 分块矩阵的秩 ≥ 各块的秩
就是说什么呢?你把两个情报箱拼在一起,总信息量不会比任何一个少(可能更多,如果有互补信息)。
5. 秩 + 零度 = 列数(秩-零化度定理)
nullity 是“解空间的自由度”,也就是“有多少变量可以随便选”。
你有 5 个变量,但只有 2 条独立方程 → 你可以自由选择 3 个变量 → 自由度 = 3 所以:秩 = 2,零度 = 3,加起来 = 5
五、秩和其他一些概念的关系
经过上面的学习,你已经基本了解秩了,不满秩?说明有“水分”;满秩?说明“干货满满”!现在我们来把秩(Rank)、行列式(Determinant) 和 向量(Vectors) 这三位“线性代数的好朋友”拉到一起,好好梳理一下它们之间的关系。
先来说秩和向量
秩就是行向量或列向量中,真正“独立”的个数如果所有向量都“指向不同方向”,不互相依赖 → 秩高如果有“重复方向”或“共线” → 秩低
再看看秩和行列式
也就是说:
行列式 ≠ 0,自然想到矩阵“满秩” → 所有行/列向量线性无关 → 可逆
行列式 = 0, 矩阵“不满秩” → 向量有依赖 → 不可逆
这里推荐大家去看B站3blue1brown的视频讲解,你可以更好的理解行列式的本质,然后就能更好的明白,向量是否线性无关,直接决定行列式是否为零。
我大概整个图给大家看看图一乐,不一定全面,还得自己悟,我感觉多琢磨还是比较有意思的。
向量
↗ ↖
线性无关? 张成空间
↓ ↓
秩 (独立向量个数) → 是否满秩?
↘ ↙
行列式
(满秩 ⇔ det ≠ 0)
六、讲讲别的
秩这个概念还是比较有意思的,不仅在线性代数,其实他在我们计算机(和我感兴趣的密码学有着作用,所以我才跑来疯狂补课懂了吧),我这儿大概掰扯掰扯,胡吹胡吹。
机器学习里的一个大概例子:你有100维的数据(比如人脸图像的像素),但很多维度是相关的,处理起来慢且冗余。既然有相关的,我们只需要找到真正重要的方向,也就是数据的主成分,那么有人就要问了主播主播,讲半天秩在这里面有什么用呢?还记得我们刚才提到秩是可以压缩数据的事情吗?数据的秩就能告诉你,这些数据实际上“活在”多少的维度里面,如果秩只有10呢?说明本质上他是10维的,可以压缩到10维而不丢失数据!你看可以说是相当有操作了。1000张人脸图像,每张10000像素 → 数据矩阵是 1000×10000,如果秩只有50 → 说明所有人脸可以用50个“特征脸”线性组合出来。一下简单了吧,味大无需多盐!
图像处理和压缩的一个大概例子:我们会说一张干净的图像,其像素矩阵往往是近似低秩的如果图像被噪声、遮挡破坏秩会变高,什么?你说为什么?还记得我们刚刚也提到过的吗?干净的图片因为有结构、有重复纹理所以秩低嘛,同理秩高也是一样。那么秩有什么用呢?主播也只是听闻我们可以通过低秩矩阵逼近(Low-Rank Matrix Approximation)来“修复”图像。
简单说了两个例子。实际上,你可以从中窥见"秩"这个家伙在计算机学科里机器学习甚至是大数据处理中的基石作用(我认为是有点,也可能不是)
说点我喜欢的,矩阵的“秩(Rank)”在密码学的应用,虽然它不像“素数”或“模运算”那样广为人知,但在一些现代密码体制和密码分析技术中,秩是一个关键的数学工具(是你后量子密码!)
不讲构造密码中的应用了太多了,简单谈谈我的理解吧吧。
线性密码分析中的“秩”
在分析分组密码(如AES)时,会构造线性逼近表达式。如果这些表达式的系数矩阵秩很低,说明存在强线性关系 → 可能被攻击。高秩意味着“关系复杂” → 更安全。
代数攻击(Algebraic Attacks)
将密码系统建模为一大组多项式方程。方程组的“代数结构”可以用矩阵表示,其秩反映了方程之间的独立性。如果秩太低 → 方程冗余多 → 容易求解 → 安全性弱。
所以太高秩用起来不方便,太低秩呢又做不到安全,凡事都要掌握度(开个玩笑)
总结
你看,即使是一个简单的概念都可以做到如此多的衍生和变换,甚至可以在其他领域大放异彩。所以学无止境,学无止尽。学习之路道阻且长,还需努力。