简单地说,机器学习就是做出预测。
线性代数
- 线性代数是数学的一个分支,主要研究向量空间、线性方程组、矩阵理论、线性变换、特征值和特征向量、内积空间等概念。它是现代数学的基础之一,并且在物理学、工程学、计算机科学、经济学等领域有着广泛的应用。
标量
标量(Scalar)是数学和物理学中的一个基本概念,它是一种只有一个数值大小,而没有方向的量。与之相对的是向量,向量既有大小也有方向。
标量的一些特点:
数值表示:标量通常用单个数值表示,如温度、质量、时间等。
运算简单:标量之间的运算(加法、减法、乘法、除法)遵循基本的算术规则。
无需基底:标量不需要基底向量来表示,它们自身就是最基本的量。
与向量运算:标量可以与向量进行运算,如标量乘以向量会得到一个与原向量方向相同但大小不同的新向量。
在矩阵中:在矩阵理论中,标量可以看作是只有一行一列的矩阵,即1x1矩阵。
物理量:在物理学中,标量场的值是一个标量,例如温度场在每个点都有一个温度值。
与张量的关系:标量可以看作是0阶张量,因为它们在坐标变换下不改变。
在编程中:在计算机编程中,标量通常是指基本数据类型,如整数、浮点数等。
向量
向量(Vector)是数学中的一种基本概念,它是既有大小又有方向的量。向量在物理学、工程学、计算机科学等领域中有着广泛的应用。
特性:
- 大小(Magnitude):向量的大小或长度,可以是任意非负实数。
- 方向:向量的方向可以是任意的。
- 起点和终点:在几何学中,向量通常由起点(尾)和终点(头)定义。
- 相等性:只有当两个向量的大小和方向都相同时,它们才被认为是相等的。
表示方法:
- 几何表示:通常用带箭头的线段表示,箭头指向表示方向。
- 坐标表示:在n维空间中,向量可以表示为一个有序的数列,如下。
- 矩阵表示:向量也可以表示为矩阵的一行或一列。
基本操作:
加法:两个向量相加,结果是一个新向量,其大小和方向是两个向量相应分量的矢量和。
减法:两个向量相减,结果是一个新向量,表示从第一个向量的终点指向第二个向量的终点的向量。
数乘:一个向量与一个标量相乘,结果是一个新向量,其方向与原向量相同或相反,大小是原向量大小的标量倍。
点积(内积):两个向量的点积是一个标量,计算公式如下,其中 θ 是两个向量之间的夹角。
叉积(外积):仅在三维空间中定义,两个向量的叉积是一个向量,垂直于原来的两个向量,其大小等于原来两个向量构成的平行四边形的面积。
应用:
- 物理学:表示力、速度、加速度等。
- 计算机图形学:用于处理图形的旋转、缩放、平移等变换。
- 机器学习:在数据表示和算法中广泛使用,如支持向量机(SVM)。
- 工程学:在电气工程中表示电流、电压等,在土木工程中表示力和位移。
张量
张量(Tensor)是数学中的一种基本概念,它是多维数组的推广,用于表示高维数据和复杂的数学关系。张量可以是实数或复数,并且可以通过各种操作得到新的张量,例如加法、减法、乘法、转置和求和等。
张量的定义:
- 张量是一个定义在一些向量空间和一些对偶空间的笛卡尔积上的多重线性映射,其坐标是n维空间内,有n个分量的一种量。其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。
张量的性质:
- 张量可以表示高维数据,可以用来表示多个维度的信息。
- 张量可以表示复杂的数学关系,可以用来表示多个变量之间的关系。
- 张量可以通过各种操作得到新的张量,如加法、减法、乘法、转置、求和等。
- 在深度学习中,张量是数据的基本单位,用于表示神经网络中各种参数和变量。
张量与线性代数的关系:
- 张量与线性代数密切相关,张量可以看作是线性代数的一种推广。
- 线性代数主要研究的是二维矩阵和向量,而张量则泛化了这些概念,可以表示多维数据和复杂的数学关系。
- 在线性代数中,向量可以看作是一维张量,矩阵可以看作是二维张量。
张量的应用:
- 张量在机器学习、深度学习、计算机视觉、自然语言处理等领域有广泛应用。
- 在物理学中,张量提供了一个简明的数学框架用来描述和解决力学、电动力学、广义相对论物理问题。
- 在工程学中,例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。
张量的基本运算:
- 加法:对应线性代数中的向量加法和矩阵加法。
- 减法:对应线性代数中的向量减法和矩阵减法。
- 乘法:对应线性代数中的向量乘法和矩阵乘法。
- 转置:对应线性代数中的矩阵转置。
- 求和:对应线性代数中的矩阵求和。
张量的广播和拼接:
- 广播:当两个张量的尺寸不匹配时,可以使用广播来实现相加或相乘。
- 拼接:可以用来将两个或多个张量拼接在一起,可以是横向拼接或纵向拼接。
张量的梯度求导:
- 在深度学习中,张量的梯度求导是用于优化模型参数的关键操作。
张量的实现:
- 在现代机器学习框架中,如PyTorch或TensorFlow,张量是核心的数据结构,提供了丰富的API来支持张量的各种操作。
降维
在线性代数中,降维通常指的是将数据从高维空间映射到低维空间的过程,同时尽可能保留原始数据的重要信息。这在数据科学和机器学习中非常重要,因为它可以帮助减少计算复杂度、避免维度灾难,并提高算法的性能。以下是一些常用的线性代数降维技术:
主成分分析(PCA):
- PCA是一种统计方法,它通过正交变换将数据转换到新的坐标系统中,使得新坐标轴上的方差最大化。
- 它找到一组正交主成分,这些成分按方差递减的顺序排列,通常只保留前几个主成分以实现降维。
奇异值分解(SVD):
- SVD是一种因子分解方法,它可以用于矩阵近似,从而实现降维。
- 通过保留最大的几个奇异值及其对应的奇异向量,可以近似原始矩阵,实现降维。
线性判别分析(LDA):
- LDA是一种监督学习的降维技术,它不仅寻找数据的主要成分,还考虑了数据的分类标签。
- 它的目标是最大化类间可分性,同时最小化类内差异性。
多维尺度分析(MDS):
- MDS是一种将距离数据降维到二维或三维空间的技术,以便进行可视化。
- 它通过保持原始数据点之间的距离来寻找低维空间中的点配置。
t-分布随机邻域嵌入(t-SNE):
- t-SNE是一种非线性降维技术,特别适合于高维数据的可视化。
- 它通过概率分布来保持高维空间中的局部结构,并将其映射到低维空间。
自编码器(Autoencoders):
- 自编码器是一种使用神经网络来学习数据的有效表示(编码)的方法。
- 通过设计网络结构,可以在编码过程中实现降维。
因子分析(Factor Analysis):
- 因子分析是一种统计方法,用于描述可观测变量之间的变异性,通常用于探索大量变量背后的潜在结构。
线性映射:
- 简单的线性映射,如选择数据集中最重要的几个特征,也可以看作是一种降维方法。
点积
在线性代数中,点积(也称为内积或标量积)是定义在两个向量之间的一种二元运算。它将两个向量映射到一个标量(即一个单一的数值)。点积在不同的向量空间中可能有不同的定义,但在最常见的欧几里得向量空间中,两个向量的点积定义如下:
- 给定两个向量 a 和 b,它们在 n 维空间中的坐标分别为 (a1, a2, …, an) 和 (b1, b2, …, bn),它们的点积 a.b 计算如下:
点积的性质包括:
- 交换律:
- 分配律:
- 结合律:
- 正定性:
- 可数乘性:
点积的一个重要应用是计算两个向量之间的夹角。如果 θ 是向量 a 和 b 之间的夹角,则:
其中 ||a|| 和 ||b|| 分别是向量 a 和 b 的范数(或长度)。
矩阵-向量积
- 矩阵-向量积是线性代数中的一种基本运算,它描述了如何将一个矩阵与一个向量相乘。这种运算在多个领域中都有应用,包括计算机图形学、数据科学、机器学习等。
- 定义:给定一个 m x n 矩阵 A 和一个 n- 维列向量 x,矩阵-向量积 Ax 的结果是一个 m- 维列向量 y。具体地,如果 A 的元素为 aij,向量 x 的元素为xj,那么结果向量 y 的第 i个元素 yi 计算如下:
这里,yi 是通过对矩阵 A 的第 i 行与向量 x 的对应元素进行点积来计算的。- 例子:假设有一个矩阵 A 和一个向量 x:
那么矩阵-向量积 Ax计算如下:
- 性质
- 结合律:
- 分配律:
- 转置的乘法:
- 应用
- 线性变换:矩阵乘以向量可以表示一个线性变换,例如旋转、缩放、剪切等。
- 求解线性方程组:矩阵-向量积可以用来表示和求解线性方程组 Ax = b。
- 机器学习:在机器学习中,矩阵-向量积常用于计算特征变换、权重更新等。
矩阵-矩阵积
矩阵-矩阵积,也称为矩阵乘法,是线性代数中的一种基本运算,它定义了如何将两个矩阵相乘。这种运算在多个领域中都有应用,包括数学、物理学、工程学、计算机科学和数据科学。
定义:给定两个矩阵 A 和 B,其中 A 是一个 m x n 矩阵,B 是一个 n x p 矩阵,矩阵-矩阵积 AB 的结果是一个 m x p 矩阵 C。具体地,如果 A 的元素为 aij,B的元素为 bjk,那么结果矩阵 C 的元素 cik 计算如下:
这里,cik 是通过对 A 的第 i 行与 B 的第 k 列进行点积来计算的。例子:假设有两个矩阵 A 和 B:
那么矩阵-矩阵积 AB 计算如下:
性质:
1. 结合律:(AB)C = A(BC),其中 A、B 和 C 是可以相乘的矩阵。
2. 分配律:(A(B + C) = AB + AC 和 (B + C)A = BA + CA。
3. 转置的乘法:(AB)T = BTAT。
4. 标量乘法:(c A)B = A(cB) = c(AB),其中 c 是一个标量。
5. 零矩阵:A0 = 0 = 0A,其中 0 是零矩阵。应用:
- 线性变换:矩阵乘法可以表示一系列线性变换的组合。
- 求解线性方程组:矩阵乘法可以用来表示和求解线性方程组的系数矩阵。
- 矩阵分解:在数值线性代数中,矩阵分解是解决各种问题的关键,如 LU 分解、QR 分解等。
- 机器学习:在机器学习中,矩阵乘法用于计算特征变换、权重矩阵的更新等。
范数
- 在线性代数中,范数是一个函数,它定义了向量空间中向量的“大小”或“长度”。范数必须满足以下三个条件:
- 非负性:对于所有的向量 x,有 ||x|| ≥ 0,并且||x|| = 0当且仅当 x = 0(零向量)。
- 齐次性:对于所有的向量 x 和所有的标量 α,有 ||αx|| = |α|||x|| 。
- 三角不等式:对于所有的向量||x||和||y||,有 ||x+y|| ≤ ||x|| + ||y||。