机器学习数学公式推导之降维

文章目录

  • 降维
    • 线性降维-主成分分析 PCA
      • 损失函数
      • SVD 与 PCoA
      • SVD 的基本形式
      • SVD 的计算
      • p-PCA
    • 小结

P22 (系列五) 降维1-背景 

本文参考 B站UP: shuhuai008 🌹🌹

降维

我们知道,解决过拟合的问题除了正则化和添加数据之外,降维就是最好的方法。降维的思路来源于维度灾难的问题,我们知道 n n n 维球的体积为:
C R n CR^n CRn
那么在球体积与边长为 2 R 2R 2R 的超立方体比值为:
lim ⁡ n → 0 C R n 2 n R n = 0 \lim\limits_{n\rightarrow0}\frac{CR^n}{2^nR^n}=0 n0lim2nRnCRn=0

这就是所谓的维度灾难,在高维数据中,主要样本都分布在立方体的边缘,所以数据集更加稀疏

降维的算法分为:

  1. 直接降维,特征选择
  2. 线性降维,PCA,MDS等
  3. 分线性,流形包括 Isomap,LLE 等
P23  (系列五)  降维2-样本均值 & 样本方差矩阵

D a t a : X = { x 1 , x 2 … … x N } N x p T = [ x 1 T x 2 T . . . x N T ] = [ x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋱ ⋮ x n 1 ⋯ x n p ] N x p X i 属于 R P i = 1 , 2 … … N Data: X= \left\{ {x_1,x_2……x_N}\right\}_{Nxp}^{T}= \begin{bmatrix} x_1^T \\ x_2^T \\ ... \\ x_N^T \end{bmatrix} =\begin{bmatrix} x_{11} & x_{12} \cdots & x_{1p} \\ x_{21} & x_{22} \cdots & x_{2p}\\ \vdots & \ddots & \vdots \\ x_{n1} & \cdots & x_{np} \end{bmatrix}_{N x p}\\ X_i属于\mathbb{R}^P \\ i=1,2……N Data:X={x1,x2……xN}NxpT= x1Tx2T...xNT = x11x21xn1x12x22x1px2pxnp NxpXi属于RPi=1,2……N

为了方便,我们首先将协方差矩阵(数据集)写成中心化的形式:
S = 1 N ∑ i = 1 N ( x i − x ‾ ) ( x i − x ‾ ) T = 1 N ( x 1 − x ‾ , x 2 − x ‾ , ⋯ , x N − x ‾ ) ( x 1 − x ‾ , x 2 − x ‾ , ⋯ , x N − x ‾ ) T = 1 N ( X T − 1 N X T I N 1 I N 1 T ) ( X T − 1 N X T I N 1 I N 1 T ) T = 1 N X T ( E N − 1 N I N 1 I 1 N ) ( E N − 1 N I N 1 I 1 N ) T X = 1 N X T H N H N T X = 1 N X T H N H N X = 1 N X T H X \begin{align}S&=\frac{1}{N}\sum\limits_{i=1}^N(x_i-\overline{x})(x_i-\overline{x})^T\nonumber\\ &=\frac{1}{N}(x_1-\overline{x},x_2-\overline{x},\cdots,x_N-\overline{x})(x_1-\overline{x},x_2-\overline{x},\cdots,x_N-\overline{x})^T\nonumber\\ &=\frac{1}{N}(X^T-\frac{1}{N}X^T\mathbb{I}_{N1}\mathbb{I}_{N1}^T)(X^T-\frac{1}{N}X^T\mathbb{I}_{N1}\mathbb{I}_{N1}^T)^T\nonumber\\ &=\frac{1}{N}X^T(E_N-\frac{1}{N}\mathbb{I}_{N1}\mathbb{I}_{1N})(E_N-\frac{1}{N}\mathbb{I}_{N1}\mathbb{I}_{1N})^TX\nonumber\\ &=\frac{1}{N}X^TH_NH_N^TX\nonumber\\ &=\frac{1}{N}X^TH_NH_NX=\frac{1}{N}X^THX \end{align} S=N1i=1N(xix)(xix)T=N1(x1x,x2x,,xNx)(x1x,x2x,,xNx)T=N1(XTN1XTIN1IN1T)(XTN1XTIN1IN1T)T=N1XT(ENN1IN1I1N)(ENN1IN1I1N)TX=N1XTHNHNTX=N1XTHNHNX=N1XTHX
这个式子利用了中心矩阵 $ H$​的对称性,这也是一个投影矩阵。

