线性代数 --- 向量空间(vector space)与子空间(subspace)

 Part I --- 向量空间(vector space)

        向量空间就是由包含n个分量的列向量所组成的Rn的空间,其中R表示实数。例如,R2就代表了一般的x-y平面,其中包含两个分量的向量表示坐标系中的一个点(x,y)。同理,R3中的一个向量,包含三个分量,可以表示三维坐标系中的一个点(x,y,z)。

也就是说,向量空间,它满足:

1,向量空间中任意两个向量a,b的向量v,依然在向量空间内。

2,向量空间中的任意一个向量b与任何一个常数c的积</

### PCA子空间跟踪的关系 PCA(主成分分析)是一种用于降维的技术,通过线性变换将原始数据映射到一个新的坐标系,在这个新坐标系中,第一主成分具有最大的方差,第二主成分次之,以此类推[^1]。而子空间跟踪则是在动态环境中实时估计信号子空间的一种技术。 #### 子空间的概念 在许多实际应用场景中,比如雷达、声纳以及无线通信等领域,观测到的数据往往存在于一个较低维度的有效子空间内。该子空间由一组正交基向量组成,这些基向量能够很好地表示大部分有用信息。当环境发生变化时,有效子空间也会随之改变;因此,如何快速准确地追踪这种变化成为了研究的重点之一。 #### PCA作为静态子空间提取工具 对于给定的一组固定样本集来说,可以通过计算其协方差矩阵并求解特征值分解来获得最优的k个主方向——即前k大特征对应的单位特征向量所张成的空间就是经过PCA处理后的目标子空间[^3]。然而值得注意的是,这种方法适用于批处理模式下的离线场景,并不擅长应对随时间演化的在线情况。 #### 动态子空间跟踪算法简介 为了克服传统PCA方法存在的局限性,研究人员提出了多种基于递归更新机制实现高效稳定的子空间跟踪方案。这类算法能够在接收到新的测量值之后立即调整当前估计得到的最佳近似子空间位置,从而更好地适应非平稳过程中的统计特性漂移现象。常见的有Rank-One Update (ROU),Exponential Windowed Subspace Tracking (EWST) 和 Projection Approximation Subspace Tracking (PAST)[^2]等几种典型代表作。 ```python import numpy as np from sklearn.decomposition import PCA def past_algorithm(X, k=2): """ A simple implementation of PAST algorithm. Parameters: X : array-like, shape (n_samples, n_features) Training data. k : int, default=2 Number of components to keep. Returns: W : ndarray of shape (n_components, n_features) The estimated subspace basis vectors. """ pca = PCA(n_components=k).fit(X) U = pca.components_.T # Initialize the projection matrix with identity P = np.eye(U.shape[0]) for t in range(1, len(X)): xt = X[t].reshape(-1, 1) # Compute residual error vector r_t rt = Xt - P @ Ut # Update the projection approximation using rank-one update formula Pt_plus_1 = P + ((rt @ rt.T)/(np.linalg.norm(rt)**2)) * P # Orthogonalize columns of updated projector via QR decomposition Q, R = np.linalg.qr(Pt_plus_1) P = Q @ Q.T # Extract new set of orthonormal bases spanning same space as previous ones did before updating Ut_plus_1 = P[:, :k] return Ut_plus_1.T if __name__ == "__main__": # Example usage rng = np.random.RandomState(seed=42) X_example = rng.randn(100, 5) result = past_algorithm(X=X_example, k=2) print(result) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松下J27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值