一文搞懂机器学习线性代数基础知识!

推荐直接网站在线阅读:aicoting AI算法面试学习在线网站

向量与矩阵

向量(Vector)

向量可以看作是有序数值的集合,用于表示样本特征。

例如,一个房屋数据可以表示为: x = 面积 房间数 楼层 = 120 3 5 \mathbf{x} = \begin{bmatrix} \text{面积} \\ \text{房间数} \\ \text{楼层} \end{bmatrix} = \begin{bmatrix} 120 \\ 3 \\ 5 \end{bmatrix} x= 面积房间数楼层 = 12035

在机器学习中,样本就是向量,特征数决定了向量的维度。

矩阵(Matrix)

多个样本堆叠成矩阵,例如一个包含 m 个样本、每个样本 n 个特征的数据集可以表示为: X = x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \end{bmatrix} X= x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn

其中,每一行是一个样本,每一列是一个特征。


向量运算与几何意义

内积(Dot Product)

两个向量 a , b ∈ R n \mathbf{a}, \mathbf{b} \in \mathbb{R}^n a,b∈Rn 的内积定义为: a ⋅ b = ∑ i = 1 n a i b i = a T b \mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^n a_i b_i = \mathbf{a}^T \mathbf{b} a⋅b=∑i=1naibi=aTb

几何意义上,内积表示两个向量的相似度: a ⋅ b = ∥ a ∥ ∥ b ∥ cos ⁡ θ \mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\|\|\mathbf{b}\|\cos\theta a⋅b=∥a∥∥b∥cosθ

这在推荐系统(如计算用户与物品的相似度)和分类(如支持向量机的超平面)中至关重要。

范数(Norm)

向量的长度由范数衡量。常见的有:

  • L2 范数 x ∥ 2 = ∑ i = 1 n x i 2 \mathbf{x}\|2 = \sqrt{\sum{i=1}^n x_i^2} x∥2=∑i=1nxi2
  • L1 范数 x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \mathbf{x}\|1 = \sum{i=1}^n |x_i| x∥1=∑i=1n∣xi∣

在正则化中,L1 范数鼓励稀疏解(特征选择),L2 范数则抑制过大权重(防止过拟合)。


矩阵运算与模型计算

矩阵乘法

如果输入样本为 x ∈ R n \mathbf{x} \in \mathbb{R}^n x∈Rn,权重矩阵W为 R m × n \mathbb{R}^{m \times n} Rm×n ,则输出为: y = W x \mathbf{y} = W \mathbf{x} y=Wx

这就是神经网络中 一层全连接层 的计算方式。

转置与对称矩阵

  • 矩阵转置 A T A^T AT 在内积与相似度计算中常见。
  • 对称矩阵(如协方差矩阵)在 PCA、特征值分解中起核心作用。

在机器学习中,数据通常是高维的,直接处理既费计算又不易理解。特征值分解(Eigen Decomposition)和 奇异值分解 SVD 提供了强大的工具,让我们能够发现数据的"核心方向",实现降维、特征提取和压缩。

特征值分解与奇异值分解(SVD)

特征值分解

给定一个方阵 R n × n \mathbb{R}^{n \times n} Rn×n,如果存在标量 λ \lambda λ 和非零向量 v \mathbf{v} v,使得: v = λ v \mathbf{v} = \lambda \mathbf{v} v=λv,则称 λ \lambda λ 为 特征值 v \mathbf{v} v为 特征向量

考虑一个简单的 2x2 矩阵: A = 2 1 1 2 A = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix} A=2112

求解特征值和特征向量: det ⁡ ( A − λ I ) = 0 ⇒ ∣ 2 − λ 1 1 2 − λ ∣ = 0 \det(A - \lambda I) = 0 \quad \Rightarrow \quad \begin{vmatrix} 2-\lambda & 1 \\ 1 & 2-\lambda \end{vmatrix} = 0 det(A−λI)=0⇒ 2−λ112−λ =0

得到特征值 λ 1 = 3 , λ 2 = 1 \lambda_1 = 3, \lambda_2 = 1 λ1=3,λ2=1,对应特征向量分别为: v 1 = 1 1 , v 2 = 1 − 1 \mathbf{v}_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix}, \quad \mathbf{v}_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix} v1=11,v2=1−1

矩阵 A 作用在 v1 上,方向不变,只拉伸了 3 倍;作用在 v2 上,方向不变,只拉伸了 1 倍。

