SVD de una matriz de datos después de una proyección ortogonal a un subespacio

9

Digamos que puedo conocer la SVD de alguna matriz X:

X=USVT

Si tengo una matriz ortogonal A (es decir, A es cuadrado y tiene columnas ortonormales), entonces la SVD de XA es

XA=USWT
dónde W=ATV.

Pero, ¿se puede decir algo sobre la SVD de XB Si Btiene columnas ortonormales pero no es necesariamente cuadrado? En otras palabras, si la SVD deXB es XB=DEFT, pueden las matrices D, Eo F estar escrito en términos de la SVD de X y B?


Actualización: @whuber sugiere que puedo extenderB ser ortogonal agregando columnas ortonormales hasta Bes cuadrado Llame a esta matriz ortogonalB~.

B~=[B;B]

Conozco la SVD de XB~ es US(B~TV)T(véase más arriba). Pero ahora estoy luchando para ver si hay una manera en que pueda escribir el SVD deXB en términos de la SVD de XB~.

mobeets
fuente
Por ejemplo, no es el caso que la SVD de XB=US(BTV)T, que es lo que tenemos si sabemos Bes cuadrado Esto es porqueBTV no es una matriz cuadrada, lo que debería ser cierto para la SVD. BTVtodavía tiene columnas ortonormales.
Mobeets
3
Bse puede prolongar uniendo columnas ortonormales adicionales en una matriz ortogonal (use el proceso de Gram-Schmidt, por ejemplo), reduciendo así su pregunta al primer caso.
whuber
1
Genial, gracias @whuber. Así que diB es la versión ortogonalizada de B. Will sabiendo la SVD deXB dime algo sobre la SVD de XB?
Mobeets
Escríbalo y verá cuán simple y clara es la relación.
whuber
@whuber No puedo verlo ... Esto es lo que he intentado: dejar B=[B;B]. EntoncesXB=[XB;XB]=US(BTV)T=US([BTBT]V)T=US[BTVBTV]T.
Mobeets

Respuestas:

3

En la SVD X=USV, dónde X es un n×p matriz, V es un ortogonal p×p matriz.

Suponer B es un ortogonal p×q matriz: es decir, BB=1q. Dejar

(1)SVB=TDW

ser un SVD de SVB. Así, por definición,T es un p×q matriz, D es una matriz diagonal de dimensión qy W es un ortogonal q×q matriz.

Calcular

(2)XB=(USV)B=U(SVB)=U(TDW)=(UT)D(W).

Porque (UT)(UT)=T(UU)T=TT=1q, UTTiene 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×qmatriz 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.

whuber
fuente
1
Gracias por la respuesta. Aunque parece que esta es una forma de encontrar la SVD deXB a través de la computación de la SVD de SVB, en lugar de usar solo la SVD de X. Esperaba saber si hay una manera de encontrar la SVD deXB sin tener que calcular SVD adicionales, como es posible cuando Bes cuadrado
Mobeets
3

Para una matriz B 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 de XB es agregar columnas a Bpara 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~.

Porque XB 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=DEFT, 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.

mobeets
fuente
1
+1. Creo que identifica el problema correctamente: no existe una forma "simple". Me parece bastante intuitivo si considera un ejemplo simple de juguete: por ejemplo, una nube de datos 2D alargada en dirección diagonal. Los dos vectores singulares originales son diagonales. Multiplicar la matriz de datos con una matriz ortogonal cuadrada simplemente gira toda la nube, por lo que los vectores singulares permanecen igual, hasta la rotación. Pero proyectar la nube de datos a, por ejemplo, la línea horizontal (subespacios 1D) cambiará su forma por completo; ahora el único vector singular es horizontal. Los nuevos vectores singulares no están relacionados con los antiguos.
ameba
Esa es una gran explicación intuitiva de la diferencia. Al principio, me pareció bastante molesto que pudiera haber una relación tan simple para las matrices ortogonales, pero luego ya no se elimina una sola columna de esa matriz. Pero todo tiene sentido ahora. ¡Gracias!
Mobeets
Estoy de acuerdo. Cuando leí tu publicación por primera vez, pensé: ¡qué pregunta tan ingenua! :-) claramente uno simplemente tiene que rotar los vectores singulares (con una matriz "extendida" para ser una matriz de rotación, como escribió Whuber) y luego soltar algunos de ellos (correspondientes a la parte "extendida"). Pero esto, por supuesto, está mal.
ameba