Digamos que puedo conocer la SVD de alguna matriz :
Si tengo una matriz ortogonal (es decir, es cuadrado y tiene columnas ortonormales), entonces la SVD de es
dónde .
Pero, ¿se puede decir algo sobre la SVD de Si tiene columnas ortonormales pero no es necesariamente cuadrado? En otras palabras, si la SVD de es , pueden las matrices , o estar escrito en términos de la SVD de y ?
Actualización: @whuber sugiere que puedo extender ser ortogonal agregando columnas ortonormales hasta es cuadrado Llame a esta matriz ortogonal.
Conozco la SVD de es (véase más arriba). Pero ahora estoy luchando para ver si hay una manera en que pueda escribir el SVD de en términos de la SVD de .
pca
svd
matrix-decomposition
mobeets
fuente
fuente
Respuestas:
En la SVDX=USV′ , dónde X es un n×p matriz, V es un ortogonal p×p matriz.
SuponerB es un ortogonal p×q matriz: es decir, B′B=1q . Dejar
ser un SVD deSV′B . Así, por definición,T es un p×q matriz, D es una matriz diagonal de dimensión q y W es un ortogonal q×q matriz.
Calcular
Porque(UT)′(UT)=T′(U′U)T=T′T=1q , UT Tiene columnas ortonormales. PorqueD y W′ son parte de una SVD, entonces por definición D es diagonal con entradas no negativas y W es un q×q matriz ortogonal En consecuencia, la ecuación(2) da una SVD de XB . Ecuación(1) muestra cómo esta SVD está relacionada con la de X y B .
fuente
Para una matrizB con columnas ortonormales (pero no cuadradas), me gustaría encontrar una SVD de XB en términos de la SVD de X=USVT .
Como lo sugiere @whuber, un primer paso para encontrar la SVD deXB es agregar columnas a B para hacerlo cuadrado (y por lo tanto ortogonal). Llama a esta matrizB~=[B;B⊥] , y deja k ser el número de columnas de B⊥ . Entonces porqueB~ es ortogonal, si X=USVT es una SVD de X , entonces XB~=US(B~TV)T es una SVD de XB~ .
PorqueXB se puede obtener de XB~ dejando caer el último k columnas, mi problema original ahora se reduce a lo siguiente: Dada la SVD de una matriz Y=DEFT , ¿hay alguna manera de encontrar la SVD de Y′=D′E′F′T , dónde Y′ es la matriz resultante de soltar el último k columnas de Y ? (Aquí tengoY=XB~ y Y′=XB .)
Este problema se conoce como "desactualizar la SVD" y, en general, parece haber muchos enfoques para hacerlo. Aquí se encuentra un enfoque relevante , y más discusión aquí .
Pero en general, dado que los algoritmos para reducir la SVD parecen ser un área de investigación activa, estoy concluyendo que no hay una manera simple de encontrar la SVD deXB dado solo la SVD de X .
fuente