第4章 线性代数与矩阵运算

非常好,这一章是很多人“入门机器学习”时最模糊、但“深入机器学习”后才恍然大悟的部分。

几乎所有的算法——从线性回归到神经网络,从聚类到推荐系统——底层都离不开 线性代数

下面我会以「直观解释 + 数学形式 + 实际应用」的方式来系统讲解。

4.1 向量空间与特征表示

🧩 向量(Vector)

在机器学习中,向量 = 一个样本的特征集合。 例如,一个房屋样本: [ x = [\text{面积}, \text{卧室数}, \text{楼层}, \text{城区编码}] ] 可写作一个 4 维向量: [ x = [120, 3, 2, 5] ]

向量是机器学习中最基础的数据单位。

  • 每个维度表示一个特征(feature)
  • 整个向量表示样本在特征空间中的位置

🧠 向量空间(Vector Space)

一组向量加上线性运算(加法、数乘)就构成一个向量空间。

例如,二维空间的所有点 ((x_1, x_2)) 构成一个二维向量空间。 在机器学习中,这种空间常称为「特征空间(Feature Space)」。


📈 特征表示(Feature Representation)

向量的几何意义非常重要:

  • 每个样本是一个点;
  • 每个维度是一个特征轴;
  • 模型的“学习”其实就是在高维空间中寻找“划分这些点的超平面”。

例如,逻辑回归学习的其实就是一个超平面: [ w_1x_1 + w_2x_2 + b = 0 ] 它把空间分成“正类”和“负类”。


🧮 向量运算与几何意义

运算 数学形式 含义                
点积(Dot Product) ( a \cdot b = \sum_i a_i b_i ) 衡量相似度(方向是否一致)                
范数(Norm) (   a   = \sqrt{\sum_i a_i^2} ) 向量长度        
余弦相似度 ( \cos\theta = \frac{a \cdot b}{   a   ,   b   } ) 两个样本相似度
线性组合 ( c = \alpha a + \beta b ) 新特征的组合方式                

💡 在推荐系统中,“用户向量”和“商品向量”的点积就代表偏好相似度(矩阵分解模型的核心)。


4.2 矩阵运算在学习算法中的作用

🧩 矩阵的定义

矩阵就是一组向量的集合。 如果每个样本是一个向量,那么所有样本组成的数据集就是一个矩阵:

[ X = \begin{bmatrix} x_{11} & x_{12} & \dots & x_{1d}
x_{21} & x_{22} & \dots & x_{2d}
\vdots & \vdots & \ddots & \vdots
x_{n1} & x_{n2} & \dots & x_{nd} \end{bmatrix} ]

其中:

  • ( n ):样本数
  • ( d ):特征维度

这是所有算法的起点。


🧮 矩阵乘法与模型训练

矩阵乘法背后隐藏着「批量预测」与「特征加权」。

例如线性回归: [ y = Xw + b ]

  • ( X ):输入数据矩阵(n×d)
  • ( w ):参数权重向量(d×1)
  • ( y ):预测结果(n×1)

矩阵乘法的几何意义:

把原始数据投影到“权重方向”,得到模型输出。

在神经网络中,权重层的计算其实就是不断地执行 ( XW + b ) 的线性变换,只是叠了很多层。


📘 矩阵的核心操作及意义

操作 含义 实例
转置((A^T)) 行列互换 用于求相似度或协方差
逆矩阵((A^{-1})) 线性方程求解 线性回归正规方程法
迹(Trace) 对角线和 协方差矩阵的方差和
行列式(Determinant) 矩阵体积(可逆性) PCA、线性无关性判断

💡 在优化算法中,矩阵求导(Jacobian/Hessian)决定了梯度下降的方向和收敛速度。


4.3 特征值与奇异值分解

🧠 特征值与特征向量(Eigenvalue & Eigenvector)

定义: [ A v = \lambda v ]

表示:矩阵 ( A ) 作用在向量 ( v ) 上,只改变它的长度(λ倍),不改变方向。

  • ( v ):特征向量(方向不变的向量)
  • ( \lambda ):特征值(方向上的伸缩比例)

📈 几何意义: 矩阵(线性变换)会把空间拉伸/压缩,而特征向量就是那些「拉伸方向不变」的轴。

📘 应用:

  • PCA 降维(找出方差最大方向)
  • 图的谱聚类(Graph Laplacian 特征值分解)
  • 动态系统稳定性分析(通过特征值判断系统是否收敛)

🔹 奇异值分解(SVD, Singular Value Decomposition)

SVD 是矩阵分解中最重要的一个: [ A = U \Sigma V^T ]

其中:

  • ( U ):左奇异向量(样本空间)
  • ( V ):右奇异向量(特征空间)
  • ( \Sigma ):奇异值(特征的重要性)

💡 可以理解为:

把任意矩阵分解成“旋转 + 缩放 + 再旋转”。

📘 应用举例:

  • 信息检索中的 LSA(潜在语义分析)
  • 图像压缩(保留前几个奇异值即可)
  • 推荐系统中的 矩阵分解(SVD)
  • 降维与噪声过滤(保留主要成分)

4.4 PCA 的数学推导与降维本质

🎯 PCA(主成分分析)的目标

找到一组新的坐标轴,使数据在这些轴上的投影方差最大,同时维度尽量少。

换句话说:

  • 我们希望在保留最多信息的同时,去掉冗余维度。

🧮 PCA 的数学推导

给定样本矩阵 ( X )(n×d),假设已中心化(均值为0):

  1. 计算协方差矩阵: [ C = \frac{1}{n} X^T X ]

  2. 对 ( C ) 做特征值分解: [ C v_i = \lambda_i v_i ] 得到特征向量 ( v_i ) 与特征值 ( \lambda_i )。

  3. 选择前 k 个最大特征值对应的向量组成矩阵 ( V_k )。

  4. 降维后的数据为: [ X’ = X V_k ]

📘 几何意义:

  • 特征向量 = 数据最大方差方向
  • 特征值 = 每个方向的信息量
  • 投影后 = 把高维数据“旋转”到信息最集中的轴上

📈 应用举例

应用场景 说明
图像压缩 保留前 50 个主成分即可恢复主要轮廓
降噪 去掉小特征值对应的噪声维度
可视化 将高维数据降到 2D / 3D
特征提取 作为深度学习前的预处理

🧠 PCA 与 SVD 的关系

事实上,PCA 可以用 SVD 实现:

[ X = U \Sigma V^T ]

则:

  • 协方差矩阵 ( C = X^T X = V \Sigma^2 V^T )
  • 主成分方向就是 ( V ) 的列向量

🌍 小结

概念 本质作用 机器学习中的角色
向量空间 表示样本与特征 特征表示、语义嵌入
矩阵运算 批量计算与变换 模型训练、线性预测
特征值分解 方向与方差信息 稳定性、PCA、聚类
奇异值分解 通用分解工具 推荐系统、压缩、降噪
PCA 信息最大化投影 降维、特征提取、可视化