Está en la página 1de 12

Descomposición en Valores singulares(SVD)

Año 2010

1
Referencias
[1] R.L. Burden, J.Douglas Faires, Análisis Numérico , Grupo Editorial
Iberoamericana, México, 1985.

[2] J. Demmel, Applied Numerical Linear Algebra, SIAM,Philadelphia, 1997.

2
Hemos visto previamente que toda matriz simétrica A ∈ Ren×n se puede descomponer
A = P DP T , siendo P una matriz ortogonal (P T = P −1 ), D una matriz diagonal que
contiene los autovalores de A. Cuando A no es simétrica, pero si cuadrada, si A es di-
agonizable existe una descomposición de A = SDS −1 , siendo S no singular aunque no
necesariamente ortogonal. Pero, cualquier matriz no es diagonizable ! !.

.... Ahora veremos que toda matriz A ∈ <m×n , m ≥ n (cuadrada o no, simétrica o no)
tiene una factorización de la forma:
A = U DV T ,
donde U ∈ <m×n con columnas ortogonales y V ∈ <n×n matriz ortogonal y D una matriz
diagonal(n x n). Este resultado se llama “ descomposición en valores singulares”(DVS), y
es una de las más importantes entre las descomposiciones de matrices.

... Explicaremos como obtenerla y haremos consideraciones sobre sus aplicaciones.

1. Los valores singulares de una matriz


Para cualquier matriz A de m × n, la matriz AT A de n × n es simétrica y por tanto
puede ser diagonalizada ortogonalmente. Los autovalores de AT A son reales y no negativos
( ≥ 0). Eso se sabe ya que para cualquier autovector u, se tiene que
AT Au = λu
si se multiplica a ambos lados por u, se obtiene la igualdad
uT AT Au = λuT u
que indica que kAuk2 = λkuk2 , por tanto
√ λ ≥ 0.
... Luego, tiene sentido tomar las λi , si λi , i = 1, . . . , n, son los autovalores de AT A.
Definición 1 Si A es una matriz m × n, los valores singulares de A son las raı́ces
cuadradas de los autovalores de AT A, y se denotan mediante σ1 , . . . , σn . Es una con-
vención acomodar los valores singulares de modo que σ1 ≥ σ2 ≥ . . . ≥ σn .
Ejemplo 1: Encontrar los valores singulares de A:

Ejemplo 2

1 1
A = 1 0
0 1

La matriz AT A

 
T 2 1
A A =
1 2
tiene √
autovalores
√ : λ1 = 3, λ2 = 1. En consecuencia los valores singulares de A son :
σ1 = 3, σ2 = 1.

3
Observación : en lo que sigue , la kxk, es la norma 2 de un vector o norma Euclidea.
Para comprender el significado lde los valores singulares de A consideremos los au-
tovectores de AT A. Por ser simétrica sabemos que hay n autovectores ortogonales, que
se pueden considerar de longitud 1. Ası́ sea una base determinada por v1 , v2 , . . . , vn , los
autovectores ordenados en correspondencia con los autovalores λ1 ≥ λ2 ≥ . . . λn . Estos
autovectores satisfacen:
AT Avi = λi vi ,
o equivalentemente
kAvi k2 = λi ,
por consiguiente p
kAvi k = λi .
Ası́ los valores singulares de A son las longitudes de los vectores Av1 , . . . , Avn .
Geométricamente esto tiene una importante interpretación. Si consideramos el ejemplo
1, y si consideramos x ∈ {x : kxk2 = 1}, entonces kAxk2 = Ax · Ax = xT AT Ax =
   
 2 1 x
T T
x A Ax = x1 x2 . 1 = 2x21 + 2x1 x2 + 2x22
1 2 x2

la que es una forma cuadrática.


... Es fácil ver que el valor mı́nimo y el máximo que toma una forma cuadrática sobre
los vectores x con kxk = 1, a partir de la relación

