首页 > 其他分享 >主成分分析(PCA)模型学习笔记(一)

主成分分析(PCA)模型学习笔记(一)

时间:2023-08-09 18:01:20浏览次数:45  
标签:begin PCA bar 模型 笔记 pmatrix end aligned sum

目录

为什么使用PCA

从过拟合说起

在数据量小、数据维度高,模型较为复杂时,很容易产生过拟合。训练误差小而泛化误差较大被称为过拟合,而我们所追求的是泛化误差较小,为了解决过拟合问题,一般有以下的解决方案,一是最直接有效的方法,增加数据量,但是增加数据量成本一般较高,二是进行正则化,规范参数空间防止过拟合,三是进行降维。

  • 解决过拟合问题的方法
    • 增加数据量/数据扩增
    • 正则化,如在损失函数中加入L1范数和L2范数
    • 降维
      • 特征选择:过滤法、包装法和嵌入法
      • 线性降维:LDA、PCA
      • 非线性降维 :流形

维度灾难

维度灾难,一般指在涉及到向量的计算的问题中,随着维数的增加,计算量呈指数倍增长的一种现象。在机器学习中,当数据的维度增加时,对于数据的需求量将会几何式增长。

下面尝试从几何的角度去理解维度灾难。在二维空间中,有一个边长为1的正方形,正方形有一个内切圆,相似的,在三维空间中,有一个边长为1的正方体,正方体有一个内接球,以此类推,超立方体和超球体的体积在各个维度中如下表所示

维度 超立方体体积 超球体体积
2 1 \(k_2\pi(0.5)^2\)
3 1 \(k_3\pi(0.5)^3\)
4 1 \(k_4\pi(0.5)^4\)
…… …… ……
n 1 \(k_n\pi(0.5)^n\)

其中\(k_i,i = 1,2,……,n\)为常数,当n趋向于无穷时,超球体的体积将会趋近于0,也就是说,在高维空间中,超球体的内部是“空的”,大部分数据都分布在超球体和超立方体之间的“边边角角”中,这也就造成了数据样本的稀疏性,同时也会导致样本的空间分布不均匀,进而导致难以进行分类。从几何的角度我们会发现,很多我们在低维空间中的直觉在高维空间中是不work的。因此,面对特别高维的数据时,如果数据量不够大,我们会需要进行降维。

模型定义

PCA的两种推导

可以将PCA模型总结为“一个中心,两个基本点”

  • 一个中心:原始特征空间的重构。PCA的核心是对特征空间进行重构,将原本相关的特征转化为互相正交。
  • 两个基本点
    • 最大投影方差:样本点在所求超平面上的投影尽可能分开
    • 最小重构距离:样本点到所求超平面的距离都足够近

基于两种性质,能够得到主成分分析的两种等价推导。

数据准备

对于数据集\(\{x_i,i=1,2...n\}\),\(x_i\)为p维向量,定义矩阵

\[X = (x_1,x_2,...,x_n)^T \]

定义样本均值矩阵

\[\begin{aligned} \bar{x}&=\frac{1}{n}\sum x_i\\ &=\frac{1}{n}\begin{pmatrix}x_1&x_2&...&x_n\end{pmatrix}\begin{pmatrix}1&1&...&1\end{pmatrix}^T\\ &=\frac{1}{n}X^T1_n \end{aligned} \]

其中\(1_n=\begin{pmatrix}1&1&...&1\end{pmatrix}^T\)

定义样本协方差矩阵

\[\begin{aligned} S=& \frac{1}{n}(x_i-\bar{x})(x_i-\bar{x})^T\\ &= \frac{1}{n} \begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix} \begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix}^T \end{aligned} \]

其中

\[\begin{aligned} &\begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix}\\ &=\begin{pmatrix} x_1&x_2&...&x_n \end{pmatrix}- \begin{pmatrix} \bar{x}&\bar{x}&...&\bar{x} \end{pmatrix} \\ &=X^T-\bar{x}\begin{pmatrix}1&1&...&1\end{pmatrix}\\ &= X^T-\frac{1}{n}X^T1_n1_n^T\\ &=X^T(I_n-\frac{1}{n}1_n1_n^T) \end{aligned} \]

则可知

\[\begin{aligned} S &= \frac{1}{n}X^T(I_n-\frac{1}{n}1_n1_n^T)(I_n-\frac{1}{n}1_n1_n^T)^TX\\ &=\frac{1}{n}X^TH_nH_n^TX \end{aligned} \]

其中\(H_n = I_n-\frac{1}{n}1_n1_n^T\)被称为中心矩阵,有如下性质