在这里插入图片描述

P24(系列五) 降维3-PCA-最大投影方差

线性降维-主成分分析 PCA

M e a n : x ‾ = 1 N ∑ i = 1 N x i = 1 N X T I N C o v a r i a n c e : S = 1 N ∑ i = 1 N ( x i − x ‾ ) ( x i − x ‾ ) T = 1 N X T H X Mean: \overline{x}=\frac{1}{N}\sum\limits_{i=1}^{N}x_i= \frac{1}{N}X^T\mathbb{I}_N \\ Covariance :S=\frac{1}{N}\sum\limits_{i=1}^{N}(x_i-\overline{x})(x_i-\overline{x})^T\nonumber\\=\frac{1}{N}X^THX Mean:x=N1i=1Nxi=N1XTINCovariance:S=N1i=1N(xix)(xix)T=N1XTHX

一个中心:原始特征重构

两个基本点:最大投影方差,最小重构距离

  • x在u1上的投影。

在这里插入图片描述

损失函数

主成分分析中,我们的基本想法是将所有数据投影到一个字空间中,从而达到降维的目标,为了寻找这个子空间,我们基本想法是:

  1. 所有数据在子空间中更为分散
  2. 损失的信息最小,即:在补空间的分量少
  3. 指向量维度改变,而是只选取u1-uq这q个向量作为基,删掉uq+1到 u p u_p up​,这样这q个p维向量所张成的线性空间维度
  4. 关于重构向量和原始向量的维度问题
P25 (系列五)降维4-PCA-最小重构代价

原来的数据很有可能各个维度之间是相关的,于是我们希望找到一组 p p p 个新的线性无关的单位基 u i u_i ui,降维就是取其中的 q q q 个基。于是对于一个样本 x i x_i xi经过这个坐标变换后(开始重构):
x i ^ = ∑ i = 1 p ( u i T x i ) u i = ∑ i = 1 q ( u i T x i ) u i + ∑ i = q + 1 p ( u i T x i ) u i \hat{x_i}=\sum\limits_{i=1}^p(u_i^Tx_i)u_i=\sum\limits_{i=1}^q(u_i^Tx_i)u_i+\sum\limits_{i=q+1}^p(u_i^Tx_i)u_i xi^=i=1p(uiTxi)ui=i=1q(uiTxi)ui+i=q+1p(uiTxi)ui
对于数据集来说,我们首先将其中心化然后再去上面的式子的第一项,并使用其系数的平方平均作为损失函数并最大化:

J = 1 N ∑ i = 1 N ∑ j = 1 q ( ( x i − x ‾ ) T u j ) 2 = ∑ j = 1 q u j T S u j , s . t . u j T u j = 1 \begin{align}J&=\frac{1}{N}\sum\limits_{i=1}^N\sum\limits_{j=1}^q((x_i-\overline{x})^Tu_j)^2\nonumber\\ &=\sum\limits_{j=1}^qu_j^TSu_j\ ,\ s.t.\ u_j^Tu_j=1 \end{align} J=N1i=1Nj=1q((xix)Tuj)2=j=1qujTSuj , s.t. ujTuj=1
由于每个基都是线性无关的,于是每一个 u j u_j uj 的求解可以分别进行,使用拉格朗日乘子法:
a r g m a x u j L ( u j , λ ) = a r g m a x u j u j T S u j + λ ( 1 − u j T u j ) \mathop{argmax}_{u_j}L(u_j,\lambda)=\mathop{argmax}_{u_j}u_j^TSu_j+\lambda(1-u_j^Tu_j) argmaxujL(uj,λ)=argmaxujujTSuj+λ(1ujTuj)
于是:
S u j = λ u j Su_j=\lambda u_j Suj=λuj
可见,我们需要的基就是协方差矩阵的本征矢。损失函数最大取在本征值前 q q q 个最大值。

