La descomposición en valores singulares es un cierto tipo de descomposición de una matriz rectangular , que se usa ampliamente, debido a su interpretación geométrica visual, para resolver muchos problemas aplicados. Una reformulación de la descomposición en valores singulares, la llamada descomposición de Schmidt , tiene aplicaciones en la teoría de la información cuántica , como en el entrelazamiento .
La descomposición en valores singulares de una matriz permite calcular los valores singulares de una matriz dada, así como los vectores singulares izquierdo y derecho de la matriz :
Donde es la matriz hermitiana conjugada a la matriz , para una matriz real .
Los valores singulares de una matriz no deben confundirse con los valores propios de la misma matriz.
La descomposición en valores singulares es útil para calcular el rango de una matriz , el núcleo de una matriz y la pseudoinversa de una matriz .
La descomposición en valores singulares también se usa para aproximar matrices por matrices de un rango dado.
Deje que la matriz de orden consista en elementos del campo , donde es el campo de los números reales o el campo de los números complejos .
Un número real no negativo se denomina matriz de valor singular cuando existen dos vectores de longitud unitaria y tales que:
yDichos vectores se denominan, respectivamente, vector singular izquierdo y vector singular derecho correspondientes al número singular .
La descomposición en valores singulares de la matriz de orden es la descomposición de la siguiente forma
donde es una matriz de tamaño con elementos no negativos, en la que los elementos que se encuentran en la diagonal principal son números singulares (y todos los elementos que no se encuentran en la diagonal principal son cero), y las matrices (de orden ) y (de orden ) son dos matrices unitarias , que consisten en vectores singulares izquierdo y derecho, respectivamente (a es la matriz transpuesta conjugada k ).
Sea dada la matriz:
Una de las descomposiciones en valores singulares de esta matriz es la descomposición , donde las matrices , y son las siguientes:
ya que las matrices y son unitarias ( y , donde es la matriz identidad ), y es una matriz diagonal rectangular , es decir , si .
Sea la matriz asociada con un operador lineal . La descomposición en valores singulares se puede reformular en términos geométricos. Un operador lineal que mapea elementos espaciales en sí mismo puede representarse como operadores lineales de rotación y estiramiento ejecutados sucesivamente. Por lo tanto, los componentes de la descomposición en valores singulares muestran claramente cambios geométricos cuando un operador lineal asigna un conjunto de vectores de un espacio vectorial a sí mismo o a un espacio vectorial de otra dimensión [1] .
Para una representación más visual, considere una esfera de radio unitario en el espacio . El mapeo de líneas asigna esta esfera a un elipsoide espacial . Entonces los valores singulares distintos de cero de la diagonal de la matriz son las longitudes de los semiejes de este elipsoide. En el caso de que y todos los valores singulares sean diferentes y distintos de cero, la descomposición en valores singulares de una aplicación lineal se puede analizar fácilmente como consecuencia de tres acciones: considerar un elipsoide y sus ejes; luego considere las direcciones en las que el mapeo se asigna a estos ejes. Estas direcciones son ortogonales. Primero, aplicamos la isometría mapeando estas direcciones en ejes de coordenadas . El segundo paso es aplicar un endomorfismo diagonalizado a lo largo de los ejes de coordenadas y expandir/contraer estas direcciones, usando las longitudes de los semiejes como factores de estiramiento. Luego, el producto mapea la esfera unitaria en un elipsoide isométrico . Para determinar el último paso , simplemente aplique isometría a este elipsoide para convertirlo en . Como puede comprobar fácilmente, el producto es el mismo que .
La descomposición en valores singulares se puede utilizar para encontrar matrices pseudoinversas , que se aplican, en particular, al método de mínimos cuadrados .
Si , entonces la matriz pseudoinversa a ella se encuentra mediante la fórmula:
donde es la pseudoinversa de la matriz , obtenida a partir de ella reemplazando cada elemento de la diagonal por su inversa: y transponiendo.
En algunos problemas prácticos, se requiere aproximar una matriz dada por alguna otra matriz con un rango predeterminado . Se conoce el siguiente teorema, que a veces se denomina teorema de Eckart -Yang. [2]
Si requerimos que tal aproximación sea la mejor en el sentido de que la norma euclidiana de la diferencia de matrices y es mínima, bajo la restricción , entonces resulta que la mejor tal matriz se obtiene de la descomposición en valor singular de la matriz por la fórmula:
donde es la matriz en la que todos los elementos de la diagonal se reemplazan por ceros, excepto los elementos más grandes.
Si los elementos de la matriz están ordenados en orden no creciente, entonces la expresión de la matriz se puede reescribir de la siguiente forma:
donde las matrices , y se obtienen a partir de las matrices correspondientes en la descomposición en valores singulares de la matriz cortando exactamente las primeras columnas.
Así, se puede observar que al aproximar la matriz con una matriz de menor rango, realizamos una especie de compresión de la información contenida en : la matriz de tamaño es reemplazada por matrices de menor tamaño y una matriz diagonal con elementos. En este caso, la compresión ocurre con pérdidas: solo la parte más significativa de la matriz se conserva en la aproximación .
En gran parte debido a esta propiedad, la descomposición de valores singulares encuentra una amplia aplicación práctica: en compresión de datos, procesamiento de señales, métodos iterativos numéricos para trabajar con matrices, análisis de componentes principales, análisis semántico latente y otras áreas.
Para una matriz de orden , si es necesario aproximar por una matriz de rango menor que , a menudo se usa una representación de descomposición compacta [3] :
Sólo se calculan columnas y filas . El resto de columnas y filas no se calculan. Esto ahorra mucha memoria cuando .
Pongamos un ejemplo, digamos que este es el número de usuarios, cada uno de los cuales anotó parte de las calificaciones de las películas, cuyo número total será denotado por , luego la matriz (muy escasa, ya que cada usuario calificó solo una pequeña parte de las películas) se denotarán y tendrán una dimensión suficientemente grande .
Si queremos trabajar con una matriz de dimensiones más pequeñas, debemos calcular la descomposición en valores singulares:
en este caso, la matriz , como se mencionó anteriormente, es diagonal. Después de eso, si queremos guardar solo información, entonces debemos tomar , de modo que la suma de los cuadrados de los primeros elementos sea de la suma total de todos los cuadrados de los elementos diagonales .
Entonces obtenemos la dimensión (tomando las columnas), la dimensión y la c . Luego, en lugar de una matriz, podemos manipular una matriz de menor dimensión , que a menudo se interpreta como una matriz de calificaciones de los usuarios por categoría de película.
Los algoritmos numéricos para encontrar la descomposición de valores singulares están integrados en muchos paquetes matemáticos. Por ejemplo, en los sistemas MATLAB y GNU Octave , se puede encontrar con el comando
[ U , S , V ] = svd ( METRO );SVD está incluido en la lista de métodos básicos de muchas bibliotecas matemáticas, incluidas las de distribución gratuita.
Por ejemplo, hay implementaciones
https://www.gnu.org/software/gsl/manual/html_node/Singular-Value-Decomposition.html
https://root.cern.ch/root/htmldoc/guides/users-guide/LinearAlgebra.html#svd
https://software.intel.com/en-us/intel-mkl
https://numpy.org/doc/stable/reference/generated/numpy.linalg.svd.html
https://www.tensorflow.org/api_docs/python/tf/linalg/svd
https://tedlab.mit.edu/~dr/SVDLIBC/
http://www.alglib.net/matrixops/general/svd.php
Vectores y matrices | |||||||||
---|---|---|---|---|---|---|---|---|---|
Vectores |
| ||||||||
matrices |
| ||||||||
Otro |