恶性问题
2.3 恶性问题
压缩带来的后果
- 压缩使空间被「压扁」,原空间不能被全部映射到
- 和「线索过剩」的情况相同,对某些 可能根本找不到原来的出发点
- 总结起来:可能出现不能把目标确定在唯一的点,或者根本不存在这样一点的情况
单射、满射、双射
- 无论什么样的结果 都可以找到导致它的原因吗 → 满射
- 对于一个结果 ,能不能确定唯一的出发点 → 单射
- 两者同时成立 → 双射
- 仅包含原点 → 映射为单射
- 覆盖目标空间全体 → 映射为满射
用 和 正式表述
- 是原空间(定义域, 所在空间)的一部分
- 是目标空间(值域, 所在空间)的一部分
- 单射 ⟺
- 满射 ⟺ = 目标空间全体
「压缩扁平化」的判定
- 某一列能表达成其他各列的若干倍加和 → 一定对应「压缩扁平化」的映射
- 反过来,不满足这个条件的话,各列是线性无关的
秩的本质:瓶颈型分解
- 根据 的秩,可以把它分解成两个「瘦矩阵」的乘积:
- 是宽仅为 的矩阵, 是高仅为 的矩阵
- 变换过程分成两步
- 维向量 「压缩」成 维向量
- 维向量「扩张」成 维向量
- 秩为 1 的极端情况: 写成列向量和行向量的乘积
- 反过来,能做这种分解则秩不超过
- 丢失的信息就找不回来了
- 根据 的秩,可以把它分解成两个「瘦矩阵」的乘积:
2.5 针对恶性问题的对策
- 解存在的充分必要条件: 属于
- 因为 就是「在 的作用下得到的目标点的全体集合」
- 「方程的解」的最原始定义:代入之后使方程成立的值
- 「若 可逆则解是 」只是在此基础上推导出的性质
- 奇异时这条性质不能用,不能因此说「无解」
- 找出所有解:只要找到 1 个解,加上 里的任意向量就得到全部解
- 即 中的任意元素
- 解存在的充分必要条件: 属于
2.6 现实中的恶性问题(接近奇异的矩阵)
- 数学上可逆与奇异天壤之别,但工程中常把极其接近奇异的可逆矩阵当作奇异矩阵处理
- 原因:压缩厉害的矩阵,其逆矩阵的放大效果很厉害,噪声也被同步放大
- 失焦图像修复是典型例子
- 实际中用的对策标准
- 无解时:给出一个答案使 尽量「接近」
- 有多解时:从中选一个最「合理」的解
- 常用标准: 越小越接近, 越小越合理
- 这套方法叫最小二乘法,在奇异值分解、广义逆矩阵的计算中作用重要
- 注意:单讲线性空间没有长度和角度的概念,需要额外引入(本书附录 E)
秩决定解的数量
把上面的结论压成一张表:
| 条件 | 的解 | ||
|---|---|---|---|
| 可逆() | 目标空间全体 | 唯一解 | |
| 奇异, | 非平凡 | 目标空间真子集 | 无解 |
| 奇异, | 非平凡 | 目标空间真子集 | 无穷多解 |
所以判断一个逆问题能不能解,只需问两句:
在 里吗?
里除了原点还有别的吗?
秩-零化度定理
的维数叫 的零化度(nullity)。可以证明:
这是「秩-零化度定理」。它说的是:矩阵 作为映射,把 维空间压缩之后:
幸存下来的维数是 (也就是 的维数)
被压扁掉的维数是 (也就是 的维数)
两者加起来正好是原来的维数,一分不多一分不少。
这个定理的实际意义是:信息损失和信息保留是同一件事的两面。想知道压缩之后还剩多少信息,查一下零化度就行。
用 Ruby 验证
# 验证 rank A + nullity A = n |
输出:
n=2 rank=2 nullity=0 和=2 |