1,应用数学与机器学习基础

  • Post author:
  • Post category:其他


线性代数

标量(scalar):一个标量就是一个单独的数,它不同于线性代数中研究的其他大部分对象(通常是多个数的数组)

向量(vector):一个向量是一列数。这些数是有序排列的。我们可以把向量看作空间中的点,每个元素是不同坐标轴上的坐标

矩阵(matrix):矩阵是一个二维数组,其中的每一个元素被两个索引(而非一个)所确定

张量(tensor):在某些情况下,我们会讨论坐标超过两维的数组。一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们称之为张量。

转置(transpose)是矩阵的重要操作之一。矩阵的转置是以对角线为轴的镜像,这条从左上角到右下角的对角线被称为 主对角线(main diagonal)

广播(broadcasting):向量 b 和矩阵A 的每一行相加。这个简写方法使我们无需在加法操作前定义一个将向量 b 复制到每一行而生成的矩阵

向量积和生成子空间

两个矩阵的标准乘积不是指两个矩阵中对应元素的乘积。不过,那样的矩阵操作确实是存在的,被称为 元素对应乘积(element-wise product)或者 Hadamard 乘积(Hadamard product),记为 A ⊙ B

两个相同维数的向量 x 和 y 的 点积(dot product)可看作是矩阵乘积 x⊤y。

矩阵乘积并不满足交换律(AB = BA 的情况并非总是满足)。然而,两个向量的 点积(dot product)满足交换律:

单位矩阵(identity matrix)的概念。任意向量和单位矩阵相乘,都不会改变。我们将保持 n 维向量不变的单位矩阵记作 In

单位矩阵的结构很简单:所有沿主对角线的元素都是 1,而所有其他位置的元素都是0。

矩阵 A 的 矩阵逆(matrix inversion)记作 A−1,其定义的矩阵满足如下条件A−1·A = In.

线性方程组:Ax = b

逆矩阵 A−1 主要是作为理论工具使用的,并不会在大多数软件应用程序中实际使用。这是因为逆矩阵 A−1 在数字计算机上只能表现出有限的精度,有效使用向量 b 的算法通常可以得到更精确的x。

为了分析方程有多少个解,我们可以将 A 的列向量看作从 原点(origin)(元素都是零的向量)出发的不同方向,确定有多少种方法可以到达向量 b。

在这个观点下,向量 x 中的每个元素表示我们应该沿着这些方向走多远,即 xi 表示我们需要沿着第 i 个向量的方向走多远:

这种操作被称为 线性组合(linear combination)。形式上,一组向量的线性组合,是指每个向量乘以对应标量系数之后的和,即:

一组向量的 生成子空间(span)是原始向量线性组合后所能抵达的点的集合。

确定 Ax = b 是否有解相当于确定向量 b 是否在 A 列向量的生成子空间中。这个特殊的生成子空间被称为 A 的 列空间(column space)或者 A 的 值域(range)

如果一组向量中的任意一个向量都不能表示成其他向量的线性组合,那么这组向量称为 线性无关(linearly independent)。如

要想使矩阵可逆,我们还需要保证式 (2.11) 对于每一个 b 值至多有一个解。为此,我们需要确保该矩阵至多有 m 个列向量。否则,该方程会有不止一个解。

矩阵必须是一个 方阵(square),即 m = n,并且所有列向量都是线性无关的。

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

如果矩阵 A 不是一个方阵或者是一个奇异的方阵,该方程仍然可能有解。但是我们不能使用矩阵逆去求解

对于方阵而言,它的左逆和右逆是相等的

范数

用 范数(norm)的函数衡量向量大小。

范数(包括 Lp 范数)是将向量映射到非负值的函数。直观上来说,向量 x 的范数衡量从原点到点 x 的距离

更严格地说,范数是满足下列性质的任意函数:

• f(x) = 0 ⇒ x = 0

• f(x + y) ≤ f(x) + f(y) ( 三角不等式(triangle inequality))

• ∀α ∈ R, f(αx) = |α|f(x)

当 p = 2 时,L2 范数被称为 欧几里得范数(Euclidean norm)。它表示从原点出发到向量 x 确定的点的欧几里得距离。

平方 L2 范数也经常用来衡量向量的大小,可以简单地通过点积 x⊤x 计算。