\[\begin{aligned} H_n = H_n^T\\ H_n^2=H_n \end{aligned} \]

则$$S = \frac{1}{n}X^TH_nX$$

最大投影方差

请添加图片描述
从最大投影方差角度去考虑,也即是说样本点在超平面上的投影应当尽可能分开,则应当使投影后样本方差最大化。如图,样本点投影到y_1方向后样本会较为分散,y_1方向就是我们所需要寻找的“主成分”。
记\(w\)为我们所要求的主成分方向,由于我们不需要考虑其长度,故可以先规定\(w^Tw=1\),则中心化后的样本点\(x_i\)在\(w\)上的投影为\((x_i-\bar{x})^Tw\),则投影点的样本协方差矩阵为

\[\begin{aligned} J &= \frac{1}{n}\sum_{i=1}^{n}{[(x_i-\bar{x})^Tw]^2}\\ &=\frac{1}{n}\sum_{i=1}^{n}w^T(x_i-\bar{x})(x_i-\bar{x})^Tw\\ &=\frac{1}{n}w^T(\sum_{i=1}^{n}(x_i-\bar{x})(x_i-\bar{x})^T)w\\ &=\frac{1}{n}w^TSw \end{aligned} \]

则问题转化为求

\[\begin{aligned} &\hat{w} = \mathop{\mathrm{argmax}}\limits_{w}{w^TSw}\\ &\text{ s.t. } w^Tw = 1 \end{aligned} \]

使用拉格朗日乘子法求解该问题

\[\begin{aligned} L(w,\lambda) = w^TSw + \lambda (1-w^Tw)\\ \frac{\partial L}{\partial w}= 2Sw-2\lambda w=0\\ Sw = \lambda w \end{aligned} \]

观察最后得到的式子后我们不难发现,所求的\(w\)实际上就是样本协方差矩阵的特征向量,而\(\lambda\)则是对应的特征值而对该式子左右各左乘一个\(w^T\)后式子变成了

\[\begin{aligned} w^TSw& = \lambda w^Tw\\ J&=\lambda \end{aligned} \]

也即是说对于越大的特征值对应的特征向量,投影点样本协方差就越大,则可以根据特征值进行排序,确定主成分的顺位,保留排位靠前的主成分,进而实现降维。

最小重构距离

为表达方便,下面直接使用已经中心化后的数据,也即\(\sum x_i=0\)(我太懒了),记\(W = \begin{pmatrix}w_1&w_2&...&w_d\end{pmatrix}\),其中\(w_i\)为重构特征空间后的坐标轴向量,且\(w_i^Tw_i = 1\)则对于每一个样本点,可以使用新坐标系进行重构,也即\(x_i = \sum_{k=1}^{d}{(x_i^Tw_k)w_k}\),舍弃一些特征,只取\(p\)个特征则可得\(\hat{x_i} = \sum_{k=1}^{p}{(x_i^Tw_k)w_k}\),则重构距离可以表示为

\[\begin{aligned} J &= \sum_{i = 1}^n\left \| x_i-\hat{x_i})\right \|^2 \\ &=\sum_{i = 1}^n\left \|\sum_{k=1}^{d}{(x_i^Tw_k)w_k}-\sum_{k=1}^{p}{(x_i^Tw_k)w_k}\right \|^2\\ &=\sum_{i = 1}^n\left \|\sum_{k=p+1}^{d}{(x_i^Tw_k)w_k}\right \|^2\\ \end{aligned} \]

对于\(\left \|\sum_{k=p+1}^{d}{(x_i^Tw_k)w_k}\right \|\),该式子可视为在以\(w_{p+1},w_{p+1},...,w_{d}\)为基向量的坐标系中求向量\(\begin{pmatrix}x_i^Tw_{p+1}&x_i^Tw_{p+2}&...&x_i^Tw_{n}\end{pmatrix}\)的模长,则式子可改写为

\[\begin{aligned} J &= \sum_{i = 1}^n\sum_{k=p+1}^{d}(x_i^Tw_k)^2\\ &=\sum_{k=p+1}^{d}\sum_{i = 1}^nw_k^Tx_ix_i^Tw\\ &=n\sum_{k=p+1}^{d}w_k^TSw \end{aligned} \]

同样使用拉格朗日乘子法进行求解,将会得到与最大投影方差角度一样的结果

小结

