什么是线性变换?
线性变换(Linear Transformation)是一种数学变换,用于将一个向量空间中的向量映射到另一个向量空间,同时保持加法和标量乘法的性质。这是线性代数中的核心概念之一,在机器学习、深度学习和计算机图形学等领域具有重要应用。
简单来说,线性变换可以通过矩阵乘法来表示,它的作用通常是对向量进行缩放、旋转或投影等操作。
线性变换的定义
给定两个向量空间
V
V
V 和
W
W
W,一个映射
T
T
T 是线性变换,当且仅当满足以下两个条件:
加法封闭性: 对于
u
,
v
∈
V
\mathbf{u}, \mathbf{v} \in V
u,v∈V,有:
T
(
u
+
v
)
=
T
(
u
)
+
T
(
v
)
T(\mathbf{u} + \mathbf{v}) = T(\mathbf{u}) + T(\mathbf{v})
T(u+v)=T(u)+T(v)
标量乘法封闭性: 对于
u
∈
V
\mathbf{u} \in V
u∈V 和任意标量
c
∈
R
c \in \mathbb{R}
c∈R,有:
T
(
c
u
)
=
c
T
(
u
)
T(c \mathbf{u}) = c T(\mathbf{u})
T(cu)=cT(u)
如果映射
T
T
T 满足上述两个条件,则
T
T
T 是一个线性变换。
线性变换的矩阵表示
在实际应用中,线性变换通常表示为矩阵
A
A
A 作用于向量
x
\mathbf{x}
x:
T
(
x
)
=
A
x
T(\mathbf{x}) = A \mathbf{x}
T(x)=Ax 其中:
x
∈
R
n
\mathbf{x} \in \mathbb{R}^n
x∈Rn 是输入向量。
T
(
x
)
∈
R
m
T(\mathbf{x}) \in \mathbb{R}^m
T(x)∈Rm 是输出向量。
A
∈
R
m
×
n
A \in \mathbb{R}^{m \times n}
A∈Rm×n 是线性变换矩阵。
矩阵
A
A
A 决定了线性变换的具体性质,例如是否是缩放、旋转或投影。
常见的线性变换
缩放(Scaling)
将向量的长度按比例放大或缩小,但保持方向不变。矩阵形式:
A
=
[
s
x
0
0
s
y
]
A = \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}
A=[sx00sy]示例:
T
(
x
)
=
[
2
0
0
3
]
[
x
1
x
2
]
=
[
2
x
1
3
x
2
]
T(\mathbf{x}) = \begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 2x_1 \\ 3x_2 \end{bmatrix}
T(x)=[2003][x1x2]=[2x13x2] 旋转(Rotation)
将向量绕原点旋转一定角度。矩阵形式(以 2D 为例):
A
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
A = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}
A=[cosθsinθ−sinθcosθ]示例: 将向量
x
=
[
1
,
0
]
⊤
\mathbf{x} = [1, 0]^\top
x=[1,0]⊤ 逆时针旋转 90°:
A
=
[
0
−
1
1
0
]
A = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}
A=[01−10] 投影(Projection)
将向量投影到某个子空间上,例如一条直线或一个平面。矩阵形式(投影到单位向量
n
\mathbf{n}
n 上):
A
=
n
n
⊤
A = \mathbf{n} \mathbf{n}^\top
A=nn⊤ 反射(Reflection)
将向量关于某条直线或平面对称反射。矩阵形式:
A
=
I
−
2
n
n
⊤
A = I - 2\mathbf{n}\mathbf{n}^\top
A=I−2nn⊤ 其中
n
\mathbf{n}
n 是反射平面的单位法向量。 剪切(Shear)
将向量沿某个方向倾斜。矩阵形式(以 2D 为例):
A
=
[
1
k
0
1
]
A = \begin{bmatrix} 1 & k \\ 0 & 1 \end{bmatrix}
A=[10k1]
线性变换的性质
保持原点: 线性变换始终将原点
0
\mathbf{0}
0 映射到原点:
T
(
0
)
=
A
0
=
0
T(\mathbf{0}) = A \mathbf{0} = \mathbf{0}
T(0)=A0=0
保持直线性: 线性变换会将直线映射为直线。
组合性: 多个线性变换的组合仍然是一个线性变换。假设有两个变换
T
1
(
x
)
=
A
1
x
T_1(\mathbf{x}) = A_1 \mathbf{x}
T1(x)=A1x 和
T
2
(
x
)
=
A
2
x
T_2(\mathbf{x}) = A_2 \mathbf{x}
T2(x)=A2x,则组合变换
T
2
(
T
1
(
x
)
)
T_2(T_1(\mathbf{x}))
T2(T1(x)) 可以用矩阵乘法表示:
T
2
(
T
1
(
x
)
)
=
A
2
(
A
1
x
)
=
(
A
2
A
1
)
x
T_2(T_1(\mathbf{x})) = A_2 (A_1 \mathbf{x}) = (A_2 A_1) \mathbf{x}
T2(T1(x))=A2(A1x)=(A2A1)x
可逆性: 如果矩阵
A
A
A 是非奇异的(即
det
(
A
)
≠
0
\det(A) \neq 0
det(A)=0),则线性变换是可逆的,且逆变换为:
T
−
1
(
y
)
=
A
−
1
y
T^{-1}(\mathbf{y}) = A^{-1} \mathbf{y}
T−1(y)=A−1y
线性变换与深度学习
在线性代数中,线性变换被用来描述矢量之间的映射。在深度学习中,线性变换扮演着重要角色:
全连接层: 全连接层本质上是一个线性变换,其形式为:
y
=
W
x
+
b
\mathbf{y} = \mathbf{W} \mathbf{x} + \mathbf{b}
y=Wx+b 其中:
W
\mathbf{W}
W 是权重矩阵。
b
\mathbf{b}
b 是偏置向量。 卷积操作: 卷积操作可以看作是线性变换在局部区域的应用。
特征提取: 在线性变换中,通过矩阵
A
A
A 的特性,可以提取输入数据的特定特征,例如主成分分析(PCA)中使用的线性映射。
总结
线性变换是将输入向量通过矩阵映射到另一个向量空间的数学操作。它具有以下特点:
矩阵乘法是其核心实现形式。能够完成缩放、旋转、投影等操作。在深度学习中,线性变换是全连接层、卷积层的数学基础。