下面看其损失的信息最少这个条件,同样适用系数的平方平均作为损失函数,并最小化:
J = 1 N ∑ i = 1 N ∑ j = q + 1 p ( ( x i − x ‾ ) T u j ) 2 = ∑ j = q + 1 p u j T S u j , s . t . u j T u j = 1 \begin{align}J&=\frac{1}{N}\sum\limits_{i=1}^N\sum\limits_{j=q+1}^p((x_i-\overline{x})^Tu_j)^2\nonumber\\ &=\sum\limits_{j=q+1}^pu_j^TSu_j\ ,\ s.t.\ u_j^Tu_j=1 \end{align} J=N1i=1Nj=q+1p((xix)Tuj)2=j=q+1pujTSuj , s.t. ujTuj=1
同样的:
a r g m i n u j L ( u j , λ ) = a r g m i n u j u j T S u j + λ ( 1 − u j T u j ) \mathop{argmin}_{u_j}L(u_j,\lambda)=\mathop{argmin}_{u_j}u_j^TSu_j+\lambda(1-u_j^Tu_j) argminujL(uj,λ)=argminujujTSuj+λ(1ujTuj)
损失函数最小取在本征值剩下的个最小的几个值。数据集的协方差矩阵可以写成 S = U Λ U T S=U\Lambda U^T S=UΛUT​,直接对这个表达式当然可以得到本征矢。

在这里插入图片描述


结论:
最小投影方差 J = 1 N ∑ i = 1 N ( ( x i − x ‾ ) T u 1 ) 2 J=\frac{1}{N} \sum\limits_{i=1}^N((x_i-\overline{x})^Tu_1)^2 J=N1i=1N((xix)Tu1)2

​ 最小重构代价 J = ∑ i = 1 N ∣ ∣ x i − x ^ i ∣ ∣ = ∑ k = q + 1 p u k T S u k J=\sum\limits_{i=1}^N||x_i-\hat x_i||=\sum\limits_{k=q+1}^pu_k^TSu_k J=i=1N∣∣xix^i∣∣=k=q+1pukTSuk


P26 (系列五) 降维5-SVD角度开看PCA和PCoA

SVD 与 PCoA

  • SVD(奇异值分解)是对任意形状的矩阵进行的一种分解方法,可以看作是非方阵的矩阵的“特征分解”的推广。SVD 提供了一种将矩阵分解为三个特定形式矩阵乘积的方法,这三个矩阵分别是:一个正交矩阵、一个对角矩阵(对角元素称为奇异值,且按从大到小的顺序排列),以及另一个正交矩阵的转置。

SVD 的基本形式

对于任意 m × n m \times n m×n 矩阵 A A A(其中 m m m n n n 不一定相等),SVD 将其分解为:

A = U Σ V T A = U \Sigma V^T A=UΣVT

其中:

  • U U U 是一个 m × m m \times m m×m 的正交矩阵,其列向量是 A A T AA^T AAT A A A 的自乘转置)的特征向量,称为左奇异向量。
  • Σ \Sigma Σ 是一个 m × n m \times n m×n 的矩阵,其对角线上的元素是奇异值(非负且按从大到小排列),其余元素为0。
  • V V V 是一个 n × n n \times n n×n 的正交矩阵,其列向量是 A T A A^TA ATA A A A 的转置自乘)的特征向量,称为右奇异向量。
  • V T V^T VT V V V 的转置。

SVD 的计算

SVD 的计算通常通过数值方法实现,如 Golub-Reinsch 算法(基于 QR 分解的方法)或分治法。这些算法在大多数编程语言的标准数学库中都有实现,如 Python 的 NumPy 库中的 numpy.linalg.svd 函数。