PCA仅仅只需要保留\(W^*\)(大小排位靠前的特征值所对应的特征向量组成的矩阵)与样本均值向量(用于中心化),即可通过简单的矩阵减法和乘法将新样本投影到低维空间中去,尽管因舍弃了某些特征,导致低维空间与高维空间必然有所不同,会舍弃掉一部分信息,但是这是必要的,一方面,舍弃这部分信息后将使得样本信息密度增大,另一方面,数据受到噪音影响是,最小的特征值所对应的特征向量往往与噪音有关,将他们舍弃能够一定程度上起到去噪的效果。

标签:begin,PCA,bar,模型,笔记,pmatrix,end,aligned,sum
From: https://www.cnblogs.com/longwm/p/17617578.html

相关文章

  • 线性判别分析(LDA)模型笔记
    目录模型概况模型定义模型求解模型概况线性判别方法(LinearDiscriminationAnalysis)是一种经典的线性学些方法,最早由Fisher提出,也叫“Fisher判别分析”。LDA的思想非常朴素,也即是,将样例投影到一条直线上使得同类样例的投影点尽可能近,异类样例的投影点尽可能远,总结六个字就是......
  • avue-crud属性配置项参数笔记分享
     Avue是一个基于Element-plus低代码前端框架,它使用JSON配置来生成页面,可以减少页面开发工作量,极大提升效率;虽然Avue官网上面都有这些配置说明,但是如果刚开始接触不熟悉框架的话需要很久才找到自己需要的参数配置,为了方便自己今后查找使用,现将一些开发中常用的配置梳理在下......
  • TensorRT 模型加密杂谈
    在大多数项目交付场景中,经常需要对部署模型进行加密。模型加密一方面可以防止泄密,一方面可以便于模型跟踪管理,防止混淆。由于博主使用的部署模型多为TensorRT格式,这里以TensorRT模型为例,讲解如何对模型进行加密、解密以及推理加密模型。加密算法的选择和支持的库Crypto++是C/C......
  • Rocky9 编译安装 Nginx Mariadb Asp.net Core6 (实测 笔记)
    引用 https://www.cnblogs.com/vicowong/p/16974219.html一、查看硬件信息1、查看物理cpu个数、核心数量、线程数grep'physicalid'/proc/cpuinfo|sort-u|wc-lgrep'coreid'/proc/cpuinfo|sort-u|wc-lgrep'processor'/proc/cpuinfo|sort-u|wc......
  • python正则表达式笔记1
    最近工作中经常用到正则表达式处理数据,慢慢发现了正则表达式的强大功能,尤其在数据处理工作中,记录下来分享给大家。一、正则表达式语法介绍正则表达式(或RE)指定了一组与之匹配的字符串;模块内的函数可以检查某个字符串是否与给定的正则表达式匹配(或者正则表达式是否匹配到字符串,......
  • 基于Pair-wise和CrossEncoder训练单塔模型
    本文分享自华为云社区《语义检索系统排序模块:基于ERNIE-Gram的Pair-wise和基于RocketQA的CrossEncoder训练单塔模型》,作者:汀丶。文本匹配任务数据每一个样本通常由两个文本组成(query,title)。类别形式为0或1,0表示query与title不匹配;1表示匹配。基于单塔Point-wise范......
  • 产业共振 智能涌现!8月16日飞桨携手生态伙伴带来大模型企业应用创新实践
    当前,人工智能已经成为新一轮科技革命和产业变革的重要驱动力量,基于强算法、大算力和大数据的大模型成为人工智能发展的主流方向。AI大模型已经从拼参数发展到拼应用,进入大规模可复制的产业落地阶段。飞桨深度学习平台和文心大模型一直致力于发挥算法模型基础技术优势,助力广大企业将......
  • Element-Plus 学习笔记一
    这几天在学vue3,用Element-plus加vue3搭了个框架,在这里记录一下项目搭建中遇到的问题。 1、使用Element-plus的icon图标,显示不出来  首先,用命令行中安装 Element-plus的图标:npminstall@element-plus/icons-vue--save  然后,在main.js中进行全局......
  • 三维模型OSGB格式轻量化压缩必要性分析
    三维模型OSGB格式轻量化压缩必要性分析三维模型是计算机图形学和视觉效果等领域的重要应用之一。然而,由于三维模型通常包含大量的几何信息、纹理信息和其他元素,导致其占用的存储空间和计算资源非常巨大。为了提高三维模型的处理效率和性能,轻量化和压缩成为不可或缺的技术手段。......
  • java笔记_12_自定义注解
    1、@interface用于声明注解,参数只用八种基本数据类型和四种数据类型(基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String,Enum,Class,annotations),如果只有一个参数成员,最好把参数名称设为"value"2、@Target说明了Annotation所修饰的对象范围,......