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

62 阅读4分钟

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

所有相关源码示例、流程图、模型配置与知识库构建技巧,我也将持续更新在Github:AIHub,欢迎关注收藏!

向量与矩阵

向量(Vector)

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

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

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

矩阵(Matrix)

多个样本堆叠成矩阵,例如一个包含 m 个样本、每个样本 n 个特征的数据集可以表示为:X=[x11x12x1nx21x22x2nxm1xm2xmn]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}

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


向量运算与几何意义

内积(Dot Product)

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

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

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

范数(Norm)

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

  • L2 范数x2=i=1nxi2\mathbf{x}\|_2 = \sqrt{\sum_{i=1}^n x_i^2}
  • L1 范数x1=i=1nxi\mathbf{x}\|_1 = \sum_{i=1}^n |x_i|

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


矩阵运算与模型计算

矩阵乘法

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

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

转置与对称矩阵

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

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

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

特征值分解

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

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

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

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

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

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

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

奇异值分解(SVD)

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

其中:

  • URm×mU \in \mathbb{R}^{m \times m}VRn×nV \in \mathbb{R}^{n \times n} 是正交矩阵
  • ΣRm×n\Sigma \in \mathbb{R}^{m \times n}是对角矩阵,包含奇异值 σ1σ20\sigma_1 \ge \sigma_2 \ge \dots \ge 0

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

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

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

SVD 分解结果近似为:U=[12121212],Σ=[4002],VT=[12121212]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}

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

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

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

线性代数与机器学习模型

线性回归

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

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

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

支持向量机(SVM)

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

神经网络

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

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

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