Anda di halaman 1dari 10

SVD: Singular Value Decomposition

Daniel Salnikov, Guillaume Benjamin Domenge Treuille, Diego Cue


23 de Noviembre 2017

1. Introducción
El algebra lineal tiene la habilidad de abstraer cualquier objeto que pueda ser considerado un vector y
aplicarle una transformación lineal para conocerlo más a fondo. Estas aciones producen matrices. En este
proyecto se va a utilizar la descomposición en valores singulares para expresar la información de una matriz
de forma compacta y así poder ahorrar espacio en el momento de almacenar la imagen.

2. Compresión de imagen
Cualquier imagen puede ser considerada como una matriz de m × n en la cual cada coordenada es un
pixel; además, las entradas son enteros entre 0 ≤ 255 tales que si aij = 0 entonces el pixel toma el color negro
total y si aij = 255 es blanco. Entonces una imagen de 2000 × 1000 pixeles es una matriz de 2000 × 1000
en la cual cada entrada requiere de 1 byte para ser almacenado; por esto, esta imagen necesitarían 1.91Mb,
en el caso de que se requiera una imagen a color se necesita el triple de capacidad para asignar un color en
RGB a cada pixel para esta imagen de 2 megapixeles.

2.1. El método de los valores singulares


La idea de descomponer una matriz en valores singulares es una extensión de la diagonalización una
matriz cuadrada. El teorema es que toda matriz con entradas en los reales o complejos se puede factorizar
como un producto de tres matrices, entonces para A ∈ Mm×n (C) se tiene.

A = U ΣV ∗

En la ecuación anterior U, V son matrices ortonormales y Σ es una matriz diagonal, además se toma el
conjugado transpuesto de V . Una propiedad fundamental es que A∗ A siempre es una matriz cuadrada que
cumple con la propiedad de que sus eigenvalores siempre son positivos.

σp2 ≤ ....σ22 ≤ σ12

En donde p = minm, n son los eigenvalores de AA y AAen orden decreciente. Para encontrar la descompo-

sición de una matriz es necesario conocer los eigenvalores para buscar los eigevectores ortogonales que van a
ser las columnas de U y de V .

2.2. Relación entre matrices


En esta sección vamos a suponer que A es una matriz con entradas reales tal que la descomposición
produce matrices con entradas en los reales, es decir V ∗ = V T y para A, U además, U U T = I lo mismo para
V.
A = U ΣV T
AT A = (U ΣV T )T U ΣV T

1
= V ΣT U T U ΣV T
= V Σ2 V T
Asi se obtiene la descomposición de AT A en la cual los eigenvalores son las entradas en la diagonal de Σ2
y estos van a ser los vectores singulares derechos de la descomposición, es necesario que formen una base
ortonormal.
AT A = V Σ2 V T ∈ Mn×n (R)
De la misma forma para AAT
AAT = U ΣV T (U ΣV T )T
= U ΣV T V ΣT U T
= U Σ2 U T
Resulta que AAT = U Σ2 U T ∈ Mm×m (R) Asi queda planteada la relación entre los eigenvalores y eigenvec-
tores de A, AT con las matrices U, V para que estas sean ortonormales es necesario resolver un sistema.

2.3. Beneficios de la descomposición


Una vez que se obtiene la ecuación:
 
  v1
σ1 . 0 .....  v2 

0 σ2 .......   .. 
  
A = (u1 , u2 , ...., um ) 
 ... (1)
....   .. 
 
... ... ... σp  .. 
vn

En la cual las σi = λi son los valores singulares de la matriz A. Los vectores ui son los vectores singulares
izquierdos y los vectores vi son los vectores singulares derechos. Es importante mencionar que los valores
singulares son únicos pero que los vectores singulares no lo son, es decir las matrices U, V no son únicas. El
almacenamiento de una imagen requiere de m × n bytes de la misma forma la alamacenación de las matrices
de la descomposición requiere n2 + m2 + n bytes; sin embargo, las propiedades de los valores singulares
permiten reducir la cantidad de bytes reuqeridos.

2.4. Compresión
Sea M ∈ Mm×n (R) una matriz que representa una imagen entonces es posible descomponer a M en
valores singulares.
M = XSY T
La ecuación se puede escribir de la siguiente forma, al tomar en cuenta que los valores singulares distinitos
de 0 son iguales al rank de la matriz M con X ∈ Mm×m (C) y Y ∈ Mn×n (C).
M = x1 σ1 y1T + x2 σ2 y2T + x3 σ3 y3T + ... + xr σr yrT + ... + xn σn ynT +
En los cuales r es el rango de la matriz M , de aquí se aprovecha que como los valores singulares decrecen
(de forma exponencial) entonces la información clave de la imagen está contenida en los primero k valores
singulares de la matriz M , es decir que la ecuación anterior solo se consideran los k primeros sumandos.
M = x1 σ1 y1T + x2 σ2 y2T + x3 σ3 y3T + ... + xk σk ykT
Esto es con k < r para reducir la cantidad de bytes necesarios para almacenar la imagen. Una vez que en
este fomrato se requieren k(m + n + 1) bytes se llega a la cota para k
mn
k<
m+n+1
Esto es porque al tomar un solo valor singular y una sola columna y renglón de X, Y se obtiene el byte del
valor singular y los bytes de los vectores columna. Este procedimiento es conocido en inglés como Principal
component analysis, esto es porque el valor singular más grande suele contener casi toda la información y la
faltante va decreciendo al igual que los valores singulares. Por esto el método de los valores singulares es tan
poderoso; además, de que se puede aplicar a matrices no cuadradas.