下面使用实际训练时常常使用的 SVD 直接求得这个 q q q 个本征矢。

对中心化后的数据集进行奇异值分解:
H X = U Σ V T , U T U = E N , V T V = E p , Σ : N × p HX=U\Sigma V^T,U^TU=E_N,V^TV=E_p,\Sigma:N\times p HX=UΣVT,UTU=EN,VTV=Ep,Σ:N×p

于是:
S = 1 N X T H X = 1 N X T H T H X = 1 N V Σ T Σ V T S=\frac{1}{N}X^THX=\frac{1}{N}X^TH^THX=\frac{1}{N}V\Sigma^T\Sigma V^T S=N1XTHX=N1XTHTHX=N1VΣTΣVT
因此,我们直接对中心化后的数据集进行 SVD,就可以得到特征值和特征向量 V V V,在新坐标系中的坐标就是:
H X ⋅ V HX\cdot V HXV
由上面的推导,我们也可以得到另一种方法 PCoA 主坐标分析,定义并进行特征值分解:
T = H X X T H = U Σ Σ T U T T=HXX^TH=U\Sigma\Sigma^TU^T T=HXXTH=UΣΣTUT
由于:
T U Σ = U Σ ( Σ T Σ ) TU\Sigma=U\Sigma(\Sigma^T\Sigma) TUΣ=UΣ(ΣTΣ)
于是可以直接得到坐标。这两种方法都可以得到主成分,但是由于方差矩阵是 p × p p\times p p×p 的,而 T T T N × N N\times N N×N​ 的,所以对样本量较少的时候可以采用 PCoA的方法。

  • 坐标矩阵就是T的特征向量组成的矩阵

在这里插入图片描述

P27 (系列五) 降维6-主成分分析(PCA)  以概率角度

p-PCA

下面从概率的角度对 PCA 进行分析,概率方法也叫 p-PCA。我们使用线性模型,类似之前 LDA,我们选定一个方向,对原数据 x ∈ R p x\in\mathbb{R}^p xRp ,降维后的数据为 z ∈ R q , q < p z\in\mathbb{R}^q,q<p zRq,q<p。降维通过一个矩阵变换(投影)进行:
z ∼ N ( O q 1 , I q q ) x = W z + μ + ε ε ∼ N ( 0 , σ 2 I p p ) \begin{align} z&\sim\mathcal{N}(\mathbb{O}_{q1},\mathbb{I}_{qq})\\ x&=Wz+\mu+\varepsilon\\ \varepsilon&\sim\mathcal{N}(0,\sigma^2\mathbb{I}_{pp}) \end{align} zxεN(Oq1,Iqq)=Wz+μ+εN(0,σ2Ipp)
对于这个模型,我么可以使用期望-最大(EM)的算法进行学习,在进行推断的时候需要求得 p ( z ∣ x ) p(z|x) p(zx)​,推断的求解过程和线性高斯模型类似。

  • E ( X 2 ) − E 2 ( X ) = V a r ( X ) E(X^2)-E^2(X)=Var(X) E(X2)E2(X)=Var(X)

p ( z ∣ x ) = p ( x ∣ z ) p ( z ) p ( x ) E [ x ] = E [ W z + μ + ε ] = μ V a r [ x ] = W W T + σ 2 I p p ⟹ p ( z ∣ x ) = N ( W T ( W W T + σ 2 I ) − 1 ( x − μ ) , I − W T ( W W T + σ 2 I ) − 1 W ) \begin{align} &p(z|x)=\frac{p(x|z)p(z)}{p(x)}\\ &\mathbb{E}[x]=\mathbb{E}[Wz+\mu+\varepsilon]=\mu\\ &Var[x]=WW^T+\sigma^2\mathbb{I}_{pp}\\ \Longrightarrow p(z|x)=\mathcal{N}(W^T(WW^T+&\sigma^2\mathbb{I})^{-1}(x-\mu),\mathbb{I}-W^T(WW^T+\sigma^2\mathbb{I})^{-1}W) \end{align} p(zx)=N(WT(WWT+p(zx)=p(x)p(xz)p(z)E[x]=E[Wz+μ+ε]=μVar[x]=WWT+σ2Ippσ2I)1(xμ),IWT(WWT+σ2I)1W)

