在机器学习中,各个特征代表着高维度空间的信息。因此在数据的处理和算法的推导上,往往借助于矩阵和线性代数的基本理论。该系列希望通过对相关概念和公式的推导,加深对矩阵和线性代数的理解。在这篇文章中,通过问答的形式阐述基本概念。
1. 向量和矩阵的意义?
就像数字1、2一样,向量和矩阵是人为设计的用来记录数据载体。从不同的角度来看,其存在不同的解释。从计算机工作者的眼中,其可以用来记录有序的数据(列表)、结构化的数据(表单)和表示机器学习的数据(样本*特征);在数学家的眼中,其可以定义线性空间、代表线性变换。
尽管如此,抛开具体应用场景,这种数据载体具有相同的数学性质,即可以用相同或类似的数学工具进行处理分析。
2. 数组与向量
数组和向量都可以写成
[
a
1
,
a
2
,
.
.
.
,
a
n
]
[a_1, a_2,...,a_n]
[a1,a2,...,an]的形式,虽然从书格式上来看一样,但两者是完全不同的概念。
数组可视为某数轴(一维空间)上的一个有序数值序列。
向量则是某个空间内的有方向箭头或点。值的玩味的是,这是个什么样的空间?可以理解成同维空间(这里是
n
n
n维)内的一个点,但当这些空间维度取同一维度时,又可以收敛成一维(数组)的形式。
对向量而言,其不能脱离坐标(也可以理解为方向、特征、有意义的轴)而存在。我们在写下一个向量的时候,已经结合使用场景在不知不觉中隐藏了对其坐标的定义。或者说,在利用向量和矩阵进行数学运算时,我们需要预设好其代表的方向/特征。
3. 行向量和列向量有什么区别?
行与列只是向量记录形式的不一样,并无本质的区别。比如我们记录一个数轴上的一组数据时,可以选择横向的记录方式(行向量),也可以选择纵向的记录方式(列向量)。
但值的注意的是,在同一使用场景下、同一计算中,应当统一使用固定的行或列布局规则。否则,矩阵和向量间的数学运算将发生混乱和错误。
以Numpy为例,其只允许行向量的存在(即ndim=1的array),而列向量实质实质上是ndim=2,其中第二根轴的shape=1的矩阵。
在机器学习中,我们通常可以从如下三个角度来看待向量:
(1)特征向量:常以列向量的形式表达,表示不同数据在统一特征维度上的值序列。在sklearn的preprocessing中,进行standardize就是对于该向量。
(2)数据向量:常以行向量的形式表达,表示某一样本在各特征维度上的值序列。在sklearn的preprocessing中,进行normalize就是对于该向量。
(3)参数向量:尤其在各种线性模型,常用向量化的方式来记录参数。
4. 如何理解矩阵?
矩阵是以若干个行向量或列向量构成的另一种数据载体。如前所述,在同一使用场景下、同一计算中,应当统一使用固定的行或列布局规则。
在机器学习中,我们通常以如下三个角度来看待矩阵:
(1)数据的一种记录方式。我们通常取列布局,即每个列视为一个坐标维度,即对结构化数据,以列为特征,行为样本。但需要反复强调的是,这只是一种习惯,并非必须。如用excel记录表格时(即矩阵),可以将属性记录在行方向,也可以记录在列方向。
(2)代表着一个线性空间。以列布局为例,我们可以把矩阵
A
m
×
n
\boldsymbol A_{m\times n}
Am×n视为由
n
n
n个
m
m
m维向量构成的线性空间;类似的,若从行布局出发,我们又可将视为由
m
m
m个
n
n
n维向量构成的线性空间。
(3)代表着一个线性算子。我们可以简单的把该算子视为一种运动或一个函数,其实现了线性空间内一个向量到另一个向量的映射。即
y
=
A
x
\boldsymbol {y=Ax}
y=Ax。具体而言线性变换的具体形态可抽象成伸缩、旋转和维度升降。
5. 矩阵的秩
从线性空间的角度来思考秩,矩阵所代表着的线性空间由其各列(或行)向量线性迭加而成,而秩表示其中最大线性无关组的数量。
以
A
3
×
3
\boldsymbol A_{3\times 3}
A3×3为例,若其秩为3,表示其线性空间为整个三维空间内的任意直线;而若其秩为2,表示其线性空间为三维空间内的某个过零点平面)的任意直线(即三维空间内的某个二维子空间)。
另外值得一提的是,秩是仅对于方阵的概念,而长方形矩阵需分别讨论行秩和列秩。
6. 方阵和长方形矩阵的区别?
以线性算子的角度来思考这个问题。
对于方阵: y = A n × n x \boldsymbol {y=A_{n\times n}x} y=An×nx表示 n n n维空间内的一个向量 x \boldsymbol x x,经线性变换 A \boldsymbol A A,变换到向量 y \boldsymbol y y的位置,其仍位于 n n n维空间内。
对于长方形矩阵: y = A m × n x \boldsymbol {y=A_{m\times n}x} y=Am×nx表示 n n n维空间内的一个向量 x \boldsymbol x x,经线性变换 A \boldsymbol A A,变换到向量 y \boldsymbol y y的位置,其位于 m m m维空间内(如 m < n m<n m<n,也可理解成或位于 n n n维空间内的 m m m维子空间内)。
所以矩阵还可以视为从列空间到行空间的转换。对于方阵,可以理解描述了一个完整的 n n n维空间内的线性变换;而对于长方形矩阵,其往往涉及所在空间维度的改变。
7. 左乘or右乘?
矩阵和向量右乘可以理解成矩阵
A
\boldsymbol A
A中列向量的线性组合:
y
=
A
m
×
n
x
=
[
a
1
,
a
2
,
.
.
.
,
a
n
]
[
x
1
x
2
.
.
.
x
n
]
=
∑
i
n
x
i
a
i
\boldsymbol {y=A_{m\times n}x}= \left[a_1,a_2,...,a_n\right]\left[ \begin{matrix} x_1 \\ x_2 \\ ...\\x_n \end{matrix} \right] =\sum\limits_i^n x_ia_i
y=Am×nx=[a1,a2,...,an]⎣⎢⎢⎡x1x2...xn⎦⎥⎥⎤=i∑nxiai
矩阵和向量右乘还可以理解成矩阵
A
\boldsymbol A
A中行向量的与向量
x
x
x的内积,即向量
x
x
x在
A
\boldsymbol A
A各行向量上的投影:
y
=
A
m
×
n
x
=
[
a
1
∗
x
x
2
∗
x
.
.
.
x
n
∗
x
]
\boldsymbol {y=A_{m\times n}x}=\left[ \begin{matrix} a_1*x \\ x_2 *x\\ ...\\x_n*x \end{matrix} \right]
y=Am×nx=⎣⎢⎢⎡a1∗xx2∗x...xn∗x⎦⎥⎥⎤
向量和矩阵左乘可以理解成矩阵
A
\boldsymbol A
A中行向量的线性组合:
y
=
x
A
m
×
n
=
[
a
1
,
a
2
,
.
.
.
,
a
m
]
[
x
1
x
2
.
.
.
x
m
]
=
∑
i
m
a
i
x
i
\boldsymbol {y=xA_{m\times n}}= \left[a_1,a_2,...,a_m\right]\left[ \begin{matrix} x_1 \\ x_2 \\ ...\\x_m \end{matrix} \right] =\sum\limits_i^m a_ix_i
y=xAm×n=[a1,a2,...,am]⎣⎢⎢⎡x1x2...xm⎦⎥⎥⎤=i∑maixi
向量和矩阵左乘还可以理解成向量
x
\boldsymbol x
x矩阵
A
\boldsymbol A
A中列向量的内积,即向量
x
x
x在
A
\boldsymbol A
A各列向量上的投影:
y
=
x
A
m
×
n
=
[
a
1
∗
x
,
a
2
∗
x
,
.
.
.
,
a
n
∗
x
]
\boldsymbol {y=xA_{m\times n}}= \left[ \begin{matrix} a_1*x, a_2 *x, ...,a_n*x \end{matrix} \right]
y=xAm×n=[a1∗x,a2∗x,...,an∗x]
对于矩阵
A
m
×
n
\boldsymbol A_{m\times n}
Am×n与矩阵
B
n
×
k
\boldsymbol B_{n\times k}
Bn×k的相乘
A
B
\boldsymbol {AB}
AB可以有三种视角:
(1)
A
m
×
n
\boldsymbol A_{m\times n}
Am×n与
k
k
k个
n
n
n维列向量的右乘的组合;
(2)
B
n
×
k
\boldsymbol B_{n\times k}
Bn×k与
m
m
m个
n
n
n维行向量的左乘的组合;
(3)两个线性算子的复合,即两个函数、运动的复合,其遵循从右到左的原则即
A
(
B
(
x
)
)
A(B(x))
A(B(x)),表示从
k
k
k维列向量变换到
m
m
m维行向量的过程。
8. 矩阵的逆
与函数的反函数类似,矩阵的逆对于原矩阵而言象征着逆变换,用
A
−
1
A^{-1}
A−1表示,
A
∗
A
−
1
=
A
−
1
∗
A
=
E
A^*A^{-1}=A^{-1}*A=E
A∗A−1=A−1∗A=E。注意只有方阵可能存在逆,因为方阵只存在缩放和旋转两种变换,可能代表着完整的
n
n
n维空间(即满秩);而长方形矩阵的变换,还包含维度的升降,高维度信息向低维度信息变换过程中的信息损失是无法找回的,所以不存在逆矩阵。
值的注意的是,对于长方形矩阵或非满秩方阵,存在伪逆的概念。
9. 向量空间的基,绝对坐标系与相对坐标系
表示矩阵
A
\boldsymbol A
A特征空间内一组最大线性无关向量,空间内的任意向量可通过这组基进行线性叠加/线性算子变换得到。
对于
R
n
R^n
Rn空间而言,有无数组可行的基,但我们更倾向于使用一组正交基,甚至是正交单位基来表示,其存在各基向量两两正交的特点,方便计算。
在【2. 数组与向量】中层提及,向量无法脱离基存在。比如对于 A b \boldsymbol {Ab} Ab,我们可以理解成向量 b \boldsymbol b b中的各元素为以 A \boldsymbol A A列向量为基下的坐标表示。而对于向量 b \boldsymbol b b,我们已经默认取其默认的一组正交基(即欧式坐标系上的单位向量,可以理解成绝对坐标系)。
以此看来, y = A x \boldsymbol {y=Ax} y=Ax,可改写成 E y = A x \boldsymbol {Ey=Ax} Ey=Ax,即默认基(绝对坐标系下)的点 y \boldsymbol y y,可以理解成相对坐标系 A \boldsymbol A A下的点 x \boldsymbol x x。
有意思的是,这里的相对坐标系 A \boldsymbol A A仍然是建立在绝对坐标系 E \boldsymbol E E下,从 E \boldsymbol E E视角描述的基。若要用 A \boldsymbol A A的视角描述呢?只要再左乘逆矩阵 A − 1 A^{-1} A−1即可,即 A − 1 A y = E y = E x \boldsymbol {A^{-1}Ay=Ey=Ex} A−1Ay=Ey=Ex,虽然 x , y \boldsymbol {x,y} x,y两边均为 E \boldsymbol E E,但意义完全不同,这已经是两个绝对坐标系下的概念了。
10. 行列式的意义是什么?
行列式是方阵中的概念。从几何意义上来说,代表着线性变换后,基向量所包络的广义有向体积相对于默认基构成的广义有向体积的比值。
所谓广义,是二维下面积、三维下体积在高维空间的延伸。
所谓有向,是指基向量的顺序满足右手(如三维空间下的x—>y—>z),若存在顺序上颠倒则会发生方向性的变化,从几何上来说即体积发生了翻转。
在通过伴随矩阵求解逆矩阵的方法中,分母为行列式,这表明逆矩阵不仅要达到基向量方向的返回,也要实现体积变换的返回(除以行列式即可)。
11. 行列式、可逆、秩、线性相关间的关系
对于方阵行列式、可逆、秩都体现了矩阵代表的向量空间或线性变换的特点。
行列式不等于0,意味着为同维度的线性变换,意味着为满秩阵,意味着各向量间线性无关。
行列式等于0,意味着存在着,意味着为非满秩意味着各向量间线性相关。
12. 相似矩阵
满足
A
=
P
−
1
B
P
\boldsymbol {A=P^{-1}BP}
A=P−1BP的矩阵
A
\boldsymbol A
A和
B
\boldsymbol B
B为相似矩阵。
从以下两个视角理解相似矩阵:
(1)从绝对坐标系
E
\boldsymbol E
E变换到相对坐标系
P
\boldsymbol P
P(仍从绝对坐标系的视角观察),在相对坐标系内进行线性变换
B
\boldsymbol B
B(仍从绝对坐标系的视角观察)。用相对坐标系的语言描述该变换(乘以
P
−
1
\boldsymbol P^{-1}
P−1,见【8. 矩阵的逆】部分的解释)。所以
A
\boldsymbol A
A可视为在绝对坐标系
P
\boldsymbol P
P下描述的某个线性变换。
(2)按照矩阵相乘意味着从线性算子从右到左复合的原则,
P
−
>
B
P
−
>
P
−
1
B
P
\boldsymbol {P}->\boldsymbol {BP}->\boldsymbol {P^{-1}BP}
P−>BP−>P−1BP,依次代表着经过线性变换
P
\boldsymbol {P}
P,在
P
\boldsymbol {P}
P列向量为基上的线性变换
B
\boldsymbol {B}
B,再通过
P
−
1
\boldsymbol {P^{-1}}
P−1变换到最初的默认基上。即
E
−
1
A
E
=
P
−
1
B
P
\boldsymbol {E^{-1}AE=P^{-1}BP}
E−1AE=P−1BP,所以相似矩阵可以视为同一线性变换在不同基下的表示。
相似矩阵具有相同的特征值(见矩阵理论(二)特征分解和SVD分解),这是一个很重要的性质。
13. 矩阵的相似对角化
寻找矩阵的一个相似矩阵,使得其只在主对角上存在非零元素。
这意味着当用某个基表示该线性变换时,可单纯的表示这些基上的伸缩变换。若这些基正交,在这些伸缩变换是彼此无关的。
对称阵总能相似对角化。
14. 矩阵的迹
矩阵在相似变换中,其迹保持不变。迹等于方阵主对角元素之和。
t
r
(
A
)
=
∑
i
n
a
i
i
tr(\boldsymbol A)=\sum\limits_i^na_{ii}
tr(A)=i∑naii
15. 矩阵的四个子空间
线性变换的两个最常见问题为:
(1)求解
A
x
=
0
\boldsymbol {Ax=0}
Ax=0
(2)求解
A
x
=
b
\boldsymbol {Ax=b}
Ax=b,
b
\boldsymbol b
b为非零向量
子空间是矩阵一组基向量的张成。矩阵的四个子空间则完美包含了解决上述两个问题的信息。
列空间:矩阵列向量所构成的空间,即
A
x
=
b
\boldsymbol {Ax=b}
Ax=b中所有可能的
b
\boldsymbol b
b构成的线性空间。
零空间:
A
x
=
0
\boldsymbol {Ax=0}
Ax=0的解空间,该空间内的向量经过线性变换
A
\boldsymbol A
A作用,塌陷为零向量。还可以理解成与
A
\boldsymbol A
A的行空间超平面相垂直的超平面。
行空间:矩阵行向量所构成的空间,即
x
A
=
b
\boldsymbol {xA=b}
xA=b中所有可能的
b
\boldsymbol b
b构成的线性空间。
左零空间:
x
A
=
0
\boldsymbol {xA=0}
xA=0的解空间,该空间内的向量经过线性变换
A
T
\boldsymbol A^T
AT作用,塌陷为零向量,还可理解成与
A
\boldsymbol A
A的列空间超平面相垂直的超平面。