2
2.5. Medición
Una razón util para medir el peso de una compresión es:
mn
CR =
k(m + n + 1)
Esto indica en a : b las veces que supera la imagen original en peso a la comprimida una razón de 5 : 1 indica
que la compresión requiere un quinto de la original para ser almacenada. También se utiliza el promedio de

error en la medición del valor del pixel en cada entrada de la matriz.


PP
f (x, y) − f2 (x, y)
M SE =
mn
En donde f asigna los valores originales a la entrada y f1 los de la imagen comprimida. Es util para medir
el deterioro de la imagen comprimida.
 
255
P SN R = 10 log10 √
M SE
Este mide la entrada de sonido (distorsión en la imagen comprimida) es decir la calidad de la imagen
comprimida.

2.6. Conclusión teórica


Es claro que la calidad y tamaño de la imagen comprimida dependen de k que es el número de valores
singulares utilizados para comprimir la imagen, ya que estos determininan el tamaño y calidad de la des-
composición de la imagen en valores singulares. Por esto este es un gran ejemplo del poder del algebra lineal
para manipular y transformar objetos.

3. Implementación del algrotimo SVD


3.1. Script de SVD en Python

import pylab a s pLab


import numpy a s np
import m a t p l o t l i b . p y p l o t a s p l t

A = pLab . mean ( pLab . imread ( ’ f r i e d b e r g . j p g ’ ) , 2 )

B = np . matrix (A)

p l t . imshow (B, cmap= ’ gray ’ )

l i s t S i n g V a l s = (1 , 5 , 10 , 15 , 30 , 50 , 70 , 150 , 500 , 750 , 1100)

f o r i in l i s t S i n g V a l s :

numSVals = i

U, sigma , V = np . l i n a l g . svd (B)

3
compMatrix =
np . matrix (U [ : , : numSVals ] ) ∗ np . d i a g ( sigma [ : numSVals ] ) ∗ np . matrix (V [ : numSVals , : ] )

p l t . imshow ( compMatrix , cmap= ’ gray ’ ) ;

Brevemente se explicará el algoritmo. Esta no es una explicación detallada ya esta fuera del alcance de
este trabajo la comprensión del script y las funciones empleadas de Python.
Las primeras lineas importan las librerias necesarias para facilitar el uso de matrices y arreglos python.
A su vez se usa matplotlib para visualizar las imágenes generadas.
Tomando la imagen titulada ’friedberg.jpg’ se saca la matriz que la representa (Figura 2) y se convierte
a grises.
Se define una lista de valores singulares que van a ser usados en el algoritmo. Se emplea un ciclo for para
generar las 11 diferentes imágenes que van a ser comparadas.
Dentro de cada ciclo del for se hace la multiplicación entre matrices que fue previamente explicada. A su
vez se utiliza en cada ciclo el número de valores singulares que van a ser utilizados en dicha imagen.
Por último se guarda muestra la imagen comprimida y generada.

Para concretar el uso de SVD así como sus ventajas a continuación se dan ejemplos del algoritmo en uso.
A su vez se da una tabla con valores comparativos con cuantos valores singulares fueron usados y el peso
final de la imagen resultante.
Cabe mencionar que este ejemplo que se realizo con una imagen en blanco y negro. Esto con la finalidad
concentrarnos en los calculos de SVD con valores entre 0 y 255. En la siguiente figura se puede observar de
que valores contiene la escala de grises, esto con la finalidad de que se observe la amplia gama de pixeles que
son usados en una imagen en escala de grises.

Figura 1: Escala de grises

Las siguientes imagenes contienen la imagen original y 11 imágenes comprimidas con diferentes valores
singulares. Estos valores son: 1, 5, 10, 15, 30, 50, 70, 150, 500, 750, 1100. La imagen original tiene una
dimensión de 1463 x 2171.

3.2. Comparación de imágenes comprimidas

Figura 2: Una sección de la Matriz de la imagen A

4
Figura 3: Imagen Original Figura 4: Valor Singular = 1

Figura 5: Valores Singulares = 5 Figura 6: Valores Singulares = 10

5
Figura 7: Valores Singulares = 15 Figura 8: Valores Singulares = 30

Figura 9: Valores Singulares = 50 Figura 10: Valores Singulares = 70

