Linear Transformation 线性变换
Linear Transformation 线性变换 从几何直观上看指的是向量的 运动过程,这种在空间中的“运动”或“映射”的过程就像用手在空间中把一个向量箭头推到了另一个位置。
代数上可以把这个过程理解为:用函数 表示一个线性变换(Linear Transformation)过程,矩阵 可以看作一台线性变换的"变换机器",即表示 输入一个向量,输出一个新的向量 的动作:
如果这个线性变换 可以用矩阵 表示,那么:
注意:不是所有的“输入→输出”都叫线性变换
“输入 → 输出”只说明这里有一个函数或映射,并不能说明它是线性的。所谓线性,是指这台“变换机器”不会破坏向量之间原有的线性组合关系:先把输入相加再变换,和先分别变换再相加,结果相同;输入乘一个倍数,输出也只会跟着乘同一个倍数。
严格地说,任意向量 和标量 都要满足:
把这两条合在一起,也可以写成保持线性组合的形式:
因此,线性变换一定会把零向量送到零向量:。例如,旋转、缩放、投影都满足这些规则,所以可以用矩阵乘法表示。相反,平移
虽然也是一种“输入 → 输出”的变换,但它会把原点移到 ,不再满足 ,所以叫 Affine Transformation 仿射变换,而不是线性变换。类似地, 也会破坏加法关系,因此不是线性变换。
概念:用 Ax = y 描述线性变换的过程
这个式子描述的是一个正向过程:输入向量 经过矩阵 表示的线性变换,得到输出向量 。它只是把
中的变换结果另外记作 。
- :变换的规则(变换机器);
- :输入向量(Input);
- :输出向量(Output),也就是向量 在线性变换下的Image 像。
补充:Ax = b
这里通常不是要计算输出,而是已经给定目标输出 ,反过来寻找输入 。因此它是线性方程组的逆向求解问题,详细内容见 Linear Equations 线性方程组;从变换角度看,这是寻找 的 Preimage 原像。
观点:描述 的行、列视角
两种视角描述的是同一个矩阵乘法:一个偏向几何上的“合成”,一个偏向代数上的“计算”。
- 列向量视角:矩阵的列记录了定义域标准基向量经过变换后的像,把输入的各个分量当作权重,合成输出向量;
- 行向量视角:分别计算输入与矩阵每一行的点积,得到输出的各个分量,所有分量合在一起就是输出向量。
列向量视角:输出是基向量像的组合
设 ,输入 ,输出 。把 按列写成:
先把输入向量按定义域的标准基展开:
矩阵 作用在这个线性组合上:
其中:
也就是说,在使用标准基表示时,矩阵的每一列 是第 个基向量 的像,也是输出空间中的一个方向;输入向量的分量 是这个方向的权重,输出 就是这些像的线性组合。
列向量不一定构成一组基。对于属于这些列向量张成空间的输出,只有当列向量线性无关时,组合系数才唯一;若它们还张成所讨论的整个空间,才可以称为该空间的一组基。
完整的推导和“矩阵每一列是基向量变换后的落点”等几何解释,见 Matrix 矩阵。
行向量视角:输出分量是内积计算
把矩阵按行写成:
那么输出向量的每个分量,都是输入向量与一行的 点积(内积):
这里, 可以直观地看作输入空间中的一个测量方向(严格说是一个线性函数的系数向量), 就是输入向量 在这个方向上的响应。换句话说,矩阵的每一行都对应一个“从输入计算一个输出分量”的线性公式。
任何一个向量都可以表示为基向量按权重的线性组合
设 是一组基。任意向量 都可以唯一表示为这些基向量的线性组合:
把基向量按列组成矩阵
把权重(坐标)组成向量 ,上面的组合就可以写成:
因此, 是向量 在基 下的坐标,而 就像一台“合成机器”:输入各个基向量的权重,输出空间中的实际向量。在线性变换 中,矩阵的列也正是基向量经过变换后的结果,所以输出仍然是这些“基向量的像”按输入权重合成而来。
观点:线性变换 是一个函数
线性变换,就是一种利用 “变换机器” 改变向量的规则函数,但需要注意这种改变必须保持向量之间的加法和数乘关系。
假设有一个向量:
我们设计一个规则,把它变成另一个向量:
例如:
也就是:
这个变换做的事情很简单:把所有向量放大 2 倍。 这就是一种线性变换。
观点:“线性变换” 中的 “线性” 指的是什么?
“线性”(Linear)这个词,最早来自一元函数,意思就是 “线”(line)。
在二维笛卡尔坐标系中,这就是一条线。但它也是描述的是这个世界上最简单、最直白的一种因果关系:一分耕耘,一分收获,且结果可以完美叠加。 例如投入、产出的关系。
成比例(齐次性 Homogeneity) 指的是,输入的量放大多少倍,输出的结果就跟着放大多少倍。
线性例子: 买 1 个苹果花 5 元。买 10 个苹果,价格就是 元。数量放大了 10 倍,总价也精确放大了 10 倍。
非线性反例(日常打折): 买 1 个苹果 5 元,但老板说“买 10 个算你 40 元”。这就不是线性的了,因为输入放大 10 倍,输出并没有严格放大 10 倍(不再成比例)。
可叠加(可加性 Additivity) 两个独立的事情分别产生的结果,等于把这两件事放在一起产生的结果。
线性例子: 你昨天买了 2 个苹果(花 10 元),今天买了 3 个苹果(花 15 元)。你这两天买苹果的总花费,刚好等于你一次性买 5 个苹果的花费(25 元)。满足 。
非线性反例(煮鸡蛋): 煮熟 1 个鸡蛋需要 10 分钟,煮熟 2 个鸡蛋需要 20 分钟吗?不是的,一起放在锅里煮依然只需要 10 分钟。这种“时间叠加”就不是线性的。
如果你把这种规则写成数学函数 ,那么“线性” 只需要满足下面两个简单的方程:
- 可加性:
- 齐次性: (这里的 代表任意常数)
因为真实世界太复杂了(天气变化、流体力学、股票市场全是非线性的,充满蝴蝶效应),计算起来极其困难。而“线性”关系是极度可预测的。只要我们把复杂问题拆解、逼近成线性的,计算机和数学家就能通过矩阵和向量,瞬间算出千丝万缕的联系。
对于 一元函数 来说,满足可加性和齐次性的,只能是 的情况,即 。
验证一下为什么 不行:
- 齐次性: ,而 ,除非 ,否则不相等。
- 可加性:,而 ,除非 ,否则不相等。
我们说:
- ( )→ 图像是直线,但不是线性变换(叫仿射变换)
- → 图像是过原点的直线,才是线性变换
要理解向量中的“线性变换"必须从理解其两个性质: 可加性(Additivity)、 齐次性(Homogeneity) 入手
性质 1:保持加法 可加性(Additivity)
如果:
那么必须等于:
也就是说:
先把两个向量加起来,再变换
和
先分别变换,再把结果加起来
结果必须一样。
性质 2:保持数乘 齐次性(Homogeneity)
对于任意数字 c:
也就是说:
先把向量放大 cc 倍,再进行变换
和
先进行变换,再把结果放大 cc 倍
结果必须一样。
两个性质可以合并写
可加性 + 齐次性,本质上是在说同一件事:线性变换保持线性组合
观点:线性变换的几何意义
前面用代数语言说了"线性"要满足可加性和齐次性,但这两条规则在几何上到底长什么样?
把二维平面想象成一张画满网格的坐标纸。一个变换作用在所有向量上,就相当于整张纸被"动"了一下。而线性变换,就是那张纸满足下面两条规矩的"动法":
网格线保持平行且等间距(Parallel and evenly spaced)——原来平行的线变换后依然平行,原来间距相等的线变换后间距依然相等(间距本身可以变);
原点保持不动(Origin stays fixed)——,零向量不会被挪走。
为什么这两条规矩刚好对应可加性和齐次性?
原点不动对应齐次性: 里取 ,必然有 。所以"平移"永远不是线性变换——它把原点挪走了(这也解释了前面 为什么只是仿射变换)。
网格线保持平行等间距对应可加性:向量加法的几何是"平行四边形法则"。只要变换后网格还是均匀平行的,加法拼出来的平行四边形就不会被"掰弯",变换前后做加法的顺序才可以互换。
例子:剪切变换(Shear)
看这个变换:
把它写成"变换机器"的矩阵 长什么样?只需要问一个问题:两个基向量被它送到了哪里?
- 送去哪: —— 没动;
- 送去哪: —— 被"推斜"了。
把这两个落点按列放进矩阵,就得到了 :
验证一下,矩阵乘出来的结果和上面的规则一模一样:
连续的过程可以看得更清楚——下面这张动图演示了网格从"方方正正"被连续"推斜"的全过程:
注意看:网格线在变形过程中始终保持平行、等间距,原点纹丝不动;绿色的 滑动到 ,但两条虚线"拼装路径"的步数始终是 和 。
- 变换前(左图):,就是"沿 走 2 步、沿 走 3 步";
- 变换后(右图):整个网格被"推斜"了——竖线变斜了,但所有网格线依然平行、间距依然相等,原点还在原地。
注意最妙的地方:变换前 “ 步 + 步 ” 到达 ,变换后 “ 步 + 步 ” 到达 。步数(线性组合的系数)一点没变,变的只是"每一步踩在哪里"。
这正是可加性 + 齐次性的几何画面:线性变换不会打乱向量的"拼装配方",它只是把整个空间连同配方一起搬过去。
例子:旋转变换(Rotation)
这次把整个平面逆时针旋转 :
老问题:两个基向量被它送到了哪里?
- 转到了 ;
- 转到了 。
把落点按列放进矩阵:
验证一下,输入 ,输出依然是 :
同样看一下连续的过程——整个网格绕原点刚性地从 转到 :
转动全程网格都是方方正正的:平行、等间距、原点不动从头到尾没有被破坏, 的"拼装路径"(两条虚线)跟着网格一起转,步数始终是 和 。
- 变换后(右图):整个网格被"转"到了第二象限——方格还是方格,平行、等间距、原点不动,规矩依然全部满足;
- 同一个 转到了 ,拼装配方照旧:" 步 + 步 "。
对比两个例子:剪切把方格"推斜"成平行四边形,旋转把方格"转"了个方向——网格的形状可以变,但"平行、等间距、原点不动"这三条不能破,这就是"线性"在几何上的底线。