La descomposición del valor singular (SVD)
4.1 Deniciones
Comenzaremos con las definiciones formales y luego discutiremos las interpretaciones, aplicaciones y
conexiones a conceptos en conferencias anteriores. Una descomposición de valor singular (SVD) de un
- ¿Deberían las entradas de los vectores en un espacio vectorial ser del mismo campo de sus escalares?
- ¿Qué significa que el determinado es linealmente independiente?
- ¿Son los escalares equivalentes a las matrices de orden 1 x 1?
- Cómo encontrar los valores propios de una matriz en mecánica cuántica
- ¿Podemos definir nuestro propio producto escalar y asegurarnos de que sea bilineal, simétrico y positivo definido?
mn matriz A expresa la matriz como el producto de tres \ simples “matrices:
A = USV>; (3)
dónde:
1. U es una matriz ortogonal mm; 2
2. V es una matriz ortogonal nn;
3. S es una matriz diagonal mn con entradas no negativas, y con las entradas diagonales
ordenados de mayor a menor (a medida que uno va \ noroeste “a \ sureste)”. 3
Tenga en cuenta que, en contraste con la descomposición discutida en la Lección # 8 (A = QDQ> cuando
A tiene la forma X> X), las matrices ortogonales U y V no son lo mismo | desde una necesidad
no sea cuadrado, U y V ni siquiera necesitan tener las mismas dimensiones.
Las columnas de U se denominan vectores singulares izquierdos de A (estos son vectores m). los
Las columnas de V (es decir, las filas de V>) son los vectores singulares correctos de A (estos son n-
vectores). Las entradas de S son los valores singulares de A. Así, con cada vector singular (izquierda
2 Recuerde de la última conferencia que una matriz es ortogonal si sus columnas (o, de manera equivalente, sus filas) son ortonor-
mal vectores, lo que significa que todos tienen la norma 1 y el producto interno de cualquier par distinto de ellos es 0.
3Cuando decimos que una matriz (no necesariamente cuadrada) es diagonal, queremos decir lo que pensarías: solo el
las entradas del formulario (i; i) pueden ser distintas de cero.
4 Incluso pequeños ejemplos numéricos son tediosos de hacer en detalle | la restricción de ortogonalidad en singular
vectores asegura que la mayoría de los números sean desordenados. La forma más fácil de tener una idea de cómo se ven las SVD
es alimentar algunas matrices pequeñas en la subrutina SVD compatible con su entorno favorito (Matlab,
biblioteca numpy de Python, etc.).
5 5
o derecha) hay un valor singular asociado. El vector singular \ rst “o \ top” se refiere a
el asociado con el mayor valor singular, y así sucesivamente. Ver Figura 2.
Para ver mejor cómo la SVD expresa A como una \ lista de sus ingredientes, “verifique que
factorización A = USV> es equivalente a la expresión
A =
minXfm; ng
i = 1
si uiv>
yo ; (4)
donde si es el i-ésimo valor singular y ui; vi son los singulares izquierdo y derecho correspondientes
vectores Es decir, la SVD expresa A como una combinación lineal no negativa de minfm; ng
matrices de rango 1, con los valores singulares que proporcionan los multiplicadores y los productos externos
de los vectores singulares izquierdo y derecho que proporcionan las matrices de rango 1.
Cada matriz A tiene una SVD. La prueba no es profunda, pero se cubre mejor de forma lineal.
curso de álgebra que aquí. Geométricamente, pensando en una matriz mn como un mapeo de
Rn to Rm, este hecho es algo sorprendente: cada matriz A, por extraña que sea, es solo
realizar una rotación en el dominio (multiplicación por V>), seguido de escalado más suma
o eliminar dimensiones (multiplicación por S) según sea necesario, seguido de una rotación en el rango
(multiplicación por U). En la línea de la discusión de la última conferencia, la SVD es \ more o
menos único “. Los valores singulares de una matriz son únicos. Cuando aparece un valor singular
varias veces, los subespacios abarcados por los correspondientes vectores singulares izquierdo y derecho
tienen una definición única, pero se pueden elegir bases ortonormales arbitrarias para cada una.
Hay algoritmos bastante buenos para calcular la SVD de una matriz; los detalles están cubiertos
en cualquier curso de análisis numérico. Es poco probable que alguna vez necesite implementar uno
de estos usted mismo. Por ejemplo, en Matlab, literalmente solo escribe [U, S, V] = svd (A) en
calcule la SVD de A. El tiempo de ejecución del algoritmo es el menor de O (m2n) y
O (n2m), y sus implementaciones estándar han sido muy optimizadas. Un típico
la computadora portátil no debería tener problemas para calcular el SVD de una matriz densa 50005000, pero podría
ahogarse en una matriz 10000 10000. Como comentamos al final de estas notas, si solo quieres
para calcular los valores singulares k más grandes y sus vectores singulares asociados, esto puede ser
calculado significativamente más rápido, en el tiempo aproximadamente O (kmn).