使用SVD来求解优化问题最优值以及求解PCA

使用SVD来求解优化问题最优值

假设我们想要求解如下问题:

R ∗ = argmax ⁡ R ∑ i = 1 n q i T R p i = ∑ i = 1 n t r ( Q T R P ) i i = t r ( Q T R P ) R\mathbf{^{*}} =\underset{R}{\operatorname{argmax}}\sum ^{n}_{i=1} q^{T}_{i} Rp_{i} =\sum ^{n}_{i=1} tr\left( Q^{T} RP\right)_{ii} =tr\left( Q^{T} RP\right) R=Rargmaxi=1nqiTRpi=i=1ntr(QTRP)ii=tr(QTRP)

H ≜ ∑ i = 1 n p i q i T \displaystyle H\triangleq \sum ^{n}_{i=1} p_{i} q^{T}_{i} Hi=1npiqiT,于是问题变成求解如下最优值:

R ∗ = argmax ⁡ R   t r ( Q T R P ) = t r ( R P Q T ) = t r ( R H ) R\mathbf{^{*}} =\underset{R}{\operatorname{argmax}}\ tr\left( Q^{T} RP\right)=tr\left( RPQ^{T}\right)=tr\left( RH\right) R=Rargmax tr(QTRP)=tr(RPQT)=tr(RH)

现在,如果H的SVD分解为, H = U Λ V T \displaystyle H=U\Lambda V^{T} H=UΛVT,可以证明

R ∗ = V U T R\mathbf{^{*}} =VU^{T} R=VUT

一定是该优化问题的最优解。

现在证明一个引理:

引理1:对于任意的正定矩阵 A A T \displaystyle AA^{T} AAT,对于任意的正交矩阵B,则有
Tr ⁡ ( A A T ) ≥ Tr ⁡ ( B A A T ) \operatorname{Tr}\left( AA^{T}\right) \geq \operatorname{Tr}\left( BAA^{T}\right) Tr(AAT)Tr(BAAT)

证明:令 a i \displaystyle a_{i} ai是A的第i列,于是
Tr ⁡ ( B A A t ) = Tr ⁡ ( A t B A ) = ∑ i a i t ( B a i ) \begin{aligned} \operatorname{Tr}\left( BAA^{t}\right) & =\operatorname{Tr}\left( A^{t} BA\right)\\ & =\sum _{i} a^{t}_{i}( Ba_{i}) \end{aligned} Tr(BAAt)=Tr(AtBA)=iait(Bai)

根据Cauchy–Schwarz_inequality,

a i T ( B a i ) ≤ ( a i T a i ) ( a i T B T B a i ) = a i T a i a^{T}_{i}( Ba_{i}) \leq \sqrt{\left( a^{T}_{i} a_{i}\right)\left( a^{T}_{i} B^{T} Ba_{i}\right)} =a^{T}_{i} a_{i} aiT(Bai)(aiTai)(aiTBTBai) =aiTai

因为B是正交矩阵,所以 B T B = E \displaystyle B^{T} B=E BTB=E.因此

Tr ⁡ ( B A A T ) ⩽ ∑ i a i T a i = Tr ⁡ ( A A T ) \operatorname{Tr}\left( BAA^{T}\right) \leqslant \sum _{i} a^{T}_{i} a_{i} =\operatorname{Tr}\left( AA^{T}\right) Tr(BAAT)iaiTai=Tr(AAT)
证毕。