λmin ≤ xT AT Ax ≤ λmax

corresponden al λmin , el menor autovalor de AT A, y λmax el mayor autovalor de  esa matriz.


√ 
−1/√ 2
En el caso del ejemplo de arriba, el autovector correspondiente a λmin = 1 es ,
1/ 2
 √ 
1/√2
y el autovector de λmax = 3 es .
1/ 2
√ √
Por tanto, kAvi k2 = λi , se tiene que σ1 = 3 = kAv1 k, σ2 = 1 = kAv2 k, son
los valores máximo y mı́nimo de las longitudes kAxk, cuando x recorre la circunferencia
unitaria dada por : kxk = 1.
La transformación lineal T con matriz A, T : <2 − −− > <3 transforma el cı́rculo
unidad kxk = 1 en una “elipse”que está sobre el plano de ecuación: x − y − z = 0 (verificar
que la imagen de la transformación es ese plano en <3 ). Las longitudes σ1 , y σ2 son las
longitudes de los semiejes mayor y menor respectivamente de esa elipse.

2. Descomposición en valores singulares


Queremos demostrar que una matriz A de m × n ( m ≥ n) se puede factorizar como

A = U ΣV T

donde U es una matriz con columnas ortogonales de m × n, V es una matriz ortogonal


de n × n, y Σ una matriz “diagonal”de n × n. Si los valores singulares NO NULOS de A
son σ1 ≥ σ2 ≥ . . . ≥ σr > 0, con r ≤ n.

