首页 > 其他分享 >【笔记】PCA——主成分分析:推导与问题

【笔记】PCA——主成分分析:推导与问题

时间:2023-03-22 16:44:54浏览次数:40  
标签:Tz 推导 Tx TW sum 笔记 PCA Wz

PCA:主成分分析

主要思想

假设有m个n维数据,我希望只保留k维,尽可能减少信息损失,也就是(m,n)到(m,k)的过程

比如一个实际应用场景,我有一堆w latent code,也就是(n,512)的数据

通过PCA可以得到(n,2)的数据,这就是n个二维点,可以画在平面上

推导

我们希望在n维空间里找到一个k维的超平面,目标是每个点到超平面的距离最近

首先对m个n维数据做中心化,也就是减去平均值,之后的数据就满足

\[\sum_{i=1}^{m} x^{(i)} = 0 \]

假设经过投影的新坐标系由\(\{w_1,w_2,\cdots,w_n\}\)这n个标准正交基构成(两两正交,模长为1)

我们希望将这n个坐标基删去一些,只留k个

那么每个点在新坐标系里的投影就是

\[z^{(i)} = (z_1^{(i)},z_2^{(i)},\cdots,z_n^{(i)}) ^T \]

其中每个分量就是

\[z_{j}^{(i)} = w_{j}^{T} x^{(i)} \]

那么如果要从这个投影恢复原始数据,可以表示为

\[\hat x^{(i)} = \sum_{j=1}^{k} z_{j}^{(i)} w_{j} \]

矩阵表示就是

\[\hat x^{(i)} = Wz^{(i)} \]

我们希望恢复出来的损失尽量小,那就是要最小化这个函数

\[\sum_{i=1}^{m} ||x^{(i)} - \hat x^{(i)}||_2^2 \]

也就是

\[\sum_{i=1}^{m}|| Wz^{(i)} - x^{(i)}||_2^2 \]

首先展开平方

\[\sum_{i} (Wz^{(i)})^T(Wz^{(i)}) - 2 \sum_{i} (Wz^{(i)})^{T}x^{(i)} + \sum_{i} (x^{(i)})^Tx^{(u)} \]

转置放进去

\[\sum_{i} (z^{(i)})^TW^TWz^{(i)} - 2 \sum_{i} (z^{(i)})^TW^Tx^{(i)} + \sum_{i} (x^{(i)})^Tx^{(u)} \]

由于\(W^TW=I\),也就化简为

\[\sum_{i} (z^{(i)})^Tz^{(i)} - 2 \sum_{i} (z^{(i)})^TW^Tx^{(i)} + \sum_{i} (x^{(i)})^Tx^{(u)} \]

由于\(z^{(i)} = W^T x^{(i)}\),可以进一步写为

\[\sum_{i} (z^{(i)})^Tz^{(i)} - 2 \sum_{i} (z^{(i)})^Tz^{(i)} + \sum_{i} (x^{(i)})^Tx^{(u)} \]

合并一下

\[- \sum_{i} (z^{(i)})^Tz^{(i)} + \sum_{i} (x^{(i)})^Tx^{(u)} \]

后面的部分是常数,所以只需要最小化

\[- \sum_{i} (z^{(i)})^Tz^{(i)} \]

写成矩阵形式就是

\[\arg \min -tr(W^TXX^TW) \]

其中限制是\(W^TW = I\)

显然最小值由\(XX^T\)最大的k个特征值对应的特征向量组成

那么这就是我们需要的新坐标轴了

重要问题

PCA出来的轴天然正交,这是好的一点

PCA要求数据满足高斯分布,否则结果会旋转、拉伸,这是不好的一点

如果在W Space做,得到的latent code模长不对,这个问题仍需进一步探索

标签:Tz,推导,Tx,TW,sum,笔记,PCA,Wz
From: https://www.cnblogs.com/ghostcai/p/17244602.html

相关文章

  • webrtc QOS笔记三 RTT计算,SRS增加XR
    webrtcQOS笔记三RTT计算,SRS增加XRRTT计算方式WebRTC中目前有两种方式计算RTT:基于媒体流发送端的计算(默认开启)。通过SenderReport(SR)与ReceiverReport(RR)携带的信息......
  • Cadence入门笔记(六):布局和板框
    说明布局和走线是最复杂的一个环节,涉及诸多技巧和设计理念。但为了入门学习简单考虑,这里只做基本的操作步骤说明。隐藏飞线上一节放置好元件后就要开始布局了,布局前可以......
  • 面试笔记——计算机网络
    原文链接:javaguide常见面试题OSI和TCP/IP网络分层模型OSI七层模型OSI七层模型是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示:......
  • Cadence入门笔记(五):网表生成和导入
    检查封装在生成网表前要先确认器件封装和实际封装文件是否对应存在如下是之前设计好的封装文件.psm文件打开orcad,和元件属性中的封装内容对比确认一致如果实际封装和......
  • C++中&和&&的相关笔记
    目录1.引言2.&的作用2.1位运算2.2取地址2.3引用3.&&的用途3.1逻辑运算符AND3.2右值引用3.2.1背景知识3.2.2左值和右值3.2.3移动构造函数和移动赋值函数1.引言......
  • DevOps实战笔记-DevOps平台设计和开发
    DevOps实战笔记-DevOps平台设计和开发1简介1.1DevOps概述最初是瀑布模型,后来是敏捷开发,现在是DevOps,这是现代开发人员构建出色的产品的技术路线。DevOps早在20......
  • js笔记
    forEachmap对原函数的影响arr1=[{a:1},{a:2},{a:3},{a:4}];arr2=[1,2,3,4];//forEach没有返回值arr1.forEach(i=>{//引用类型整个赋值不变i=i.a......
  • css笔记
    水平布局这段时间编写静态页面,学习了几种水平布局,其中有不小的差异和注意事项,特此记录汇总一下。1.display:inline-block将元素修改为行内块元素,可以在不脱离文档流的......
  • 【数据结构】数组与广义表 - 笔记
    数组与广义表的一章相对更为简单,第1,2节都是很熟悉的数组相关定义、实现等。因此这篇博客的讲述重点放在第3节“特殊矩阵的压缩存储”中的“稀疏矩阵”的存储以及第4节“......
  • 最小割树学习笔记
    前言最小割树(Gomory-HuTree)通过分治的思想,将图中的最小割关系建成一棵带权了树上问题。它的主要用途是求解全源最小割/最大流。前置知识:一种快速的最大流算法(Dinic/......