【数学】主成分分析(PCA)的详细深度推导过程
Based on Deep Learning (2017, MIT) book.
本文基于Deep Learning (2017, MIT),推导过程补全了所涉及的知识及书中推导过程中跳跃和省略的部分。
blog
1 概述
现代数据集,如网络索引、高分辨率图像、气象学、实验测量等,通常包含高维特征,高纬度的数据可能不清晰、冗余,甚至具有误导性。数据可视化和解释变量之间的关系很困难,而使用这种高维数据训练的神经网络模型往往容易出现过拟合(维度诅咒)。
主成分分析(PCA)是一种简单而强大的无监督机器学习技术,用于数据降维。它旨在从大型变量集中提取一个较小的数据集,同时尽可能保留原始信息和特征(有损压缩)。PCA有助于识别数据集中最显著和有意义的特征,使数据易于可视化。应用场景包括:统计学、去噪和为机器学习算法预处理数据。
- 主成分是什么?
主成分是构建为原始变量的线性组合的新变量。这些新变量是不相关的,并且包含原始数据中大部分的信息。
2 背景数学知识
这些知识对下一节的推导很重要。
- 正交向量和矩阵:
- 如果两个向量垂直,则它们是正交的。即两个向量的点积为零。
- 正交矩阵是一个方阵,其行和列是相互正交的单位向量;每两行和两列的点积为零,每一行和每一列的大小为1。
- 如果
或 ,则 是正交矩阵。 - 在机器人学中,旋转矩阵通常是一个
的正交矩阵,在空间变换中它会旋转向量的方向但保持原始向量的大小。
- 矩阵、向量乘法规则:
,两个矩阵的乘积的转置。 ,两个结果都是标量,标量的转置是相同的。 ,乘法是可分配的。 ,乘法一般不满足交换律。 ,乘法满足结合律。
- 对称矩阵:
, 是对称矩阵。 是对称矩阵,因为 。
- 向量导数规则(
是常量矩阵): - 矩阵迹规则:
,其中 是 的特征值。- 迹在循环移位下不变:
- 向量和矩阵范数:
- 向量的
范数,也称为欧几里得范数: 。 - 通常使用平方的
范数来衡量向量的大小,可以计算为 。 - Frobenius范数用于衡量矩阵的大小:
- Frobenius范数是所有矩阵元素的绝对平方和的平方根。
- Frobenius范数是矩阵版本的欧几里得范数。
- 向量的
- 特征值分解和特征值:
- 方阵
的特征向量是一个非零向量 ,使得 的乘法仅改变 的比例: 。 是特征值, 是特征向量。 - 假设矩阵
有 个线性无关的特征向量 ,我们可以将所有特征向量连接起来形成一个矩阵 ,并通过连接所有特征值 形成一个向量,那么 的特征分解是 - 每个实对称矩阵都可以分解为
,其中 是由 的特征向量组成的正交矩阵, (读作'lambda')是一个对角矩阵。
- 方阵
- 拉格朗日乘数法:
- 拉格朗日乘数法是一种在方程约束下寻找函数局部最大值和最小值的策略。
- 一般形式:
, 称为拉格朗日乘子。
3 详细PCA推导
需求描述
我们有
需要对输入数据进行有损压缩,将这些点编码以表示它们的较低维度版本。换句话说,我们想要找到编码向量
解码的
解码矩阵
我们选择使用矩阵
衡量重构的表现
在继续之前,我们需要弄清楚如何生成最优的编码点
向量的
由分配率:
由于
为了找到使上述函数最小化的
然后用
由于
目标函数
现在目标函数是
根据向量导数规则:
找到编码矩阵
所以编码器函数是
因此编码矩阵
从考虑
标量等于其自身的转置:
使用矩阵形式表示
令
矩阵中的一行的转置:
由于
所以我们知道
利用矩阵迹规则简化 Frobenius 范数部分如下:
由于
由于迹是循环置换不变的,将方程重写为:
由于
寻找最优的
现在的问题是找到最优的
使用拉格朗日乘子法来将问题描述为关于
对
令导数等于0,
这个方程是典型的矩阵特征值分解形式,
利用上述结果,让我们重新审视原方程:
现在问题已经变的非常清楚了,
这个推导是针对
4 总结
我们有一个数据集,包含
令
主成分分析(PCA)编码函数表示为
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~