人工智能入门 数学基础 线性代数 笔记
必备的数学知识是理解人工智能不可或缺的要素,今天的种种人工智能技术归根到底都建立在数学模型之上,而这些数学模型又都离不开线性代数(linear algebra)的理论框架。
线性代数的核心意义:世间万事万物都可以被抽象成某种特征组合,并可以再预配置的规则框架下以静态和动态的方式观察。
基本概念
集合Set
某些特定对象汇总处的集体,而集合中每些元素会有某些共性。
对于集合 { 苹果,橘子,梨 } 来说, 所有元素的共性是它们都是水果;对于集合 {牛,马,羊} 来说,所有元素的共性是它们都是动物。
当然 { 苹果,牛 } 也可以构成一个集合,但这两个元素并没有明显的共性,这样的集合在解决实际问题中的作用也就相当有限。
“苹果”或是“牛”这样的具体概念显然超出了数学的处理范围,因而集合的元素需要进行进一步的抽象——用数字或符号来表示。
标量Scalar
在线性代数中,由单独的数 a 构成的元素被称为标量(scalar):一个标量 a 可以是整数、实数或复数。
向量Vector(去重)
如果多个标量a1、a2、a3、。。。an,按一定顺序组成一个序列,这个序列就可以叫向量(Vector)
向量可以看做是标量的扩展,原始的一个数的标量可以被替代为一组向量,带来维度上的增加,给定索引下标才能确定向量中的唯一元素。
矩阵(Matrix)
每个向量都由若干个标量组成,而将向量的所有规格的标量都替换为相同规格的向量,则是矩阵(Matrix)
( a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ) \begin{pmatrix}a_{11} & a_{12} & a_{13} \\a_{21} & a_{22} & a_{23} \\a_{31} & a_{32} & a_{33}\end{pmatrix} a11a21a31a12a22a32a13a23a33
对于向量,矩阵同样增加了维度。
使用矩阵的某个元素,需要使用两个索引。
张量(Tensor)
如果将矩阵中的每个标量元素替换为向量的话,得到的就是张量(tensor),更高阶的矩阵。
举例:
如果把三阶魔方的每一个小方块看作一个数,它就是个 3×3×3 的张量,3×3 的矩阵则恰是这个魔方的一个面,也就是张量的一个切片。相比于向量和矩阵,张量是更加复杂,直观性也更差的概念。
数学概念 | 魔方类比 | 维度 | 例子 |
---|---|---|---|
标量(Scalar) | 单个小方块的颜色 | 0D | “红” |
向量(Vector) | 一行或一列 | 1D | [红,绿,黄][红, 绿, 黄][红,绿,黄] |
矩阵(Matrix) | 魔方的一个面 | 2D | [[红,绿,黄],[红, 绿, 黄],[红,绿,黄]] |
张量(Tensor) | 整个魔方 | 3D | 3×3×33×3×33×3×3 立方体存储颜色 |
- 在计算机存储中,标量占据的是零维数组;
- 向量占据的是一维数组,例如语音信号;
- 矩阵占据的是二维数组,例如灰度图像;
- 张量占据的是三维乃至更高维度的数组,例如 RGB 图像和视频。
数学语言
描述作为数学对象的向量需要有特定的数学语言,范数和内积就是代表。
范数(Norm)
范数(norm)是对单个向量大小的度量,描述的是向量自身的性质,其作用是将向量映射为一个非负的数值。
对于给定向量:
X = ( X 1 , X 2 , X 3 , … , X n ) \mathbf{X} = (X_1,X_2,X_3,\dots,X_n) X=(X1,X2,X3,…,Xn)
通用 L p L^p Lp范数定义:
∣ x ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p |\mathbf{x}|_p = \left( \sum_{i} |x_i|^p \right)^{\frac{1}{p}} ∣x∣p=(i∑∣xi∣p)p1
对⼀个给定向量,
- L1 范数计算的是向量所有元素绝对值的和(曼哈顿范数),
∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \|\mathbf{x}\|1 = \sum{i=1}^{n} |x_i| ∥x∥1=∑i=1n∣xi∣
计算的是向量所有元素绝对值的和。
- L2 范数计算的是通常意义上的向量长度, ∥ x ∥ 2 = ∑ i = 1 n x i 2 = x 1 2 + x 2 2 + ⋯ + x n 2 \|\mathbf{x}\|_2 = \sqrt{\sum_{i=1}^{n} x_i^2} = \sqrt{x_1^2 + x_2^2 + \cdots + x_n^2} ∥x∥2=∑i=1nxi2=x12+x22+⋯+xn2 计算的是通常意义上的向量长度,即从原点到向量 的直线距离。
- L∞ 范数计算的则是向量中最大元素的取值。 ∥ x ∥ ∞ = lim p → ∞ ∥ x ∥ p = max 1 ≤ i ≤ n ∣ x i ∣ \|\mathbf{x}\|_\infty = \lim_{p \to \infty} \|\mathbf{x}\|_p = \max_{1 \leq i \leq n} |x_i| ∥x∥∞=limp→∞∥x∥p=max1≤i≤n∣xi∣
内积(Inner Product)
范数计算的是单个向量的尺度,内积(inner product)计算的则是两个向量之间的关系。
两个相同维数向量内积的表达式为:
⟨ x , y ⟩ = ∑ i x i ⋅ y i ⟨x,y⟩=\sum_i{xi⋅yi} ⟨x,y⟩=i∑xi⋅yi
即对应元素乘积的求和。内积能够表示两个向量之间的相对位置,即向量之间的夹角。
一种特殊的情况是内积为 0,即 ⟨x,y⟩=0。在二维空间上,这意味着两个向量的夹角为 90 度,即相互垂直。
若 ⟨ x , y ⟩ = 0 \langle \mathbf{x}, \mathbf{y} \rangle = 0 ⟨x,y⟩=0
- 说明两个向量正交(orthogonal),即互相垂直(夹角90°)
- 代表线性无关
线性空间和内积空间
线性空间(Linear Space)
如果有一个集合,它的元素都是相同维数的向量,并且我们可以进行加法(vector addition)和数乘(scalar multiplication),这样的集合被称为 线性空间(向量空间)。
例子:
- 几何上的向量空间:二维空间 R 2 \mathbb{R}^2 R2 和三维空间 R 3 \mathbb{R}^3 R3 都是线性空间。
- 数据特征空间:比如所有人的身高、体重和年龄组成的三维向量集合。
线性空间特征
线性空间的一个重要特征是能够承载变化。当作为参考系的标准正交基确定后,空间中的点就可以用向量表示。当这个点从一个位置移动到另一个位置时,描述它的向量也会发生改变。点的变化对应着向量的线性变换(linear transformation),而描述对象变化抑或向量变换的数学语言,正是矩阵。
在线性空间中,变化的实现有两种方式:一是点本身的变化,二是参考系的变化。
使某个点发生变化的方法是用代表变化的矩阵乘以代表对象的向量。可是反过来,如果保持点不变。
而是换一种观察的角度,得到的也将是不同的结果,正所谓“横看成岭侧成峰,远近高低各不同”。
内积空间(Inner Product Space)
如果在线性空间中定义了内积运算,则称其为 内积空间,这意味着可以衡量向量之间的角度和相似度。
- 在几何中,内积描述了向量的夹角:
⟨ x , y ⟩ = ∥ x ∥ 2 ∥ y ∥ 2 c o s θ ⟨ x , y ⟩ = ∥ x ∥ 2 ∥ y ∥ 2 cos θ ⟨x,y⟩=∥x∥2∥y∥2cosθ\langle \mathbf{x}, \mathbf{y} \rangle = \|\mathbf{x}\|_2 \|\mathbf{y}\|_2 \cos\theta ⟨x,y⟩=∥x∥2∥y∥2cosθ⟨x,y⟩=∥x∥2∥y∥2cosθ
这有助于分析向量在某个方向上的投影。
- 在机器学习中,特征空间中的点代表数据对象,内积用于计算数据对象之间的相似性。
在 高维空间(如深度学习中的向量嵌入空间),所有数据点都可以看作是一个向量,每个点都有一个唯一的向量表示。因此,点和向量是等价的:
数据点 ⟺ 特征向量 \text{数据点} \Longleftrightarrow \text{特征向量} 数据点⟺特征向量
概念 | 作用 | 数学表达 | 实际意义 |
---|---|---|---|
向量(Vector) | 代表一个对象或行为的特征 | x = ( x 1 , x 2 , . . . , x n ) x = ( x 1 , x 2 , . . . , x n ) x = ( x 1 , x 2 , . . . , x n ) x=(x1,x2,...,xn)\mathbf{x} = (x_1, x_2, ..., x_n)x=(x1,x2,...,xn) x=(x1,x2,...,xn)x=(x1,x2,...,xn)x=(x1,x2,...,xn) | 图片、文本、用户行为等数据都可以表示为向量 |
范数(Norm) | 衡量向量的大小 | ∥ x ∥ p = ( i ∑ ∣ x i ∣ p ) p 1 ∥x∥p=(i∑∣xi∣p)p1 ∥x∥p=(i∑∣xi∣p)p1 | x_i |
内积(Inner Product) | 衡量两个向量的关系 | ⟨ x , y ⟩ = ∑ x i y i ⟨ x , y ⟩ = ∑ x i y i ⟨ x , y ⟩ = ∑ x i y i ⟨x,y⟩=∑xiyi\langle \mathbf{x}, \mathbf{y} \rangle = \sum x_i y_i⟨x,y⟩=∑xiyi ⟨x,y⟩=∑xiyi⟨x,y⟩=∑xiyi⟨x,y⟩=∑xiyi | 计算相似性,预测匹配程度 |
向量变换(linear transformation)
矩阵作用到向量 Ax=y
假设我们有一个矩阵A和一个向量x,它们的乘积定义为:
A x = y A\mathbf{x} = \mathbf{y} Ax=y
这表示矩阵 A 对向量 x 进行了某种变换,结果是一个新的向量 y(维度与x 相同)。
示例
如果矩阵 A 是一个 旋转矩阵,那么它的作用可能是旋转向量 x 而不改变其长度。
如果矩阵 A 是一个 缩放矩阵,那么它可能是将向量的长度按比例放大或缩小。
特征向量与特征值
有一种特殊情况:如果矩阵 AAA 作用在某个向量 xxx 上后,得到的结果仍然是它自己的缩放版本,即:
A x = b x A\mathbf{x} = b \mathbf{x} Ax=bx
那么,x 就被称为 矩阵 A 的特征向量(eigenvector),而 b 就是对应的特征值(eigenvalue)。
直观理解
- 特征向量 是在矩阵变换下方向不变的向量,只可能被拉伸或缩短,而不会被旋转到其他方向。
- 特征值 是拉伸或缩短的比例因子。
示例
假设:
A
=
[
2
0
0
3
]
,
x
=
[
1
0
]
A= \begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix}, \quad x = \begin{bmatrix} 1 \\ 0 \end{bmatrix}
A=[2003],x=[10]
计算矩阵乘法:
我们发现:
- 向量 x = [ 1 0 ] x = \begin{bmatrix} 1 \\ 0 \end{bmatrix} x=[10]没有改变方向,只是被拉伸了 2 倍。
- 这意味着 x 是 A 的特征向量,对应的特征值是 2。
要点
- 线性代数的本质在于将具体事物抽象为数学对象,并描述其静态和动态的特性;
- 向量的实质是 n 维线性空间中的静止点;
- 线性变换描述了向量或者作为参考系的坐标系的变化,可以用矩阵表示。
- 矩阵的特征值和特征向量描述了变化的速度与方向。