PCA 算法 Principal Component Analysis的原理

PCA算法是什么

一种降维压缩算法,通过对表示数据的矩阵的eigenvector的重要性的排序,将不要的维度剔除的算法。

问题构建

  • 我们有一组数据集 D = { x ( 1 ) , x ( 2 ) . . . . x ( N ) } ⊂ R D D = \{x^{(1)},x^{(2)}....x^{(N)}\} \subset \mathbb{R}^D D={x(1),x(2)....x(N)}RD
  • 设置 μ \mu μ 为这组数据的均值,i.e μ = 1 N ∑ i = 1 N x ( i ) \mu = \frac{1}{N}\sum_{i=1}^{N} x^{(i)} μ=N1i=1Nx(i)
  • 目标:找到一个K维的subspace(子空间) S ⊂ R D \mathcal{S} \subset \mathbb{R}^{D} SRD,使得 x n − μ x^{n}-\mu xnμ, 即 x n x^n xn μ \mu μ的差,可以被很好的被其到S这个子空间的projection表示出来 。

数学公式

  • 使 { u k } k = 1 K \{u_k\}^K_{k=1} {uk}k=1K 做为子空间S的orthonormal basis。注意这里每一个u只需要互相垂直就行了,不一定是(1,0,0,0,0),(0,0,0,0,1)这种。有几维,就有几列,行数为D的维度N。
  • 我们尝试对新的 x ^ \hat{x} x^进行估计:
    x ^ = μ + P r o j S ( x − μ ) \hat{x} = \mu + Proj_S(x-\mu) x^=μ+ProjS(xμ)
    = μ + ∑ k K z k u k =\mu+\sum_k^K z_{k}u_{k} =μ+kKzkuk
    这里, zk是x和其均值 μ \mu μ的差值投射到subspace S中的样子
    z k = u k T ( x − μ ) z_k = u^{T}_{k}(x-\mu) zk=ukT(xμ)

同时,也就是说,我们又通过U*Z对其进行了又一次运算,使这个差值回到D维
x ^ = μ + U ∗ Z \hat{x} = \mu + U*Z x^=μ+UZ
注意原本
x = μ + ( x − μ ) x = \mu + (x-\mu) x=μ+(xμ)
我们需要找到一个U,使得 U ∗ Z − ( x − μ ) U*Z - (x - \mu) UZ(xμ)的值最小,即argmin操作,那么我们就可以将x-u在K维中表示出来,并在需要时通过U的运算,使之回到D维。
在这里插入图片描述
图片来自 csc411 university of toronto

  • 如果这个U∗Z−(x−μ)的值很小,那么我们就可以在D维上对其进行模拟了,使得模型运算的空间和时间复杂度降低。
  • PCA是一种Representation learning的方法,可以用于整个数据集降到一个更容易操作和可视化的维度。

如何学习子空间

  • 目标: 找到一个D*K的矩阵,每一列的vector之间都互相垂直
  • 选择标准:
  1. 使得 reconstruction error最小在这里插入图片描述
  2. 使得code vector z的 方差最大,求法是在每一维上求variance
    在这里插入图片描述
  • 这两个标准是都可以得到我们想要的结果,本质是相同的,以下是证明:

  • 我们想要证明:
    1 N ∑ i = 1 N   ∣ ∣ x i − x ^ i ∣ ∣ = c o n s t − 1 N ∑ i N ∣ ∣ z i ∣ ∣ 2 \frac{1}{N}\sum_{i=1}^N\ ||x^i - \hat{x}^{i}|| = const - \frac{1}{N} \sum_i^N ||z^i||^2 N1i=1N ∣∣xix^i∣∣=constN1iN∣∣zi2

  • 因为U是一个basis,每一列互相垂直且 ||U|| = 1, 因此
    ∣ ∣ x ^ − μ ∣ ∣ = ∣ ∣ U z i ∣ ∣ = ∣ ∣ z i ∣ ∣ ||\hat{x}-\mu|| = ||Uz^i|| = ||z^i|| ∣∣x^μ∣∣=∣∣Uzi∣∣=∣∣zi∣∣
    在这里插入图片描述

  • 根据勾股定理,我们得到下图。因此,两个标准是等同的。
    在这里插入图片描述

  • 协方差公式
    在这里插入图片描述
    我们知道协方差矩阵是 symmetric以及positive semidefinite
  • 最好的subspace是被k个最好的 eigenvector作为basis的。
  • 其多维的推导是一个很复杂的过程,只做一维K=1的推导, u是某一维度的单位向量
  • 我们得到
    在这里插入图片描述
    其中 a = Q T u a = Q^Tu a=QTu

最后我们尝试
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值