在这里插入图片描述

小结

降维是解决维度灾难和过拟合的重要方法,除了直接的特征选择外,我们还可以采用算法的途径对特征进行筛选,线性的降维方法以 PCA 为代表,在 PCA 中,我们只要直接对数据矩阵进行中心化然后求奇异值分解或者对数据的协方差矩阵进行分解就可以得到其主要维度。非线性学习的方法如流形学习将投影面从平面改为超曲面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/418521.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自己部门日均1000+告警?如何减少90%无效告警?

目录标题 一、告警的类别1.技术告警1.1基础设施告警1.2基本服务告警 2.业务告警3.监控大盘告警 二、为何需要告警治理&#xff1f;三、治理迫在眉睫1.1告警治理策略1.2核心监控告警点1.3避免告警反模式1.4告警规约制定1.5自动化处理 一、告警的类别 一般的告警分为以下几点&am…

连续信号的matlab表示

复习信号与系统以及matlab 在matlab中连续信号使用较小的采样间隔来表四 1.单位阶跃信号 阶跃信号:一个理想的单位阶跃信号在时间 t 0 之前值为0&#xff0c;在 t 0 及之后值突然变为常数 A&#xff08;通常取 A 1&#xff09; %matlab表示连续信号,是让信号的采样间隔很小…

数据类型转换