4
Si el rango de A es r < n ( idem para AT A), entonces σr+1 = σr+2 = . . . = σn = 0,
entonces Σ de n × n tendrá una forma en bloques (un bloque diagonal D de r × r (
pudiendo ser r = n), a su derecha una matriz de ceros O de r × n − r, abajo a la izquierda
otra matriz de ceros O de n − r × r, y el último bloque en la diagonal de ceros O de
n−r×n−r :  
D O
Σ=
O O
donde  
σ1 · · · 0
 
D =  ... . . . ... 
0 · · · σr
Si r coincide con n, la D = Σ, esas matrices nulas O no aparecerán. En el caso del
ejemplo 1, previo,la matriz Σ tiene la forma:
√ 
3 √0
Σ= 0 1
0 0
.... Ahora, vemos c’hallar los factores U y V T ?....
Para hallar la matriz ortogonal V primero determinamos una base ortogonal {v1 , . . . , vn }
de vectores de <n compuesta por autovectores de la matriz AT A de n × n.

V = [v1 , v2 , . . . , vn ]

es una matriz ortogonal de n × n.


Con respecto a la determinación de la matriz U de m × n, primero observamos que los
vectores de <m :
Av1 , Av2 , . . . , Avn
es un conjunto de n vectores, tal que dependiendo del r, serán r− ortogonales.
Eso se obtiene de observar que para dos autovectores de AT A, vi y vj con i 6= j, por
ser ortogonales se cumple que

vjT AT Avi = vjT .λi vi = 0


Ası́ Avi es ortogonal a Avj si son no nulos pues vi es ortogonal a vj .
Ahora recordemos que los valores singulares σi = kAvi k, y que los primeros r (pudi-
endo ser r = n) son no nulos. Por tanto, podemos normalizar los Avi , con i = 1, . . . , r,
considerando:
Avi
ui =
σi
para cada i = 1, . . . , r, correspondientes a los σi no nulos.
Eso garantiza que [u1 , . . . , ur ] son ortonormales en <m .
Si r < n, también vemos que para r + 1, ...n,

viT AT Avi = viT .λi vi = 0


si λi = 0, por tanto kAvi k2 = 0, luego Avi = 0, son nulos para i = r + 1......n. Ese es
el caso r < n.

5
En ese caso hay que extender ese conjunto U = [u1 , u2 , ..., ur , ur+1 ....un ] para tener n
vectores ortonormales de <m .
... Esa es la parte más dificil de la factorización que queremos obtener: A = U ΣV T .
La matriz U estará formada por las columnas ortonormales U = [u1 , . . . , ur , |ur+1 , ...un ].
Si m > n, U no es una base ortogonal de Rem×m ( también se puede extender U
agregando vectores del ortogonal del R(A))
...Veamos que con tales matrices V , U , y Σ, se verifica que
A = U ΣV T
Como V T = V −1 por ser una matriz ortogonal, verificar que vale A = U ΣV T , es igual
a ver que ( multiplicando por V ), y pensando que r puede ser menor a n:
AV = U Σ
Sabemos que Avi = σi ui , para i = 1, 2, . . . , r, y que
kAvi k = σi ≥ 0, para i = r + 1, . . . , n.
Por tanto, si r < n,
Avi = 0, para i = r + 1, . . . , n.
Por consiguiente,
AV = A[v1 . . . vn ] = [Av1 . . . Avn ]
entonces
AV = [Av1 . . . Avr , 0 . . . 0] = [σ1 u1 . . . σr ur , 0 . . . 0]

 
σ1 . . . 0
 . .
 . . . . .. O

AV = u1 u2 . . . un  .  = UΣ
 0 . . . σr 
O O

como se requiere para verificar que A = U ΣV T .


Observación 3 Los vectores de las columnas de U se denominan vectores singulares por
la izquierda de A, mientras los vectores de las columnas de V se llaman vectores singulares
por la derecha de A. Las matrices U y V no están determinadas en forma única por A,
en cambio Σ si, porque contiene los valores singulares de A.
Ejemplo 4Encontrar
 una descomposición de valor singular de la matriz
1 1
(i)A = 1 0
0 1  
1 1
La matriz corresponde al Ejemplo 1: A = 1 0 Como antes consideramos AT A, y
0 1

sus autovalores y autovectores. Sabemos que : σ1 = 3, σ2 = 1, y los correspondientes
autovectores de AT A son ....
 √   √ 
1/√2 −1/√ 2
v1 = v2 =
1/ 2 1/ 2

6
Ası́
 √ √  √ 
1/√2 −1/√ 2 3 0
V = yΣ=
1/ 2 1/ 2 0 1
Para U , calculamos
   √ 
√ 1 1  √  2/√6
Av1   1/√2
u1 = = 1/ 3 1 0 
= 1/√6
σ1 1/ 2
0 1 1/ 6
y
   
1 1  √  0√
Av2  −1/√ 2
u2 = = 1 0 = −1/√ 2
σ2 1/ 2
0 1 1/ 2
Consideramos U = [u1 , u2 ] vectores ortogonales de <3 .
ASi, A = U ∗ Σ ∗ V T , donde la Σ es diagonal que contiene los valores singulares,
pudiendo los últimos ser 0, si el rango de A es menora a n.
Otra forma de expresar la DVS de una matriz A.
Para eso consideramo, si m ≥ n,
  
σ1 . . . 0 v1T
  
  ... . . . ... O v2T  
A = U ΣV T = u1 u2 . . . un    .. 
 0 . . . σr  . 
O O vnT
que es igual a
 
v1T
 
σ1 . . . 0  .. 
 . 
 . .
 .. . . . ..
 T 
O v 
= u1 . . . ur |ur+1 . . . un    Tr 
 0 . . . σr  vr+1 
 
O O  ... 
vnT
obteniéndose ...
 
  v1T  
T
σ ... 0  T vr+1
  .1 .. .  v2    . 
= u1 u2 . . . ur  .. . ..   ..  + ur+1 . . . un O  .. 
.
0 . . . σr vnT
vrT
 
  vT
σ . . . 0  1T 
  .1 .  v2 
= u1 u2 . . . ur  .. . . ...   .. 
.
0 . . . σr
vrT
 
vT
  .1 
= σ1 u1 . . . σr ur  ..  = σ1 u1 v1T + . . . + σr ur vrT
vrT

7
Se ha justificado que...

Lema 5 Sea A una matriz m × ncon valores singulares σ1 ≥ σ2 ≥ . . . ≥ σr ≥ σr+1 ≥


. . . ≥ σn y si r es el rango de A .Seanu1 , . . . , ur vectores singulares por la izquierda, y
sean v1 , . . . , vr vectores singulares por la derecha de A correspondientes a esos valores
singulares. Entonces
A = σ1 u1 v1T + σ2 u2 v2T + . . . + σr ur vrT

Observación 6 La DVS de una matriz A da mucha información acerca de A como se


resalta en el siguiente teorema:

Teorema 7 Sea A = U ΣV T una descomposición de valores singulares de una matriz A


de m × n. Sean σ1 , . . . , σr , r ≤ n, todos los valores singulares NO NULOS de A. Entonces

(i) el rango de A es r.

(ii){u1 , u2 , . . . , ur } es una base ortonormal de R(A)

(iii){ur+1 , ur+2 , . . . , un , ...um } es una base ortonormal de N (AT )

(iv){v1 , v2 , . . . , vr } es una base ortonormal de R(AT )

(v) Si r < n, {vr+1 , vr+2 , . . . , vn } es una base ortonormal de N (A)

Demostración.
(i) El rango de A coincide con el rango de AT A, y este depende del nḿero de autoval-
ores no nulos..
(ii) Como Avi , con i = 1, . . . , r son linealmente independientes (ortogonales), y co-
mo ui = (1/σi )Avi , i = 1, . . . , r, entonces {u1 , . . . , ur forman una base ortonormal del
rango(A).
(iii) Como {u1 , . . . , ur , . . . , um forman una base ortonormal de <m , luego por (ii), y con-
siderando que {ur+1 , . . . , um es una base del espacio complementario a R(A), se obtiene
que ese conjunto es una base ortonormal del subespacio N (AT ) o del R(A)⊥ .
(v) Si r < n, como Avr+1 = Avr+2 = . . . Avn = 0, se tiene que {vr+1 , . . . , vn , es un con-
junto ortonormal de vectores contenido en el anulador de A, de dimensión n − r, por lo
que es una base ortonormal del N (A).
(iv) Esta propiedad se desprende de considerar (v) y que {v1 , v2 , . . . , vr } es un conjunto
ortonormal complementario del de (v), por lo que es una base de R(AT ).

Otro resultado importante que se obtiene desde la descomposición DV S ....

Lema 8 Sea A = U ΣV T la descomposición de A de m×n con rango r. Por consiguiente,


la imagen de la esfera unitaria en <n , bajo la transformación matricial que aplica x ∈ <n
en Ax ∈ <m , es
(a)la superficie de un elipsoide en <m si r = n,
(b) un elipsoide sólido en <m si r < n.

Demostración: Sean u1 , . . . , um y v1 , v2 , . . . , vn los vectores singulares por la izquierda y


por la derecha de A, respectivamente. En razón que rango(A) = r, los valores singulares
de A satisfacen σ1 ≥ σ2 ≥ . . . σr > 0, y σr+1 = σr+2 = . . . = σn = 0.

8
 
x1
 x2 
 
Sea x =  ..  un vector unitario de <n . Ahora, como V es una matriz ortogonal,
.
xn
también lo es V T , por tanto V T x es un vector unitario(conserva longitudes), ası́
 
v1T x
 v T x
 2 
V T x =  .. 
 . 
vnT x

de manera que (v1T x)2 + (v2T x)2 + . . . + (vnT x)2 = 1.


Como A = σ1 u1 v1T + . . . + σr ur vrT . Por tanto,
Ax = σ1 u1 v1T x + . . . + σr ur vrT x = (σ1 v1T x)u1 + . . . + (σr vrT x)ur
Ax = (σ1 v1T x)u1 + . . . + (σr vrT x)ur = y1 u1 + . . . + yr ur
donde denotamos con yi = (σi viT x).
(a) Si r = n, entonces corresponde al caso n ≤ m, y
Ax = y1 u1 + . . . + yn un = U y
 
y1
 y2 
 
donde y =  .. . Por consiguiente, como U tiene columnas ortonormales, kAxk2 =
.
yn
ky U U yk = kyk2 . Ası́ kAxk = kyk.
T T

Como
y1 yn
( )2 + . . . + ( )2 = (v1T x)2 + . . . + (vnT x)2 = 1
σ1 σn
lo que muestra que los vectores Ax forman la superficie de un elipsoide en <m .
(b) Si r < n, la única diferencia en los pasos anteriores es que la ecuación se convierte
en
y1 yr
( )2 + . . . + ( )2 ≤ 1
σ1 σr
puesto que despreciamos algunos términos. Esto corresponde a un elipsoide sólido de <m .

2.1. APLICACIONES
Normas y número de condición. Para la norma 2 o Euclı́dea de A (m × n). Como
kAk2 = máx kAxk2
kxk2 =1

donde la norma es la norma Euclı́dea en cada caso. Como kxk = 1, entonces el conjunto de
vectores Ax se encuentra sobre o dentro de un elipsoide cuyos semiejes tienen longitudes
iguales a los valores singulares “distintos de cero”de A. Desde ese resultado se sabe que
el mayor semieje es σ1 , de tal manera que
kAk2 = σ1

9
Ası́ para una matriz cuadrada no singular (si existe A−1 ) el número de condición que
se define
cond2 (A) = kAk2 kA−1 k
se puede expresar usando los valores singulares.
Para eso, si A = U ΣV T , entonces A−1 = V Σ−1 U T . Por tanto los valores singulares
de A−1 son σ11 , . . . , σ1n , y
1 1
≥ ... ≥
σn σ1
1
De aquı́ se obtiene que kA−1 k = σn
, de manera que

cond2 (A) = kAk2 kA−1 k = σ1 /σn .

Ejemplo: Sea la matriz

2.2. Compresión de imágenes digitales


Una de las más importantes y llamativas aplicaciones de la descomposición DV S es
su utilización en la compresión de imágenes digitales de modo que puedan ser trasmitidas
de manera eficiente por medios electrónicos(internet, satélite,etc). El problema que se
quiere considerar es el de saber cuál es la cantidad mı́nima de información que se necesita
trasmitir para lograr imágenes nı́tidas, sin que se pierdan las partes esenciales, y por otra
parte se ahorre almacenamiento.
Supongamos que una matriz A de m × n, representa los tonos de gris de una imagen
con un tamaño de m × n pixeles. La imagen está en un rectángulo y se considera una
grilla de m × n. Cada elemento de la grilla (pixel) tendrá un número asociado indicando
el valor del tono de gris, entre 0 y 255, de la imagen. Ası́ una matriz A de m × n, tiene
en cada lugar (i, j) el valor del gris correspondiente al elemento de la grilla o pixel de la
fila i y columna j de la grilla.
Si se conoce la DV S de la matriz A, es decir

A = σ1 u1 v1T + σ2 u2 v2T + . . . + σr ur vrT

siendo los valores singulares NO NULOS σ1 ≥ σ2 ≥ . . . σr > 0. Los valores singulares más
pequeños provienen de las partes de la imagen con menor interés. Eso se puede observar
si se representa parcialmente

Ak = σ1 u1 v1T + σ2 u2 v2T + . . . + σk uk vkT

con k ≤ r. entonces Ak es una aproximación de A que corresponde solamente a los k


primeros valores singulares y los correspondientes vectores singulares. Se puede descubrir
que se necesita considerar un k << r para rescatar la imagen nı́tida.

Ejemplo 9
Sentencias en MATLAB:

10
Algoritmo 10 En Matlab para levantar una imagen usando los valores singulares de
la matriz de datos (o imagen).

%%%%% para levantar la imagen dada en una matriz de 95 * 95

fid=fopen(’b5.dat’); %% Leer los datos *.dat

x3=fscanf(fid,’%f %f’,[1 9025]); %% guarda en x3 vector los datos

fclose(fid) %% cierra el archivo

%%% para generar la matriz en MATLAB

for i=1:95
for j=1:95
A(i,j)=x3((i-1)*95+j); %% genera la matriz : A(95,95)
end
end
%%%genera la imagen
figure(1)
imagesc(A) %% Imagen verdadera arriba desde la matriz dada.
colormap(gray)

%%% Calculo de valores singulares y vectores por izquiera y derecha

%%% Programa usado en Matlab


n=95;
m=95;
[U,S,V] = svds(A,20); Calcula 20 valores singulares(mayores) y
respectivos vectores U y V (en las columnas).

A6= U(:, 1:6)* D(1:6,1:6)* V(:,1:6)’ ;

figure(2)
imagesc (A6)
colormap(gray)

Imagen con 6 valores ( los mayores)%

Idem con 10 valores.......formar A10

figure(3)

imagesc (A10)

11
Imagen con 10 valores singulares (los 12 mayores)

%%%% 3er. experimento usando 20 valores.

Obsrvación: Otra aplicación, para resolver problemas de cuadrados mı́nimos, lo que se


explicó en clase. Ver la bibliografı́a
Ejercicios
1. Encontrar
 ladescomposición
 DVS de las siguientes matrices:
2 0 3 1
(i) (ii)
0 3
  1 3
0 0  
2 0 1
(iii) 0 3 (iv)
0 2 0
−2 0
Ejercicio 2: Sea A una matriz simétrica.
(a)Demuestre que en este caso los valores singulares coinciden con los valores absolutos
de los autovalores de A. Si A es definida positiva entonces coinciden con los autovalores
de la matriz.
(b)Demuestre que en este último caso la descomposición DV S coincide con la descom-
posición espectral U DU T con U los autovectores de A, y D la matriz diagonal de los
autovalores.
Ejercicio 3: Si A es no singular verificar que si la DV S es A = U ΣV T , entonces
A−1 = V Σ−1 U T .
Ejercicio 4: Demuestre que si A = U ΣV T ,es una DV S de A, entonces los vectores sin-
gulares por la izquierda son autovectores de AAT .
Ejercicio 5: Demuestre que A y AT tienen los mismos valores singulares.
Ejercicio 6: (a) Cuál es la imagen del cı́rculo unidad en <2 por la acción de la matriz del
Ejercicio 1(iii)
(b)Cuál es la imagen de la esfera unidad en <3 por la acción de la matriz del Ejercicio
1(iv).    
1 0,9 10 10 0
Ejercicio 7: Calcular la kAk2 de las matrices: (i) (ii)
1 1 100 100 1
Ejercicio 8: Demuestre que toda matriz cuadrada A puede ser factorizada como A = RQ
donde R es simétrica y Q es ortogonal, considerando:

A = U ΣV T = U Σ(U T U )V T = U ΣU T )(U V T )

Ver que R = U ΣU T , y Q = U V T .
Ejercicio 9: Para restaurar imágenes.
Para matriz b5.dat, hallar los valores singulares y vectores singulares por izquierda y
derecha, y la descomposición:
A = σ1 u1 v1T + . . . + σr ur vrT , y analizar las Ak = σ1 u1 v1T + . . . + σk uk vkT , con k ≤ r.
Para eso, hay que analizar la matriz A guardada en en la PC.( o que le provean sus
docentes). Calcular en el MATLAB los σi , y los ui , y los vi .
Luego levantar las imágenes con Ak , para k = 10, 20, ...r.

12

También podría gustarte