深度学习 (伊恩 古德费洛 著)学习笔记(一) 第二章 线性代数
第二章 线性代数
2.1 标量、向量、矩阵、张量
标量(scalar):一个标量就是一个单独的数。我们用斜体表示标量。标量通常被赋予小写的变量名称。
向量(vector):一个向量是一列数。这些数是有序排列的。通过次序中的索引,我们可以确定每个单独的数。通常我们赋予向量粗体的小写变量名称,比如 x。
矩阵(matrix):矩阵是一个二维数组,其中的每一个元素被两个索引(而非一个)所确定。我们通常会赋予矩阵粗体的大写变量名称,比如 A。如果一个实数矩阵高度为 m,宽度为 n,那么我们说 A ∈ Rm×n。
张量(tensor):在某些情况下,我们会讨论坐标超过两维的数组。一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们称之为张量。我们使用字体 A 来表示张量 “A’’。张量 A 中坐标为 (i, j, k) 的元素记作 Ai,j,k。
转置(transpose):是矩阵的重要操作之一。矩阵的转置是以对角线为轴的镜像,这条从左上角到右下角的对角线被称为 主对角线(main diagonal)。我们将矩阵 A 的转置表示为 A⊤,定义如下:
(A⊤)i,j = Aj,i
矩阵相加:两个矩阵相加是指对应位置的元素相加。比如 C = A + B,其中 Ci,j = Ai,j + Bi,j。
标量矩阵相乘:比如 D = a · B + c,其中 Di,j = a · Bi,j + c。
广播:我们允许矩阵和向量相加,产生另一个矩阵:C = A + b,其中 Ci,j = Ai,j + bj。换言之,向量 b 和矩阵A 的每一行相加,如图。
2.2 矩阵和向量相乘
矩阵乘积(matrix product):如果矩阵 A 的形状是 m × n,矩阵 B 的形状是 n × p,那么矩阵C 的形状是 m × p。
C = AB.
具体运算: Ci,j = ∑k Ai,kBk,j .
服从规律:
分配律:A(B + C) = AB + AC.
结合律:A(BC) = (AB)C.
矩阵乘积的转置:(AB)⊤ = B⊤A⊤.
注意:矩阵乘积不满足交换律。
元素对应乘积(element-wise product)或者 Hadamard 乘积(Hadamard product):记为 A ⊙ B。
点积:向量 x 和 y 的 点积(dot product)可看作是矩阵乘积 x⊤y.
交换律:x⊤y = y⊤x.
线性方程组:
Ax = b
2.3 单位矩阵和逆矩阵
单位矩阵(identity matrix):所有沿主对角线的元素都是 1,而所有其他位置的元素都是0。
矩阵逆(matrix inversion):矩阵 A 的 矩阵逆(matrix inversion)记作 A−1,其定义的矩阵满足如下条件:
A−1A = In.
2.4 线性相关和生成子空间
线性组合(linear combination):一组向量的线性组合,是指每个向量乘以对应标量系数之后的和,即:∑i civ(i).
生成子空间(span):一组向量的生成子空间(span)是原始向量线性组合后所能抵达的点的集合。
为了分析方程有多少个解,我们可以将 A 的列向量看作从原点(origin)(元素都是零的向量)出发的不同方向,确定有多少种方法可以到达向量 b.在这个观点下,向量 x 中的每个元素表示我们应该沿着这些方向走多远,即 xi 表示我们需要沿着第 i 个向量的方向走多远:
Ax = ∑i xi A:,i.
确定 Ax = b 是否有解相当于确定向量 b 是否在 A 列向量的生成子空间中。这个特殊的生成子空间被称为 A 的 列空间(column space)或者 A 的 值域(range)。
例如,假设 A 是一个 3 × 2 的矩阵。目标 b 是 3 维的,但是 x 只有 2 维。所以无论如何修改 x 的值,也只能描绘出 R3 空间中的二维平面。当且仅当向量 b 在该二维平面中时,该方程有解。
2.5 范数
在机器学习中,我们经常使用被称为 范数(norm)的函数衡量向量大小。范数(包括Lp范数)是将向量映射到非负值的函数。直观上来说,向量 x 的范数衡量从原点到点 x 的距离。Lp 范数定义如下:
其中,p∈R,p≥1。
严格的说,范数是满足下列性质的任意函数:
① f (x) = 0 ⇒ x = 0
② f (x + y) ≤ f (x) + f (y) ( 三角不等式(triangle inequality))
③ ∀α ∈ R, f (αx) = |α| f (x)
欧几里得范数(Euclidean norm):
当 p = 2 时,L2 范数被称为 欧几里得范数(Euclidean norm)。它表示从原点出发到向量 x 确定的点的欧几里得距离。简化表示为 ∥x∥。
最大范数(max norm):这个范数表示向量中具有最大幅值的元素的绝对值:
Frobenius 范数(Frobenius norm):衡量矩阵的大小。
范数表示两个向量的点积:
2.6 特殊类型的矩阵和向量
对角矩阵(diagonal matrix):只在主对角线上含有非零元素,其他位置都是零。
不是所有的对角矩阵都是方阵。长方形的矩阵也有可能是对角矩阵。非方阵的对角矩阵没有逆矩阵,但我们仍然可以高效地计算它们的乘法。
对称(symmetric)矩阵:转置和自己相等的矩阵。
例如,如果 A 是一个距离度量矩阵,Ai,j 表示点 i 到点 j 的距离,那么 Ai,j = Aj,i,因为距离函数是对称的。
单位向量(unit vector):具有 单位范数(unit norm)的向量。
正交矩阵(orthogonal matrix):行向量和列向量是分别标准正交的方阵.
这意味着:A−1 = A⊤
如果 x⊤y = 0,那么向量 x 和向量 y 互相 正交(orthogonal)。
2.7 特征分解
特征分解(eigen decomposition)是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。
方阵 A 的 特征向量(eigenvector)是指与 A 相乘后相当于对该向量进行缩放的非零向量 v:
标量 λ 被称为这个特征向量对应的 特征值(eigenvalue)。
具体来讲,每个实对称矩阵都可以分解成实特征向量和实特征值:
其中 Q 是 A 的特征向量组成的正交矩阵,Λ 是对角矩阵。
所有特征值都是正数的矩阵被称为 正定(positive definite);所有特征值都是非负数的矩阵被称为 半正定(positive semidefinite)。同样地,所有特征值都是负数的矩阵被称为 负定(negative definite);所有特征值都是非正数的矩阵被称为 半负定(negative semidefinite)。
2.8 奇异值分解
奇异值分解(singular value decomposition, SVD),将矩阵分
解为 奇异向量(singular vector)和 奇异值(singular value)。
将矩阵 A 分解成三个矩阵的乘积:
矩阵 U 和 V 都定义为正交矩阵,而矩阵 D 定义为对角矩阵。注意,矩阵 D 不一定是方阵。
对角矩阵 D 对角线上的元素被称为矩阵 A 的 奇异值(singular value)。矩阵U 的列向量被称为 左奇异向量(left singular vector),矩阵 V 的列向量被称 右奇异向量(right singular vector)。
奇异值分解的具体步骤可以参考:奇异值分解步骤
2.9 Moore-Penrose 伪逆
矩阵 A 的伪逆定义为:
计算伪逆的实际算法没有基于这个定义,而是使用下面的公式:
其中,矩阵 U,D 和 V 是矩阵 A奇异值分解后得到的矩阵。对角矩阵 D 的伪逆D+ 是其非零元素取倒数之后再转置得到的。
2.10 迹运算
迹运算:矩阵对角元素的和:
迹运算提供了另一种描述矩阵Frobenius范数的方式:
一些性质:
2.11 行列式
行列式,记作 det(A),是一个将方阵 A 映射到实数的函数。
行列式等于矩阵特征值的乘积。
行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。
如果行列式是 0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。
如果行列式是 1,那么这个转换保持空间体积不变。