1. 基本数据类型转换 1.1 自动类型转换 1.2 注意 1.3 强制类型转换 2. String 与基本数据类型的转换 2.1 基本数据类型转 String public class StringConvert{public static void main(String []args){//基本数据类型-->Stringbyte a1;short b10;int c100;long d1000;…

什么是网络安全?

目录 网络安全定义 网络安全如何运作&#xff1f; 1.人 2.基础设施 3.漏洞 4.技术 网络安全的演变 未来十年的网络安全将会是什么样子&#xff1f; 网络安全为何对企业如此重要&#xff1f; 网络安全的类型 1.网络安全 2.应用程序安全 3.信息安全 4.运营安全 5.灾…

SAP与湃睿PLM系统集成案例

一、项目背景 浙江某家用电机有限公司, 该公司的产品涵盖洗衣机、‌空调、‌冰箱及厨房用具等家电电机的制造&#xff0c;‌具备年产4600万台电机的生产能力&#xff0c;‌是中国最大的家电电机生产基地之一。 为确保工艺路线信息在设计与生产执行层面的无缝传递&#xff0…

c语言——用一维数组输出杨辉三角形

一.代码 #include <stdio.h> int Num[100]; int Hang; int Lie; int a; int Flag; int main() {Lie 1;Hang 1;a 0;while (1) {//列1为1if (Lie 1) {Num[1] 1;Lie;}//数据存到数组里面while (Hang > Lie && Hang ! 2) { if (Hang!Lie) {Flag Num[Lie] …

端口安全老化细节

我们都知道port-security aging-time命令用来配置端口安全动态MAC地址的老化时间&#xff0c;但是后面还可以加上类型&#xff1a; [SW1-GigabitEthernet0/0/1]port-security aging-time 5 type absolute Absolute time 绝对老化 inactivity Inactivity time相对老化 …

原型模式prototype

此篇为学习笔记&#xff0c;原文链接 https://refactoringguru.cn/design-patterns/prototype 能够复制已有对象&#xff0c; 而又无需使代码依赖它们所属的类 所有的原型类都必须有一个通用的接口&#xff0c; 使得即使在对象所属的具体类未知的情况下也能复制对象。 原型对…

形态学运算合集

圆形结构元素 禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》 禹晶、肖创柏、廖庆敏《数字图像处理》资源二维码

Java项目: 基于SpringBoot+mybatis+maven+mysql图书馆管理系统(含源码+数据库+任务书+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenmysql图书馆管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操…

vue项目打包后,生成的index.html直接本地打开后没内容

应该是文件路径找不到了 可以打开控制台看看 可以看到加载css&#xff0c;js&#xff0c;图标资源失败&#xff0c;所以是文件路径问题 vue-cli工程化生成的项目在打包后&#xff0c;默认的资源寻找路径是根&#xff0c;所以可以看到它直接在/F;/favicon找图标&#xff0c;但…

PMBOK® 第六版 项目进度管理知识领域

目录 读后感—PMBOK第六版 目录 提到“进度”&#xff0c;大家都能直观理解其含义。有统计指出&#xff0c;现在项目的延迟交付比例越来越高&#xff0c;并且这一趋势持续上升。造成项目延期的原因是多方面的&#xff0c;常见的原因之一是在项目初期&#xff0c;由于时间充裕&…

mysql笔记—基础

1.SQL语句 DDL&#xff08;数据库对象操作&#xff09;、DML&#xff08;增删改&#xff09;、DQL&#xff08;查询&#xff09;、DCL&#xff08;用户和权限操作&#xff09; 2.DDL&#xff1a; 1.数据库操作&#xff1a; show databases; create database []; use []; sele…

简单梳理一个历史脉络

B 站上王山水老师的一个视频引发的思考&#xff1a;没有司马篡国&#xff0c;能避免300年的大乱世吗&#xff1f; 我的答案如下&#xff1a; 视野放宽到欧亚大陆&#xff0c;广义上公元184年黄巾军起义开启内乱&#xff0c;狭义上公元220年正式进入三国&#xff0c;280年晋统一…

JavaFX基本控件-Button

JavaFX基本控件-Button 常用属性textpaddingalignmenttextAlignmentwidthheighttooltipborderwrapTextellipsisStringunderlinegraphicgraphicTextGapdisable 实现方式Java实现fxml实现 常用属性 text 设置文本内容 button.setText("测试按钮");padding 内边距 butt…

多波束EM2040D以及POSMV使用记录

多波束EM2040D采集软件SIS4.3升级到SIS5.11之后&#xff0c;我们碰到了很多问题&#xff0c;现在将问题和解决过程记录一下。 1、SIS5软件打不开 SIS5软件打不开&#xff0c;报KSlSMainApp has stopped working弹框。 ​ 判断是电脑问题&#xff0c;更新最新win10系统&#…

构建高效智慧水务平台的关键要素有哪些?

在推进智慧水务平台建设的过程中&#xff0c;需着重注意以下几点&#xff0c;以确保系统的先进性与实用性并重&#xff1a; 数据集成与标准化‌&#xff1a;构建统一的数据采集与处理标准&#xff0c;实现多源水务数据的无缝集成与高效管理&#xff0c;为精准决策提供坚实的数据…

Excel常用函数

Excel常用函数 1、统计函数1.1、计数函数1.2、求和函数 2、逻辑函数3、查找函数3.1、一对一查找3.2、一对多查找 4、文本函数 1、统计函数 统计函数是Excel中最常用和强大的函数之一&#xff0c;它可以帮助我们轻松地进行数据统计和分析 1.1、计数函数 1.1.1、COUNT函数&#…

Git 修改Push后的Commit Message

向远程仓库push代码之后&#xff0c;在IDEA中无法直接修改Commit Message&#xff0c;需要在终端或控制台中输入以下命令&#xff08;HEAD~1中的1表示只对最后一个提交进行修改&#xff0c;因此1可以自定义&#xff09; git rebase -i HEAD~1执行完rebase指令后&#xff0c;会…

使用 JAXB 将内嵌的JAVA对象转换为 xml文件

使用 JAXB 将内嵌的JAVA对象转换为 xml文件 1. 需求2. 实现&#xff08;1&#xff09;FileDesc类&#xff08;2&#xff09;MetaFileXml类&#xff08;3&#xff09;生成对应的xml文件 1. 需求 获取一个目录下所有文件的元数据信息&#xff08;文件名、大小、后缀等&#xff0…