Digamos que eu possa conhecer o SVD de alguma matriz :X = U S V T
Se eu tenho uma matriz ortogonal (ou seja, é quadrada e tem colunas ortonormais), o SVD de éA X A
onde .
Mas algo pode ser dito sobre o SVD do se tiver colunas ortonormais, mas não for necessariamente quadrado? Em outras palavras, se o SVD de é , as matrizes , ou ser escritas em termos do SVD de e ?B X B X B = D E F T D E F X B
Atualização: @whuber sugere que eu possa estender para ser ortogonal adicionando colunas ortonormais até ficar quadrado. Chame esse ortogonal matriz .B ˜ B
Eu sei que o SVD do é (veja acima). Mas agora eu estou lutando para ver se há uma maneira que eu posso escrever o SVD de em termos da SVD de . U S ( ˜ B T V ) T X B X ˜ B
pca
svd
matrix-decomposition
mobeets
fonte
fonte
Respostas:
No SVD , onde é uma matriz , é uma matriz ortogonal . X n × p V p × pX=USV′ X n×p V p×p
Suponha que é uma matriz ortogonal : ou seja, . Deixeip × q B ′ B = 1 qB p×q B′B=1q
ser um SVD de . Assim, por definição, é uma matriz , é uma matriz diagonal da dimensão e é uma matriz ortogonal .T p × q D q W q × qSV′B T p×q D q W q×q
Calcular
Como , possui colunas ortonormais. Como e fazem parte de um SVD, então, por definição, é diagonal com entradas não negativas e é uma matriz ortogonal . Consequentemente, a equação fornece um SVD de . A equação mostra como este SVD está relacionado com o de e .(UT)′(UT)=T′(U′U)T=T′T=1q UT D W′ D W q×q (2) XB (1) X B
fonte
Para uma matriz com colunas ortonormais (mas não quadrado), gostaria uma forma de encontrar um SVD de em termos do SVD .B XB X=USVT
Conforme sugerido por @whuber, um primeiro passo para encontrar o SVD do é adicionar colunas a para torná-lo quadrado (e, portanto, ortogonal). Chame essa matriz e seja o número de colunas de . Em seguida, porque é ortogonal, se é um SVD de , então é um SVD de .B ˜ B = [ B ; B ⊥ ] k B ⊥ ~ B X = L S V T X X ~ B = L S ( ~ B T V ) T X ~ BXB B B~=[B;B⊥] k B⊥ B~ X=USVT X XB~=US(B~TV)T XB~
Como o pode ser obtido do , descartando as últimas colunas, meu problema original agora se reduz ao seguinte: Dado o SVD de uma matriz , existe uma maneira de encontrar o SVD de , onde é a matriz resultante da queda das últimas colunas de ? (Aqui eu tenho e .)X ~ B k Y = D E F T Y ' = D ' E ' M ' TXB XB~ k Y=DEFT Y′=D′E′F′T K Y Y = X ~ B Y ' = X BY′ k Y Y=XB~ Y′=XB
Esse problema é conhecido como "downdating the SVD" e, em geral, parece haver muitas abordagens para fazer isso. Uma abordagem relevante é encontrada aqui e mais discussão aqui .
Mas, em geral, uma vez que os algoritmos para downdating a SVD parecem ser uma área de pesquisa ativa, estou concluindo que não há uma simples maneira de encontrar a SVD de dada apenas a SVD de .XXB X
fonte