杂谈之“秩”的理解这一块

杂谈之“秩”的理解这一块

最近在学习线性代数,难免就接触到了秩(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)

将密码系统建模为一大组多项式方程。方程组的“代数结构”可以用矩阵表示,其秩反映了方程之间的独立性。如果秩太低 → 方程冗余多 → 容易求解 → 安全性弱。

所以太高秩用起来不方便,太低秩呢又做不到安全,凡事都要掌握度(开个玩笑)

总结

你看,即使是一个简单的概念都可以做到如此多的衍生和变换,甚至可以在其他领域大放异彩。所以学无止境,学无止尽。学习之路道阻且长,还需努力。

相关推荐