特征值分解的应用场景包括:

  • PCA 降维 :在 PCA(主成分分析)中,我们对数据的协方差矩阵 1 m X T X \frac{1}{m} X^T X m1XTX 进行特征值分解,得到最大方差方向上的主成分。
  • 谱聚类:用 Laplacian 矩阵特征向量划分数据
  • 稳态分析:马尔可夫链转移矩阵的特征值分析收敛性

奇异值分解(SVD)

对于任意矩阵 X ∈ R m × n X \in \mathbb{R}^{m \times n} X∈Rm×n,可以分解为: X = U Σ V T X = U \Sigma V^T X=UΣVT

其中:

  • U ∈ R m × m U \in \mathbb{R}^{m \times m} U∈Rm×m 和 V ∈ R n × n V \in \mathbb{R}^{n \times n} V∈Rn×n 是正交矩阵
  • Σ ∈ R m × n \Sigma \in \mathbb{R}^{m \times n} Σ∈Rm×n是对角矩阵,包含奇异值 σ 1 ≥ σ 2 ≥ ⋯ ≥ 0 \sigma_1 \ge \sigma_2 \ge \dots \ge 0 σ1≥σ2≥⋯≥0

奇异值 表示矩阵在各个方向上的"能量大小"。SVD 可用于非 方阵,比特征值分解更通用。

SVD 在降维、信息检索(LSA)、推荐系统(矩阵分解)中应用广泛。

考虑矩阵 X = 3 1 1 3 X = \begin{bmatrix} 3 & 1 \\ 1 & 3 \\ \end{bmatrix} X=3113

SVD 分解结果近似为: U = 1 2 − 1 2 1 2 1 2 , Σ = 4 0 0 2 , V T = 1 2 1 2 − 1 2 1 2 U = \begin{bmatrix} \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{bmatrix}, \quad \Sigma = \begin{bmatrix} 4 & 0 \\ 0 & 2 \end{bmatrix}, \quad V^T = \begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{bmatrix} U=2 12 1−2 12 1,Σ=4002,VT=2 1−2 12 12 1

矩阵 X 可以看作先旋转( V T V^T VT),再拉伸( Σ \Sigma Σ),再旋转(U),得到原矩阵。保留最大奇异值对应的方向,就能得到数据最重要的信息。

奇异值分解的应用场景包括:

  • 推荐系统:矩阵分解找到用户和物品的潜在因子
  • 图像压缩:保留主奇异值重建近似图像
  • 潜在语义分析(LSA) :从文档-词矩阵提取潜在语义结构

线性代数与机器学习模型

线性回归

预测公式可以写作: y ^ = X w \hat{\mathbf{y}} = X \mathbf{w} y^=Xw

其中, w \mathbf{w} w 是回归系数。利用最小二乘法,参数解为: w = ( X T X ) − 1 X T y \mathbf{w} = (X^T X)^{-1} X^T \mathbf{y} w=(XTX)−1XTy

这是线性代数在回归分析中的直接应用。

支持向量机(SVM)

SVM 本质上是寻找一个超平面 w T x + b = 0 \mathbf{w}^T \mathbf{x} + b = 0 wTx+b=0,最大化数据点与超平面的几何间隔。这是典型的线性代数与凸优化结合的例子。

神经网络

神经网络中,每一层的计算都是矩阵运算: h ( l ) = f ( W ( l ) h ( l − 1 ) + b ( l ) ) \mathbf{h}^{(l)} = f(W^{(l)} \mathbf{h}^{(l-1)} + \mathbf{b}^{(l)}) h(l)=f(W(l)h(l−1)+b(l))

其中 f ( ⋅ ) f(\cdot) f(⋅)是激活函数。可见整个网络就是一连串的线性变换+非线性映射。

最新的文章都在公众号aicoting更新,别忘记关注哦!!!

相关推荐
Dillon Dong2 小时前
【风电控制】TI TMS320F28379D 双CPU架构解析与任务分布设计
嵌入式硬件·算法·变流器·风电控制
小羊在睡觉8 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
3DVisionary8 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解
人工智能·算法·制造·蓝光三维扫描·医疗制造·三维检测·义齿检测
好评笔记8 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_468466858 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
_日拱一卒9 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
珂朵莉MM9 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索
人工智能·算法
Omics Pro10 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
voidmort10 小时前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
人道领域11 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法