Un ejemplo que me encantó en mi última clase fue la compresión de imágenes con pérdidas mediante la descomposición de valores singulares.
La SVD dice que la transformación correspondiente a cualquier matriz real (no necesariamente cuadrada) puede descomponerse en tres pasos: una rotación que olvida algunas dimensiones, un estiramiento a lo largo de los ejes de coordenadas y, finalmente, una rotación. En otras palabras, toda matriz puede escribirse de la forma HDA, siendo las filas de A ortonormales, las columnas de H ortonormales y D una matriz diagonal cuadrada con entradas no negativas no crecientes en la diagonal.
Considere una fotografía que es un $768\times 1024$ conjunto de $(red,green,blue)$ triples, que también podemos almacenar como 3 matrices $R$ , $G$ y $B$ de números reales. Ahora bien, aunque la matriz $R$ no tiene nada que ver con la transformación del espacio, podemos considerarlo como tal, y utilizando la SVD escribir $R=HDA$ . Llama a los números de la diagonal de $D$ por $\lambda_1\geq \lambda_2 \geq \cdots \geq \lambda_s\geq 0$ y que $D_k'$ sea $diag(\lambda_1,\dots,\lambda_k,0,0,\dots)$ , un $s\times s$ matriz diagonal, y dejemos que $D_k$ sea $diag(\lambda_1,\dots,\lambda_k)$ . Sea $H_k$ sea el $768\times k$ matriz formada a partir de la primera $k$ columnas de $H$ y, del mismo modo, dejemos que $A_k$ sea el $k\times 1024$ matriz formada a partir de la primera $k$ filas de $A$ . Entonces $$R = HDA \approx HD_k' A = H_k D_k A_k,$$ donde $\approx$ es debido a la continuidad, lo que es apropiado si el $\lambda$ que fueron sustituidos por ceros eran pequeños.
Ahora, el remate. Necesitamos $3\cdot 768 \cdot 1024$ (unos 2 megabytes) reales inicialmente para almacenar la fotografía. Pero para almacenar $H_k$ , $D_k$ y $A_k$ para cada uno de los tres colores, sólo necesitamos $3(768\cdot k+k+k\cdot 1024)=5379 k$ números reales. Con $k=25$ , lo que da una relación de compresión de aproximadamente 18. Es decir, el tamaño del archivo pasa de unos 2 mb a unos 130 kb. Es decir, es más rápido por un factor de 20 transmitir las tres matrices $H_{25}, D_{25}, A_{25}$ que transmitir su producto.
La SVD es lo suficientemente rápida de calcular como para que puedas hacer esto al instante (usando Mathematica, por ejemplo) con una imagen del público, y ellos puedan maravillarse con sus propias caras borrosas (pero bastante reconocibles). Además, mostrar el tamaño real de los archivos en disco del mapa de bits original y de la imagen comprimida es bastante impresionante. Al menos, lo es si tus cálculos se aproximan mucho.
Lo realmente impresionante de este ejemplo (para mí, al menos) es que la matriz con la que empezamos es sólo una tabla de datos y no una transformación. Pero al considerarla como si fuera una transformación, ganamos poder sobre ella de todos modos. Esto es una gran motivación para el álgebra lineal; a los estudiantes les resulta mucho más fácil imaginar que se encuentran con una tabla de datos que con una transformación lineal.