平方 L2 范数在数学和计算上都比 L2 范数本身更方便。例如,平方 L2 范数对x 中每个元素的导数只取决于对应的元素,而 L2 范数对每个元素的导数却和整个向量相关。但是在很多情况下,平方 L2 范数也可能不受欢迎,因为它在原点附近增长得十分缓慢。在某些机器学习应用中,区分恰好是零的元素和非零但值很小的元素是很重要的。

在这些情况下,我们转而使用在各个位置斜率相同,同时保持简单的数学形式的函数:L1 范数。当机器学习问题中零和非零元素之间的差异非常重要时,通常会使用 L1 范数。每当x 中某个元素从 0 增加 ϵ,对应的 L1 范数也会增加 ϵ。

有时候我们会统计向量中非零元素的个数来衡量向量的大小。有些作者将这种函数称为 “L0 范数’’,但是这个术语在数学意义上是不对的。向量的非零元素的数目不是范数,因为对向量缩放 α 倍不会改变该向量非零元素的数目。因此,L1 范数经常作为表示非零元素数目的替代函数

另外一个经常在机器学习中出现的范数是 L∞ 范数,也被称为 最大范数(maxnorm)。这个范数表示向量中具有最大幅值的元素的绝对值

有时候我们可能也希望衡量矩阵的大小。在深度学习中,最常见的做法是使用 Frobenius 范数(Frobenius norm),记为||·||F。矩阵A的Frobenius范数定义为矩阵A各项元素的绝对值平方的总和

两个向量的 点积(dot product)可以用范数来表示。具体地,

x⊤y = ∥x∥2∥y∥2cos θ

特殊类型的矩阵和向量

对角矩阵(diagonal matrix)只在主对角线上含有非零元素,其他位置都是零。单位矩阵,对角元素全部是 1。关注的部分原因是对角矩阵的乘法计算很高效

对角方阵的逆矩阵存在,当且仅当对角元素都是非零值,在这种情况下,diag(v)

−1 = diag([1/v1, . . . , 1/vn]

⊤)。

在很多情况下,我们可以根据任意矩阵导出一些通用的机器学习算法;但通过将一些矩阵限制为对角矩阵,我们可以得到计算代价较低的(并且简明扼要的)算法。

非方阵的对角矩阵没有逆矩阵,但我们仍然可以高效地计算它们的乘法。长方形矩阵乘法要进行缩放,去掉0或添加0

对称(symmetric)矩阵是转置和自己相等的矩阵:当某些不依赖参数顺序的双参数函数生成元素时,对称矩阵经常会出现

单位向量(unit vector)是具有 单位范数(unit norm)的向量,∥x∥2 = 1.

如果 x⊤y = 0,那么向量 x 和向量 y 互相 正交(orthogonal)。如果两个向量都有非零范数,那么这两个向量之间的夹角是 90 度。在 Rn 中,至多有 n 个范数非零向量互相正交。如果这些向量不仅互相正交,并且范数都为 1,那么我们称它们是 标准正交(orthonormal)。

正交矩阵(orthogonal matrix)是指行向量和列向量是分别标准正交的方阵:A⊤A = AA⊤ = I. 这意味着A−1 = A⊤

所以正交矩阵受到关注是因为求逆计算代价小。我们需要注意正交矩阵的定义。违反直觉的是,正交矩阵的行向量不仅是正交的,还是标准正交的。对于行向量或列向量互相正交但不是标准正交的矩阵,没有对应的专有术语。

特征分解

许多数学对象可以通过将它们分解成多个组成部分或者找到它们的一些属性而更好地理解,这些属性是通用的,而不是由我们选择表示它们的方式产生的。例如,整数可以分解为质因数

特征分解(eigendecomposition)是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。

方阵 A 的 特征向量(eigenvector)是指与 A 相乘后相当于对该向量进行缩放的非零向量 v:Av = λv.

标量 λ 被称为这个特征向量对应的 特征值(eigenvalue)。(类似地,我们也可以定义 左特征向量(left eigenvector)v⊤A = λv⊤,但是通常我们更关注 右特征向量(right eigenvector))

如果 v 是 A 的特征向量,那么任何缩放后的向量 sv (s ∈ R,s ̸= 0) 也是 A 的特征向量。此外,sv 和 v 有相同的特征值。基于这个原因,通常我们只考虑单位特征向量