6
Figura 11: Valores Singulares = 150 Figura 12: Valores Singulares = 500

Figura 13: Valores Singulares = 750 Figura 14: Valores Singulares = 1100

7
Tabla 1: Número de Valores Singulares contra Peso de la imagen (en kilobytes)

# de Valores Singulares Peso de la Imagen


Imagen Original 116 kb
1 72 kb
5 78 kb
10 87 kb
15 88 kb
30 96 kb
50 98 kb
70 99 kb
150 103 kb
500 115 kb
750 116 kb
1100 116 kb

8
4. Conclusión de la aplicación
En la tabla 1 se puede observar los pesos resultantes al aplicarle el algoritmo SVD. Se puede observar
algo muy peculiar en los datos que arroja la imagen original, la de 500, 750 y 1100 valores singulares. Lo que
se observa es que a partir de 500 valores singulares la diferencia en el peso de la imagen comprimida contra
la original es muy chico, es una diferencia de 1 kb. A su vez para la de 750 y 1100 kb el peso es exactamente
el mismo que el de la imagen original. Esto se debe a que el rango de dichas matrices que corresponden a las
imágenes fue superado por los valores singulares.

5. Aplicaciones de SVD y otros métodos de compresión


La compresión de imágenes basa su objetivo, representar una imagen con menos bits, en la eliminación de
redundancias entre pixeles. Estas redundancias se pueden asimilar en tres divisiones: Redundancia espacial,
la cual se debe a la dependencia en valores entre pixeles vecinos. Redundancia espectral, debida a una
dependencia entre planos de color. Redundancia temporal, debida a la dependencia entre imágenes en una
secuencia de éstas. Todas la técnicas de compresión de imágenes pueden separarse en dos grupos, las “lossless”
y “lossy”, dependiendo de si se pierde información o no al comprimir una imagen. Una técnica lossless de
compresión tiene límites de compresión establecidos de tal manera que no se pierde información, y si uno lo
quisiese podría volver a obtener la imagen original a partir de la comprimida. Estas técnicas de compresión no
llegan a comprimir tanto una imagen como algunas que se consideran como lossy. Las técnicas de compresión
del tipo lossy buscan aproximar los valores entre pixeles vecinos, éstas técnicas pierden un cierto porcentaje
de información según la razón de compresión y por lo tanto no se puede regresar a la imagen original con una
imagen comprimida de esta forma. Técnicas simples de aproximación para darse una idea de cómo funcionan
los lossy; son la interpolación lineal, la división entre dos de la suma de los valores entre dos pixeles vecinos;
y la interpolación polinomial, usando la propiedad de que para cualquiera n puntos, hay un polinomio de
grado n-1 que pasa por todos, asi se podrían representar n valores con un polinomio de grado n-1. Algunos
ejemplos de compresión lossy son el SVD, HOOI(tensor), y Jpeg2000 y aquí hay un par de comparaciones
entre ellas.

Figura 15: Nótese que el PSNR, peak signal to noise ratio, está en base log10

Otro tipo interesante de compresión es la compresión wavelet ya que puede ser tanto lossy como lossless,
dependiendo de qué wavelet se esté usando. Las transformadas wavelets, parecidas a las transformadas de
Fourier, se definen como funciones que circulan alrededor del eje x y que tienen la misma área bajo el eje x
como por encima:

9
6. Bibliografía
Rabbani, Majid, and Paul W. Jones. Digital image compression techniques. 7th ed. Vol. TT7. Eastman
Kodak Company, 1991.
University, Stanford. "Wavelet Compression on Images."Stanford EDU. April 30, 2002. Accessed Novem-
ber 22, 2017. http://cva.stanford.edu/classes/ee482s/homework/hw1.pdf.
Gonzalez, Rafael, and Richard E. Woods. Digital Image Processing. 2nd ed. Upper Sadle River, NJ:
Prentice Hall, 2002.
Verma, Sunny , and Jakkam Phanindra Krishna. Ïmage Compression and Linear Algebra.ÇMI, November
15, 2013. Accessed November 18, 2017. http://www.cmi.ac.in/ ksutar/NLA2013/imagecompression.pdf.
Kalman, Dan. .A Singularly Valuable Decomposition: The SVD of a Matrix."The American University,
February 13, 2002, 1-27. Accessed November 18, 2017.
Cleary, Frank. "Singular Value Decomposition of an Image."Frank Cleary. Accessed November 22, 2017.
http://www.frankcleary.com/svdimage/.
Meacham, Aidan. Ïmage Compression."Buzzard Edu. April 14, 2014. Accessed November 19, 2017.
http://buzzard.ups.edu/courses/2014spring/420projects/math420-UPS-spring-2014-meacham-image-compression.pdf.
Chen, James. Ïmage Compression with SVD."Fourier Engineering. December 13, 2000. Accessed Novem-
ber 21, 2017. http://fourier.eng.hmc.edu/e161/lectures/svdcompression.html.

10

Anda mungkin juga menyukai