zoukankan      html  css  js  c++  java
  • PCA最小平方误差理论推导

    PCA最小平方误差理论推导

    PCA求解其实是寻找最佳投影方向,即多个方向的标准正交基构成一个超平面。

    理论思想:在高维空间中,我们实际上是要找到一个d维超平面,使得数据点到这个超平面的距离平方和最小

    假设(x_k)表示p维空间的k个点,(z_k)表示(x_k)在超平面D上的投影向量,(W = {w_1,w_2,...,w_d})为D维空间的标准正交基,即PCA最小平方误差理论转换为如下优化问题$$z_k = sum_{i=1}^d (w_i^T x_k)w_i---(1)$$

    [argmin sum_{i=1}^k||x_k - z_k||_2^2 ]

    [s.t. w_i^Tw_j = p(当i==j时p=1,否则p=0) ]

    注:(w_i^Tx_k)为x_k在w_i基向量的投影长度,(w_i^Tx_kw_i)为w_i基向量的坐标值

    求解:

    (L = (x_k - z_k)^T(x_k-z_k))

    (L= x_k^Tx_k - x_k^Tz_k - z_k^Tx_k + z_k^Tz_k)

    由于向量内积性质(x_k^Tz_k = z_k^Tx_k)

    (L = x_k^Tx_k - 2x_k^Tz_k + z_k^Tz_k)

    将(1)带入得$$x_k^Tz_k = sum_{i=1}^dw_i^Tx_kx_k^Tw_i$$

    [z_k^Tz_k = sum_{i=1}^dsum_{j=1}^d(w_i^Tx_kw_i)^T(w_j^Tx_kw_j) ]

    根据约束条件s.t.得$$z_k^Tz_k = sum_{i=1}^dw_i^Tx_k^Tx_kw_i$$

    [L =x_k^Tx_k - sum_{i=1}^dw_i^Tx_kx_k^Tw_i ]

    根据奇异值分解$$sum_{i=1}^dw_i^Tx_kx_k^Tw_i = tr(W^Tx_k^Tx_kW)$$

    [L =argminsum_{i=1}^kx_k^Tx_k - tr(W^Tx_k^Tx_kW) = argminsum_{i=1}^k- tr(W^Tx_k^Tx_kW) + C ]

    等价于带约束得优化问题:$$argmaxtr(W^TXX^TW)$$

    [s.t. W^TW = I ]

    最佳超平面W与最大方差法求解的最佳投影方向一致,即协方差矩阵的最大特征值所对应的特征向量,差别仅是协方差矩阵(xi)的一个倍数

    定理

    [argminphi(W,Z|X) = tr((X-W^TZ)^T(X-W^TZ)) = ||X-W^TZ||_F^2 ]

    [s.t.W^TW=I_q ]

    注:X为(n,p),Z为(n,q),q < p,w为(p,q)

    该定理表达的意思也就是平方差理论,将降维后的矩阵通过W^T投影回去,再与X计算最小平方差,值越小说明信息损失越少

    (phi)目标函数最小时,W为X的前q个特征向量矩阵且(Z=W^TX)

    以上优化可以通过拉格朗日对偶问题求得,最终也会得到$$argmaxtr(W^TXX^TW)$$

    [s.t. W^TW = I ]

  • 相关阅读:
    Python为什么要self
    安全散列算法(secure hash algorithm,SHA)
    傅里叶变换

    K 最近邻(k-nearest neighbours,KNN)算法
    贪婪算法
    狄克斯特拉算法
    广度优先搜索
    快速排序
    选择排序
  • 原文地址:https://www.cnblogs.com/xiaobingqianrui/p/10755867.html
Copyright © 2011-2022 走看看