深度学习中的数学 – 线性代数

1 矩阵和向量相乘

1.1 标准乘积

如果矩阵 A 的形状是 m × n,矩阵 B 的形状是 n × p,那么两者相乘得到的矩阵 C 的形状是 m×p。
深度学习中的数学 - 线性代数
具体来说,这个乘法运算被定义为
深度学习中的数学 - 线性代数
可以理解为 A 中第 i 行与 B 中第 j 列的点积(深度学习中的数学 - 线性代数)

1.2 元素对应乘积

元素对应乘积(element-wise product)或者叫Hadamard 乘积(Hadamard product),记为深度学习中的数学 - 线性代数。为 A 与 B 对应元素的乘积(A,B 矩阵大小一致)
深度学习中的数学 - 线性代数

2 线性相关和生成子空间

有以下线性方程组(A 为 m×n 矩阵):
深度学习中的数学 - 线性代数
将 A 的每一列看作从原点(元素都是零的向量)出发的不同方向,确定有多少种方法可以到达向量 b,那么方程就有多少个解。向量 x 中的每个元素表示应该沿着对应方向走多远,即深度学习中的数学 - 线性代数表示需要沿着第 i 个方向走多远:
深度学习中的数学 - 线性代数
深度学习中的数学 - 线性代数表示 A 的第 i 列

这种操作被称为线性组合(linear combination)。一组向量的生成子空间(span)是原始向量线性组合之后所能抵达点的集合

确定深度学习中的数学 - 线性代数是否有解相当于确定向量 b 是否在 A 列向量的生成子空间中。这个特殊的生成子空间被称为 A 的列空间或者 A 的值域(range)

为了使方程深度学习中的数学 - 线性代数对于任意向量深度学习中的数学 - 线性代数都存在解,我们要求 A 的列空间构成整个深度学习中的数学 - 线性代数。如果深度学习中的数学 - 线性代数中的某个点不在 A 的列空间中,那么该点对应的 b 会使得该方程没有解。矩阵 A 的列空间是整个深度学习中的数学 - 线性代数的要求,意味着 A 至少有 m 列,即 n ≥ m。否则, A 列空间的维数会小于 m。例如,假设 A 是一个 3 × 2 的矩阵。目标 b 是 3 维的,但是 x 只有 2 维。所以无论如何修改 x 的值,也只能描绘出深度学习中的数学 - 线性代数空间中的二维平面。当且仅当向量 b 在该二维平面中时,该方程有解。

如果一个矩阵的列空间涵盖整个深度学习中的数学 - 线性代数,那么该矩阵必须包含至少一组 m 个线性无关的向量,这是对于每一个向量 b 的取值都有解的充分必要条件

一个列向量线性相关的方阵被称为奇异的( singular)

3 特征分解

方阵 A 的特征向量是指与 A 相乘后相当于对该向量进行缩放的非零向量深度学习中的数学 - 线性代数:
深度学习中的数学 - 线性代数
标量 λ 称为该特征向量对应的特征值。

如果深度学习中的数学 - 线性代数是 A 的特征向量,那么任何缩放后的 向量深度学习中的数学 - 线性代数(s∈R,s≠0) 也是 A 的特征向量,深度学习中的数学 - 线性代数深度学习中的数学 - 线性代数有相同的特征值,因此,通常只考虑单位特征向量

假设矩阵 A 有 n 个线性无关的特征向量,对应特征值深度学习中的数学 - 线性代数记为 λ。矩阵 V 的每一列都是一个特征向量, A 的特征分解可以记为(diag表示对角矩阵)
深度学习中的数学 - 线性代数

每个实对称矩阵都可以分解为实特征向量和实特征值
深度学习中的数学 - 线性代数
Q 是 A 的特征向量组成的正交矩阵,Λ 是对角矩阵。

所有特征值都是正数的矩阵被称为正定( positive definite);所有特征值都是非负数的矩阵被称为半正定( positive semidefinite)。同样地,所有特征值都是负数的矩阵被称为负定( negative definite);所有特征值都是非正数的矩阵被称为半负定( negative semidefinite)。 半正定矩阵受到关注是因为它们保证对于任意深度学习中的数学 - 线性代数,深度学习中的数学 - 线性代数。此外,正定矩阵还保证深度学习中的数学 - 线性代数当且仅当深度学习中的数学 - 线性代数

矩阵行列式等于矩阵特征值的乘积

4 奇异值分解

每个实数矩阵都有一个奇异值分解,但不一定都有特征分解,例如,非方阵的矩阵没有特征分解,这时我们只能使用奇异值分解(参考PCA的数学原理)

任何深度学习中的数学 - 线性代数实矩阵 A,深度学习中的数学 - 线性代数的奇异值分解一定存在,表示为三个矩阵的乘积:
深度学习中的数学 - 线性代数
其中 U 是 m 阶正交矩阵,V 是 n 阶正交矩阵; Σ 是 m×n 矩形对角矩阵,其对角线元素称为奇异值,值非负,且按降序排列,这种分解方式称为矩阵的完全奇异值分解

在实际应用中,SVD 被用来对矩阵做近似表示,也即深度学习中的数学 - 线性代数得到的结果并不需要与 A 完全相同,只要值尽量相同即可。这时就可以取 Σ 中最大的 k 个奇异值,得到矩阵的截断奇异值分解,这时有
深度学习中的数学 - 线性代数
其中深度学习中的数学 - 线性代数是 m×k 矩阵,深度学习中的数学 - 线性代数是 n×k 矩阵,深度学习中的数学 - 线性代数是 k 阶对角矩阵; 矩阵深度学习中的数学 - 线性代数由完全奇异值分解中 U 的前 k 列得到、矩阵深度学习中的数学 - 线性代数由完全奇异值分解中 V 的前 k 列得到、矩阵深度学习中的数学 - 线性代数深度学习中的数学 - 线性代数的前 k 个对角元素得到

SVD 最有用的一个性质可能是拓展矩阵求逆到非方矩阵上

推荐书目

1 The Matrix Cookbook(Petersen and Pedersen, 2006)
2 希洛夫[苏]Shilov G.E。Linear Algebra_(Dover,1977)

参考

深度学习

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年4月7日 下午1:49
下一篇 2022年4月7日

相关推荐