En resumen, la SVD es la madre de todas las descomposiciones, y despojar una matriz hasta su esencia desnuda es sexy.
La descomposición del valor singular es simple pero profunda y poderosa. Aquí está, en su gloria real:
[matemáticas]
A = U \ Sigma V ^ T,
[/matemáticas]
dónde
- [matemáticas] A \ en R ^ {m \ veces n} [/ matemáticas], [matemáticas] Rango (A) = r [/ matemáticas],
- [matemáticas] U \ en R ^ {m \ veces r} [/ matemáticas], [matemáticas] U ^ TU = I [/ matemáticas],
- [matemáticas] V \ en R ^ {n \ veces r} [/ matemáticas], [matemáticas] V ^ TV = I [/ matemáticas],
- [math] \ Sigma = diag (\ sigma_1, \ ldots, \ sigma_r) [/ math], donde [math] \ sigma_1 \ geq \ cdots \ geq \ sigma_r> 0 [/ math].
Con [math] U = [u_1 \, \ cdots \, u_r] [/ math], [math] V = [v_1 \, \ cdots \, v_r] [/ math],
[matemáticas] A = U \ Sigma V ^ T = \ sum_ {i = 1} ^ r \ sigma_i u_i v_i ^ T [/ matemáticas]. [1]
Hay algo muy agradable en descomponer una transformación lineal muy general (con pocas restricciones) en una serie de (1) proyecciones del espacio de entrada en bases ortogonales, (2) escaladas por [math] \ sigma [/ math] y (3 ) proyectado en un espacio de salida ortogonal.
SVD es una herramienta extremadamente poderosa en la práctica. Por ejemplo,
- ¿Cuándo es la estimación de máxima verosimilitud de una matriz de covarianza no positiva semi-definida?
- Dadas las matrices A y B, ¿cómo resuelvo C en la ecuación A = BC usando un método no numérico?
- ¿Cuáles son los mejores recursos para el análisis numérico distribuido / algoritmos de matriz?
- ¿Qué biblioteca de Python es mejor para cálculos simples de matriz dispersa, PySparse o SciPy?
- Álgebra lineal: ¿Cuál es la mejor manera de calcular vectores propios para una matriz grande (~ 6000 x 6000)?
- El análisis de componentes principales en estadística es un SVD,
- La formación del haz en la comunicación inalámbrica se realiza utilizando SVD del canal inalámbrico,
- La aproximación óptima de rango k de una matriz (bajo la norma de Frobenius) es la SVD truncada, manteniendo los primeros k componentes.
¿Y aún más hermoso para los practicantes? [3] En R o Matlab: svd (). Bam Magia.
[1] Anotación tomada de las notas de conferencia ee263 del profesor Stephen Boyd, disponibles en línea en http://www.stanford.edu/class/ee…
[2] Hipérbole. No te ofendas si estás en el campo de descomposición QR / Cholesky / eigenvalue.
[3] Como dijo Neal, generalmente se considera un punto culminante solo en clases de álgebra lineal orientadas computacionalmente. En clases más teóricas, la SVD no se enfatiza tanto.
PD echa un vistazo a la introducción del SVD del Prof. Boyd en su clase: 3:00 en el clip de Youtube