A 的 特征分解(eigendecomposition)可以记作A = Vdiag(λ)V−1,V是n个不同特征向量组成的矩阵,λ是对应的特征值组成的矩阵

.不是每一个矩阵都可以分解成特征值和特征向量。在某些情况下,特征分解存在,但是会涉及复数而非实数。幸运的是,在本书中,我们通常只需要分解一类有简单分解的矩阵。具体来讲,每个实对称矩阵都可以分解成实特征向量和实特征值:

A =QΛQ⊤其中 Q 是 A 的特征向量组成的正交矩阵,Λ 是对角矩阵。特征值 Λi,i 对应的特征向量是矩阵 Q 的第 i 列,记作 Q:i

因为 Q 是正交矩阵,我们可以将 A 看作沿方向 v(i) 延展 λi 倍的空间

虽然任意一个实对称矩阵 A 都有特征分解,但是特征分解可能并不唯一。矩阵的特征分解给了我们很多关于矩阵的有用信息。矩阵是奇异的当且仅当含有零特征值。实对称矩阵的特征分解也可以用于优化二次方程 f(x) = x⊤Ax,其中限制 ∥x∥2 = 1。当 x 等于 A 的某个特征向量时,f 将返回对应的特征值。在限制条件下,函数 f 的最大值是最大特征值,最小值是最小特征值

所有特征值都是正数的矩阵被称为 正定(positive definite);所有特征值都是非负数的矩阵被称为 半正定(positive semidefinite)。同样地,所有特征值都是负数的矩阵被称为 负定(negative definite);所有特征值都是非正数的矩阵被称为 半负定negative semidefinite)。

奇异值分解

另一种分解矩阵的方法,被称为 奇异值分解(singular value decomposition, SVD),将矩阵分解为 奇异向量(singular vector)和 奇异值(singular value)。

通过奇异值分解,我们会得到一些与特征分解相同类型的信息。然而,奇异值分解有更广泛的应用。每个实数矩阵都有一个奇异值分解,但不一定都有特征分解

奇异值分解是类似特征值分解的,只不过这回我们将矩阵 A 分解成三个矩阵的乘积:A = UDV⊤

假设 A 是一个 m × n 的矩阵,那么 U 是一个 m × m 的矩阵,D 是一个 m × n的矩阵,V 是一个 n × n 矩阵。这些矩阵中的每一个经定义后都拥有特殊的结构。矩阵 U 和 V 都定义为正交矩阵,而矩阵 D 定义为对角矩阵。注意,矩阵 D 不一定是方阵。.

对角矩阵 D 对角线上的元素被称为矩阵 A 的 奇异值(singular value)。矩阵U 的列向量被称为 左奇异向量(left singular vector),矩阵 V 的列向量被称 右奇异向量(right singular vector)。

事实上,我们可以用与 A 相关的特征分解去解释 A 的奇异值分解。A 的 左奇异向量(left singular vector)是 AA⊤ 的特征向量。A 的 右奇异向量(right singularvector)是 A⊤A 的特征向量。A 的非零奇异值是 A⊤A 特征值的平方根,同时也是AA⊤ 特征值的平方根。

Moore-Penrose 伪逆

计算伪逆的实际算法没有基于原本定义,而是使用下面的公式:

A+ = VD+U⊤其中,矩阵 U,D 和 V 是矩阵 A奇异值分解后得到的矩阵。对角矩阵 D 的伪逆D+ 是其非零元素取倒数之后再转置得到的。

当矩阵 A 的列数多于行数时,使用伪逆求解线性方程是众多可能解法中的一种。特别地,x = A+y 是方程所有可行解中欧几里得范数 ∥x∥2 最小的一个。当矩阵 A 的行数多于列数时,可能没有解。在这种情况下,通过伪逆得到的 x使得 Ax 和 y 的欧几里得距离 ∥Ax − y∥2 最小。

迹运算

迹晕船返回的是矩阵对角元素的和

即使循环置换后矩阵乘积得到的矩阵形状变了迹运算的结果依然不变

另一个有用的事实是标量在迹运算后仍然是它自己:a = Tr(a)。

行列式

行列式,记作 det(A),是一个将方阵 A 映射到实数的函数。

行列式等于矩阵特征值的乘积。行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。如果行列式是 0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。如果行列式是 1,那么这个转换保持空间体积不变。

实例:主成分分析



版权声明:本文为qq_42208267原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。