现设
X = V U T   ( 这 是 正 交 矩 阵 , X T X = U V T V U T = E ) X=VU^{T} \ \left( 这是正交矩阵,X^{T} X=UV^{T} VU^{T} =E\right) X=VUT (,XTX=UVTVUT=E)
于是
X H = V U T U Λ V T = V Λ V T \begin{aligned} XH & =VU^{T} U\Lambda V^{T}\\ & =V\Lambda V^{T} \end{aligned} XH=VUTUΛVT=VΛVT
因此 X H \displaystyle XH XH是一个对称而且正定的矩阵,根据Cholesky分解 X H \displaystyle XH XH一定可以分解成 A A T \displaystyle AA^{T} AAT的形式,于是根据上述引理,对于任意的正交矩阵B,这样的对称正定矩阵一定满足公式:
Tr ⁡ ( X H ) ≥ Tr ⁡ ( B X H ) \operatorname{Tr}( XH) \geq \operatorname{Tr}( BXH) Tr(XH)Tr(BXH)
于是, Tr ⁡ ( X H ) \displaystyle \operatorname{Tr}( XH) Tr(XH)一定是最优值,因为任意的变换都会使得该它减少。这个东西告诉我们,只要我们能够对H进行SVD分解,那么我们一定能够找到一个最优的X使得 Tr ⁡ ( X H ) \displaystyle \operatorname{Tr}( XH) Tr(XH)最大。

使用SVD来求解PCA

在这里插入图片描述
如上图,PCA本质上就是求解方差的特征向量,而这个特征向量其实就是图中里面的V。

参考资料

Arun, K. Somani, Thomas S. Huang, and Steven D. Blostein. “Least-squares fitting of two 3-D point sets.” IEEE Transactions on pattern analysis and machine intelligence 5 (1987): 698-700.

https://zhuanlan.zhihu.com/p/35893884

An easy introduction to unsupervised learning with 4 basic techniques

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,主成分分析(PCA)可以转化为特征分解问题PCA是一种线性降维技术,它可以将高维数据转化为低维数据,同时保留原始数据的主要特征。PCA的核心是对数据进行协方差矩阵分解,得到其特征向量和特征,然后根据特征大小选择前k个特征向量,将原始数据投影到这k个特征向量所张成的低维空间中,即得到降维后的数据。因此,PCA可以看作是一个特征分解的过程。 ### 回答2: PCA(Principal Component Analysis,主成分分析)可以使用特征分解的方法进行求解。特征分解是一种常见的矩阵分解方法,可以将一个方阵分解为特征和特征向量的乘积。 在PCA中,我们首先需要计算数据集的协方差矩阵。协方差矩阵是一个对称矩阵,对角线上的元素是各个特征的方差,非对角线上的元素是各个特征之间的协方差。 接下来,我们可以使用特征分解的方法,将协方差矩阵分解为特征和特征向量的乘积。特征代表着每个特征轴上的方差,而特征向量则代表着数据在该特征轴上的投影方向。 PCA的目标是选择出方差最大的特征轴,也就是特征最大的特征向量。选择前k个最大的特征向量,就可以构建出一个k维的子空间,将数据映射到该子空间中。 因此,可以说PCA求解过程可以转化为特征分解问题,通过求解协方差矩阵的特征和特征向量,我们可以得到数据集的主成分(principal component),也就是方差最大的特征轴。这样就可以实现数据的降维和提取主要特征的目标。 ### 回答3: PCA(主成分分析)是一种常用的降维技术,它通过线性变换将高维数据映射到低维空间以保留最大的方差。而特征分解是一种常用的矩阵分解方法,用于求解矩阵的特征和特征向量。 实际上,PCA可以转化为特征分解问题。设给定的数据矩阵为X,它的协方差矩阵为C。首先,我们计算C的特征向量和特征,然后选择其中最大的k个特征对应的特征向量,作为投影矩阵P。最后,将数据矩阵X与投影矩阵P相乘,即可得到降维后的数据矩阵Y。 具体而言,设特征向量矩阵为U,特征矩阵为Λ,则PCA的特征分解问题可以表述为: C = U * Λ * U^T 其中,U的列向量就是C的特征向量,Λ的对角线元素就是C的特征。将U的前k列组成投影矩阵P,即: P = [u1, u2, ..., uk] 则投影后的数据矩阵Y可以表示为: Y = X * P 因此,PCA求解可以等价地视作特征分解问题。 但需要注意的是,当数据量非常大时,直接进行特征分解计算的复杂度可能较高。为了解决这个问题,常常使用基于奇异分解(SVD)的方法来实现PCASVD可以更高效地计算主成分,从而加速PCA求解过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值