Está en la página 1de 20

Descomposición de valores singulares:

procesamiento de imágenes, lenguaje natural


Procesamiento y redes sociales
Angel Moises Cruz Cruz
February 8, 2024

Abstract
Abstract
El análisis de datos es fundamental en diversas disciplinas,
y técnicas como el análisis de componentes principales (PCA),
el análisis semántico latente (LSA) y la descomposición en val-
ores singulares aleatorios (rSVD) son herramientas importantes
en este campo. Este documento presenta una visión general de
estas técnicas y sus aplicaciones en el procesamiento de datos.
PCA se utiliza para reducir la dimensionalidad y encontrar pa-
trones en conjuntos de datos complejos, mientras que LSA es
útil para analizar la estructura semántica en datos de lenguaje
natural. Además, rSVD ofrece una alternativa eficiente para
calcular la SVD en matrices de gran tamaño. Se discuten ejem-
plos de aplicación en áreas como la genética, el procesamiento
de lenguaje natural y las redes sociales, destacando la impor-
tancia de estas técnicas en el análisis de datos moderno.
Keywords: Análisis de componentes principales, Análisis semántico latente,
Descomposición en valores singulares aleatorios, Reducción de dimensionali-
dad, Clustering, Procesamiento de lenguaje natural, Genética, Redes sociales,
Minerı́a de datos.

1 Introduccion
La Descomposición en Valores Singulares (SVD) es una operación matemática
utilizada en álgebra lineal que tiene aplicaciones en campos como la ciencia
de datos, el aprendizaje automático y la inteligencia artificial. Es la base
matemática del análisis de componentes principales en el análisis de datos y
del análisis semántico latente en el procesamiento de lenguaje natural. Esta
operación transforma una matriz densa en una matriz diagonal, lo cual es muy
útil en álgebra lineal. Al calcular la SVD de una matriz, obtenemos información
sobre cómo la matriz actúa en el espacio, como rotación, reflexión, estiramiento

1
y/o compresión. Esto nos permite controlar cómo nuestros cálculos se ven afec-
tados por perturbaciones, como mediciones ruidosas. La SVD se puede aplicar a
cualquier matriz y tiene múltiples usos en inteligencia artificial, lo que justifica
su propio capı́tulo en el libro. Aunque no entraremos en detalles sobre cómo
calcular la SVD de una matriz, podemos utilizar paquetes de software como
numpy.linalg.svd en Python para hacerlo fácilmente. Nuestro enfoque principal
es comprender cómo funciona la SVD y por qué es importante para reducir los
requisitos de almacenamiento y cómputo de un problema sin perder información
esencial, ası́ como su papel en la agrupación de datos.

2 Factorización matricial
La factorización de matrices es un proceso esencial en álgebra lineal que nos per-
mite descomponer una matriz en componentes más simples y significativos. Esta
técnica tiene aplicaciones en diversos campos, desde el análisis de datos hasta
el procesamiento de imágenes y el aprendizaje automático. Al igual que de-
scomponemos un número en factores primos para entender mejor su estructura,
la factorización de matrices nos brinda una forma de comprender la estructura
subyacente y la información contenida en conjuntos de datos representados por
matrices.

Una de las factorizaciones más importantes es la Descomposición en Valores


Singulares (SVD), que descompone una matriz en tres componentes principales:
U , Σ y V t . En esta descomposición, las matrices U y V son matrices unitarias, lo
que significa que tienen columnas y filas ortogonales. La matriz Σ es una matriz
diagonal que contiene los valores singulares de la matriz original, ordenados de
mayor a menor importancia. La SVD nos permite representar y analizar datos
de manera eficiente, ya que nos permite reducir la dimensionalidad de la matriz
original conservando la información más relevante.
La SVD tiene una amplia gama de aplicaciones en diferentes áreas. Por
ejemplo, en el procesamiento de imágenes, se utiliza para la compresión de
imágenes, reduciendo el tamaño de las mismas sin perder información impor-
tante. En el procesamiento de lenguaje natural, se utiliza para la extracción
de caracterı́sticas y la reducción de la dimensionalidad en modelos de proce-
samiento de texto. Además, en el campo del aprendizaje automático, se utiliza
en técnicas de recomendación, análisis de datos y reconocimiento de patrones.
Otra aplicación importante de la factorización de matrices es en la resolución
de sistemas de ecuaciones lineales y la aproximación de matrices de alta dimen-
sionalidad. También se utiliza en la resolución de problemas de optimización y
en la implementación de algoritmos de aprendizaje automático.

2
3 Matrices diagonales

Las matrices diagonales son matrices especiales que tienen ceros en todas
partes, excepto en la diagonal principal, donde pueden tener diferentes valores.
Al multiplicar un vector por una matriz diagonal, estamos escalando el vector
en diferentes direcciones del espacio. Los valores en la diagonal determinan la
magnitud del estiramiento o compresión en cada dirección. Podemos pensar
en esta operación como multiplicar el vector por un escalar en cada dirección,
pero con la capacidad adicional de invertir la orientación del vector si los valores
diagonales son negativos.
La descomposición en valores singulares nos revela información crucial sobre
cómo una matriz se comporta de manera similar a una matriz diagonal en ciertas
direcciones del espacio. Si una matriz no es diagonal, la SVD nos proporciona
las direcciones en las cuales la matriz se estira o comprime, ası́ como la magnitud
de esta operación en cada dirección.
Cuando multiplicamos matrices por matrices diagonales desde la izquierda
o desde la derecha, estamos escalando las filas o columnas de la matriz original
por los valores diagonales respectivos de la matriz diagonal. Esto se puede
ilustrar mediante ejemplos donde mostramos cómo la matriz original se escala
en diferentes direcciones dependiendo de la posición de la matriz diagonal en la
multiplicación.
Por ejemplo, considerando la siguiente matriz diagonal Σ:
 
2 0 0
0 −1 0
0 0 3

Si multiplicamos una matriz A por Σ desde la derecha, AΣ, escaları́amos las


columnas de A por los valores diagonales de Σ. Por ejemplo, si A es:
 
1 4 7
2 5 8
3 6 9

El resultado de la multiplicación serı́a:


    
1 4 7 2 0 0 2 8 14
2 5 8 0 −1 0 = −2 −5 −8
3 6 9 0 0 3 9 18 27

3
4 Matrices como transformaciones lineales que
actúan en el espacio
Una forma en que podemos ver las matrices es como transformaciones lineales
(sin deformación) que actúan sobre vectores en el espacio y sobre el espacio
mismo. Si no se permite la deformación porque harı́a que una operación fuera no
lineal, ¿qué acciones están permitidas? Las respuestas son rotación, reflexión,
estiramiento y/o compresión, que son todas operaciones no deformantes. La
descomposición en valores singulares A = U ΣV T captura este concepto. Cuando
A actúa sobre un vector v, revisemos la multiplicación Av = U ΣV T v paso a
paso:

1. Primero, v se rota/refleja debido a la matriz ortogonal V T .


2. Luego, se estira/comprime a lo largo de direcciones especiales debido a la
matriz diagonal Σ.
3. Finalmente, se rota/refleja nuevamente debido a la otra matriz ortogonal
U.

Las reflexiones y rotaciones realmente no cambian el espacio, ya que conser-


van el tamaño y las simetrı́as (piensa en rotar un objeto o mirar su reflejo en
un espejo). La cantidad de estiramiento y/o compresión codificada en la matriz
diagonal Σ (a través de sus valores singulares en la diagonal) es muy informativa
con respecto a la acción de A.

4.0.1 Matriz Ortogonal


Una matriz ortogonal tiene filas y columnas ortogonales. Nunca estira o com-
prime, solo rota o refleja, lo que significa que no cambia el tamaño y la forma
de los objetos cuando actúa sobre ellos, solo su dirección u orientación. Como
sucede con muchas cosas en matemáticas, estos nombres son confusos. Se llama
matriz ortogonal aunque sus filas y columnas son ortonomales, lo que significa
ortogonales y de longitud igual a uno. Un hecho más útil: si C es una matriz
ortogonal, entonces CC T = C T C = I, es decir, la inversa de esta matriz es su
transpuesta.
Calcular la inversa de una matriz suele ser una operación muy costosa, pero
para las matrices ortogonales, todo lo que tenemos que hacer es intercambiar
sus filas por sus columnas.
Ilustramos estos conceptos usando matrices bidimensionales ya que son fáciles
de visualizar. En las siguientes subsecciones, exploramos:

• La acción de una matriz A en los vectores singulares derechos, que son


las columnas v1 y v2 de la matriz V . Estos se envı́an a múltiplos de los
vectores singulares izquierdos u1 y u2 , que son las columnas de U .
• La acción de A en los vectores unitarios estándar e1 y e2 . También nota-
mos que el cuadrado unitario se transforma en un paralelogramo.

4
• La acción de A en un vector general x. Esto nos ayudará a comprender
las matrices U y V como rotaciones o reflexiones en el espacio.
• La acción de A en el cı́rculo unitario. Vemos que A transforma el cı́rculo
unitario en una elipse, con sus ejes principales a lo largo de los vectores
singulares izquierdos (u) y las longitudes de sus ejes principales son los
valores singulares (σ). Dado que los valores singulares están ordenados de
mayor a menor, entonces u1 define la dirección con la mayor variación, y
u2 define la dirección con la segunda variación más grande, y ası́ sucesi-
vamente.

4.1 Acción de A sobre los vectores singulares derechos


Sea A la matriz 2 × 2:  
1 5
A=
−1 2
Su descomposición en valores singulares A = U ΣV T está dada por:
   
0.93788501 0.34694625 5.41565478 0 0.10911677 0.99402894
A=
0.34694625 −0.93788501 0 1.29254915 0.99402894 −0.10911677

La expresión A = U ΣV T es equivalente a:

AV = U Σ

ya que todo lo que tenemos que hacer es multiplicar A = U ΣV T por V desde


la derecha y explotar el hecho de que V T V = I debido a la ortogonalidad de V .
Podemos pensar en AV como la matriz A actuando sobre cada columna de
la matriz V . Dado que AV = U Σ, entonces la acción de A sobre las columnas
ortogonales de V es la misma que estirar/comprimir las columnas de U por los
valores singulares. Es decir:

Av1 = σ1 u1 y Av2 = σ2 u2

4.2 Acción de A sobre los Vectores Unitarios Estándar y


el Cuadrado Unitario
La matriz A envı́a los vectores unitarios estándar a sus propias columnas y
transforma el cuadrado unitario en un paralelogramo. No hay deformación
(curvatura) del espacio. La Figura 6-6 muestra esta transformación.

4.3 Acción de A sobre el Cı́rculo Unitario


La siguiente figura muestra que la matriz A envı́a el cı́rculo unitario a una
elipse. Los ejes principales están a lo largo de los vectores u y las longitudes
de los ejes principales son iguales a los valores singulares. Nuevamente, dado
que las matrices representan transformaciones lineales, hay reflexión/rotación y

5
estiramiento/compresión del espacio, pero no deformación. La matriz A envı́a
el cı́rculo unitario a una elipse con ejes principales a lo largo de los vectores
singulares izquierdos y longitudes de los ejes principales iguales a los valores
singulares.

4.3.1 La Descomposición Polar


La descomposición polar:
A = QS
Es una manera muy fácil de mostrar geométricamente cómo un cı́rculo se trans-
forma en una elipse.

4.4 Descomposición de la Transformación de Cı́rculo a


Elipse Según la Descomposición en Valores Singulares
La siguiente figura muestra cuatro subgráficas que desglosan los pasos de la
transformación de cı́rculo a elipse ilustrada anteriormente:

1. Primero multiplicamos el cı́rculo unitario y los vectores v1 y v2 por V T .


Dado que V T V = I, tenemos V T v1 = e1 y V T v2 = e2 . Ası́ que, al
principio, los vectores singulares derechos se enderezan, alineándose cor-
rectamente con los vectores unitarios estándar.
2. Luego multiplicamos por Σ. Todo lo que sucede aquı́ es estirar/comprimir
los vectores unitarios estándar por σ1 y σ2 (el estiramiento o compresión
dependen de si la magnitud del valor singular es mayor o menor que uno).
3. Finalmente multiplicamos por U . Esto refleja la elipse a través de una
lı́nea o la rota cierta cantidad en el sentido de las agujas del reloj o en
sentido contrario.

6
5 Matrices de Rotación y Reflexión
Las matrices U y V T que aparecen en la descomposición en valores singulares
A = U ΣV T son matrices ortogonales. Sus filas y columnas son ortonormales, y
su inversa es igual a su transpuesta. En dos dimensiones, las matrices U y V T
pueden ser matrices de rotación o reflexión (respecto a una lı́nea).

5.1 Matriz de Rotación


Una matriz que rota en sentido horario un ángulo θ está dada por:
 
cos θ sin θ
− sin θ cos θ

La transpuesta de una matriz de rotación es una rotación en la dirección


opuesta. Entonces, si una matriz rota en sentido horario un ángulo θ, entonces
su transpuesta rota en sentido antihorario por θ y está dada por:
 
cos θ − sin θ
sin θ cos θ

5.2 Matriz de Reflexión


Una matriz de reflexión sobre una lı́nea L que forma un ángulo θ con el eje x
es:  
cos 2θ sin 2θ
sin 2θ − cos 2θ
La pendiente de la recta L es tan θ y pasa por el origen, por lo que su
ecuación es y = tan θ · x. Esta lı́nea actúa como un espejo para la operación de
reflexión.
El determinante de una matriz de rotación es 1, y el determinante de una
matriz de reflexión es -1.
En dimensiones más altas, las matrices de reflexión y rotación lucen difer-
entes. Se debe asegurar de entender el objetivo con el que se esta tratando. Es
decir, si tenemos una rotación en un espacio tridimensional, ¿sobre qué eje? Si
tenemos una reflexión, ¿sobre qué plano?.

7
6 Acción de A sobre un Vector General x
Una ves visto cómo la acción de A afecta a los vectores singulares derechos
(que se transforman en vectores singulares izquierdos), a los vectores unitarios
estándar (que se transforman en las columnas de A), al cuadrado unitario (que
se transforma en un paralelogramo) y al cı́rculo unitario (que se transforma
en una elipse cuyos ejes principales están alineados con los vectores singulares
izquierdos y cuyas longitudes son iguales a los valores singulares). Por último,
hemos explorado cómo A actúa sobre un vector general, no especial, x. Este
vector se transforma en otro vector general, Ax. Sin embargo, descomponer
esta transformación en pasos utilizando la descomposición en valores singulares
resulta esclarecedor.
Recordemos nuestra matriz A y su descomposición en valores singulares:
 
0.93788501 0.34694625
0.34694625 −0.93788501
   
1 5 T
5.41565478 0 
A= = U ΣV =   
−1 2  0 1.29254915 
0.10911677 0.99402894 
0.99402894 −0.10911677
Tanto U como V T en esta descomposición en valores singulares resultan ser
matrices de reflexión. Las rectas LU y LV T que actúan como espejos para
estas reflexiones se trazan en la Figura 6-9, y sus ecuaciones son fáciles de
encontrar a partir de sus respectivas matrices: cos 2θ y sin 2θ están en la primera
fila, ası́ que podemos usar esos valores para encontrar la pendiente tan θ. La
ecuación de la lı́nea a lo largo de la cual V T refleja es entonces y = tan θV T x =
0.8962347008436108x, y la de la lı́nea a lo largo de la cual U refleja es y =
tan θU x = 0.17903345403184898x. Dado que Ax = U ΣV T x, primero x se refleja
a través de la lı́nea LV T , llegando a V T x. Luego, cuando multiplicamos por
Σ desde la izquierda, la primera coordenada de V T x se estira horizontalmente
por el primer valor singular, y la segunda coordenada se estira por el segundo
valor singular, obteniendo ΣV T x. Finalmente, cuando multiplicamos por U , el
vector ΣV T x se refleja a través de la lı́nea LU , llegando a Ax = U ΣV T x. La
siguiente figura ilustra este proceso.

7 Tres Formas de Multiplicar Matrices


Los algoritmos eficientes para la multiplicación de matrices son muy deseables
en la era de los grandes datos. En teorı́a, existen tres formas de multiplicar dos
matrices Am×n y Bn×s :
1. Enfoque fila-columna: Se produce una entrada abij a la vez tomando el
producto punto de la i-ésima fila de A con la j-ésima columna de B:
n
X
abij = Filai (A) · Columnaj (B) = aik bkj
k=1

8
2. Enfoque columna-columna: Se produce una columna ABcoli a la vez com-
binando linealmente las columnas de A usando las entradas de la i-ésima
columna de B:

ABcoli = b1i Col1 (A) + b2i Col2 (A) + · · · + bni Coln (A)

3. Enfoque columna-fila: Se producen piezas de rango uno del producto, una


pieza a la vez, multiplicando la primera columna de A con la primera fila
de B, la segunda columna de A con la segunda fila de B, y ası́ sucesiva-
mente. Luego, se suman todas estas matrices de rango uno para obtener
el producto final AB:

AB = Col1 (A)Row1 (B) + Col2 (A)Row2 (B) + · · · + Coln (A)Rown (B)

Estas formas de multiplicación de matrices nos ayudan a comprender la util-


idad de la descomposición en valores singulares. Podemos expandir el producto
A = U ΣV T de la descomposición en valores singulares como una suma de ma-
trices de rango uno, utilizando el enfoque columna-fila para la multiplicación
de matrices. Aquı́, multiplicamos la matriz U Σ (que escala cada columna Ucoli
de U por σi ) con V T . El gran beneficio de esta expresión es que divide A en
una suma de matrices de rango uno, dispuestas según su orden de importancia,
ya que los σ’s están ordenados en orden decreciente. Además, proporciona una
manera sencilla de aproximar A mediante matrices de rango inferior: desechar
los valores singulares más bajos. El teorema de Eckart-Young-Mirsky afirma
que esta es, de hecho, la mejor manera de encontrar una aproximación de rango
bajo de A, cuando la cercanı́a de la aproximación se mide utilizando la norma
de Frobenius (que es la raı́z cuadrada de la suma de los cuadrados de los valores
singulares) para matrices.

7.1 Algoritmos para la Multiplicación de Matrices


Encontrar algoritmos eficientes para la multiplicación de matrices es un objetivo
esencial, pero sorprendentemente difı́cil. En los algoritmos de multiplicación de

9
matrices, ahorrar incluso una operación de multiplicación vale la pena (ahor-
rar en la adición no es tan importante). Recientemente, DeepMind desarrolló
AlphaTensor (2022) para descubrir automáticamente algoritmos más eficientes
para la multiplicación de matrices. Esto es un hito porque la multiplicación de
matrices es una parte fundamental de una vasta gama de tecnologı́as, incluyendo
redes neuronales, gráficos por computadora y computación cientı́fica.

8 El Panorama General
Hasta ahora nos hemos centrado en la descomposición en valores singulares de
una matriz A = U ΣV T en términos de la acción de A en el espacio y en términos
de la aproximación de A utilizando matrices de rango inferior. Antes de pasar
a las aplicaciones relevantes para la IA, tengamos una perspectiva panorámica
y abordemos el panorama general.
Dada una matriz de números reales, queremos entender lo siguiente, depen-
diendo de nuestro caso de uso:

• Si la matriz representa datos que nos interesan, como imágenes o datos


tabulares, ¿cuáles son los componentes más importantes de esta matriz
(datos)?
• ¿En qué direcciones importantes se dispersan principalmente los datos
(direcciones con más variación en los datos)?
• Si se piensa en una matriz Am×n como una transformación desde el espacio
inicial Rn hasta el espacio objetivo Rm , ¿cuál es el efecto de esta matriz
en los vectores en Rn ? ¿A qué vectores son enviados en Rm ?
• ¿Cuál es el efecto de esta matriz en el espacio mismo? Dado que esta es
una transformación lineal, sabemos que no hay deformación del espacio,
pero hay estiramiento, compresión, rotación y reflexión del espacio.
• Muchos sistemas fı́sicos pueden representarse como un sistema de ecua-
ciones lineales Ax = b. ¿Cómo podemos resolver este sistema (encontrar
x)? ¿Cuál es la forma más eficiente de hacer esto, dependiendo de las
propiedades de A? Si no hay solución, ¿hay una solución aproximada que
satisfaga nuestros propósitos? Tenga en cuenta que aquı́ estamos buscando
el vector desconocido x que se transforma en b cuando A actúa sobre él.

La descomposición en valores singulares se puede utilizar para responder


a todas estas preguntas. Las dos primeras son intrı́nsecas a la matriz en sı́,
mientras que las dos últimas tienen que ver con el efecto de multiplicar la matriz
con vectores (la matriz actúa sobre el espacio y los vectores en este espacio).
La última pregunta tiene que ver con el problema muy importante de resolver
sistemas de ecuaciones lineales y aparece en todo tipo de aplicaciones.
Por lo tanto, podemos investigar una matriz de números de dos maneras:

• ¿Cuáles son sus propiedades intrı́nsecas?

10
• ¿Cuáles son sus propiedades cuando se ve como una transformación?
Estos dos están relacionados porque las propiedades intrı́nsecas de la matriz
afectan cómo actúa sobre los vectores y el espacio.
Algunas propiedades a tener en cuenta son:
• A envı́a los vectores ortonormales vi (vectores singulares derechos) de su
espacio inicial a múltiplos escalares de los vectores ortonormales ui (vec-
tores singulares izquierdos) de su espacio objetivo: Avi = σi ui .
• Si nuestra matriz es cuadrada, entonces el valor absoluto de su determi-
nante es igual al producto de todos sus valores singulares: σ1 σ2 · · · σr .
• El número de condición de la matriz, con respecto a la norma l2 , que es la
distancia usual en el espacio euclidiano, es la razón entre el mayor valor
singular y el menor valor singular: κ = σσr1 .

8.1 El Número de Condición y la Estabilidad Computa-


cional
El número de condición es muy importante para la estabilidad computacional:
• El número de condición mide cuánto estira el espacio A. Si el número de
condición es demasiado grande, entonces estira el espacio demasiado en
una dirección en comparación con otra dirección, y podrı́a ser peligroso
hacer cálculos en un espacio tan extremadamente estirado. Resolver Ax =
b cuando A tiene un número de condición grande hace que la solución
x sea inestable en el sentido de que es extremadamente sensible a las
perturbaciones en b. Un pequeño error en b resultará en una solución x
que es muy diferente de la solución sin el error en b. Es fácil imaginar esta
inestabilidad geométricamente.
• Resolver numéricamente Ax = b (por ejemplo, mediante eliminación gaus-
siana) y métodos iterativos funciona bien cuando las matrices involucradas
tienen números de condición razonables (no muy grandes).
• Una cosa sobre una matriz con un número de condición especialmente
grande: estira el espacio tanto que casi se colapsa en un espacio de di-
mensión inferior. Lo interesante es que si decidimos desechar ese valor
singular muy pequeño y, por lo tanto, trabajar en el espacio colapsado de
dimensión inferior, nuestros cálculos se vuelven perfectamente bien. Ası́
que en los lı́mites de la extre- madura yace la normalidad, excepto que
esta normalidad ahora se encuentra en una dimensión inferior.
• Muchos métodos numéricos iterativos, incluido el muy útil descenso de
gradiente, tienen matrices involucradas en su análisis. Si el número de
condición de estas matrices es demasiado grande, entonces el método iter-
ativo puede no converger a una solución. El número de condición controla
qué tan rápido convergen estos métodos iterativos.

11
9 Los Ingredientes de la Descomposición en Val-
ores Singulares
Despues de analizar a fondo la fórmula: A = U ΣV T . Utilizamos Python para
calcular las entradas de U , Σ y V , pero ¿qué son exactamente estas entradas?
La respuesta es breve, si conocemos lo que son los autovectores y autovalores.
Enumeramos los ingredientes de U , Σ y V :

• Las columnas de V (los vectores singulares derechos) son los autovectores


ortonormales de la matriz simétrica AT A.
• Las columnas de U (los vectores singulares izquierdos) son los autovectores
ortonormales de la matriz simétrica AAT .

• Los valores singulares σ1 , σ2 , . . . , σr son las raı́ces cuadradas de los au-


tovalores de AT A o AAT . Los valores singulares son no negativos y se
disponen en orden decreciente. Los valores singulares pueden ser cero.
• Avi = σi ui .

Cada matriz real simétrica semidefinida positiva (con autovalores no nega-


tivos) es diagonalizable S = P DP −1 , lo que significa que es similar a una matriz
diagonal D cuando se ve en un conjunto diferente de coordenadas (las columnas
de P ). AT A y AAT resultan ser ambas simétricas semidefinidas positivas, por
lo que son diagonalizables.

10 Descomposición en Valores Singulares vs. De-


scomposición en Autovalores
Es importante aprender más sobre las matrices simétricas si queremos entender
los ingredientes de la descomposición en valores singulares. Esto también nos
ayudará a discernir la diferencia entre la descomposición en valores singulares
A = U ΣV T y la descomposición en autovalores A = P DP −1 cuando esta última
existe.
La descomposición en valores singulares (SVD) siempre existe, pero la de-
scomposición en autovalores solo existe para matrices especiales, llamadas diag-
onalizables. Las matrices rectangulares nunca son diagonalizables. Las matrices
cuadradas pueden o no ser diagonalizables. Cuando la matriz cuadrada es diag-
onalizable, la SVD y la descomposición en autovalores no son iguales, a menos
que la matriz sea simétrica y tenga autovalores no negativos.
Podemos pensar en una jerarquı́a en términos de la deseabilidad de las ma-
trices:

1. Las mejores y más fáciles matrices son las matrices cuadradas diagonales
con el mismo número a lo largo de la diagonal.

12
2. Las segundas mejores son matrices cuadradas diagonales D que no nece-
sariamente tienen los mismos números a lo largo de la diagonal.
3. Las terceras mejores matrices son matrices simétricas. Estas tienen auto-
valores reales y autovectores ortogonales. Son el siguiente tipo de matrices
más cercano a las matrices diagonales, en el sentido de que son diagonaliz-
ables S = P DP −1 , o similar a una matriz diagonal después de un cambio
de base. Las columnas de P (autovectores) son ortogonales.
4. Las cuartas mejores matrices son matrices cuadradas que son diagonaliz-
ables A = P DP −1 . Estas son similares a una matriz diagonal después
de un cambio de base; sin embargo, las columnas de P (autovectores) no
necesariamente son ortogonales.
5. Las demás matrices son las menos deseables. Estas no son diagonalizables,
lo que significa que no hay un cambio de base que pueda convertirlas en una
matriz diagonal; sin embargo, hay un enfoque más cercano para hacerlas
similares a una matriz diagonal mediante la descomposición en valores
singulares A = U ΣV T . Aquı́ U y V son diferentes entre sı́, y tienen
columnas y filas ortonormales. Su inversa es muy fácil, ya que es igual a
su transpuesta. La descomposición en valores singulares funciona tanto
para matrices cuadradas como no cuadradas.

Dada una matriz A, tanto AT A como AAT resultan ser simétricas y semidefinidas
positivas (lo que significa que sus autovalores son no negativos); por lo tanto, son
diagonalizables con dos bases de autovectores ortogonales. Cuando dividimos
por la norma de estos autovectores ortogonales, se convierten en ortonormales.
Estas son las columnas de V y de U , respectivamente.
AT A y AAT tienen exactamente los mismos autovalores no negativos, λi =
2
σi . Ordenamos la raı́z cuadrada de estos en orden decreciente (manteniendo
el orden correspondiente de los autovectores en U y V ), y obtenemos la matriz
diagonal Σ en la descomposición en valores singulares.
Si la matriz con la que comenzamos es simétrica, ¿cómo se relaciona su
descomposición en valores singulares A = U ΣV T con su diagonalización A =
P DP −1 ? Las columnas de P , que son los autovectores de A simétrica, son
ortogonales. Cuando dividimos por sus longitudes, se convierten en ortonor-
males. Apilamos estos autovectores ortonormales en una matriz en el orden
correspondiente al valor absoluto decreciente de los autovalores y obtenemos
tanto U como V para la descomposición en valores singulares. Ahora, si todos
los autovalores de A simétrica resultan ser no negativos, la descomposición en
valores singulares de esta matriz simétrica semidefinida positiva será la misma
que su descomposición.

13
11 Cálculo de la Descomposición en Valores Sin-
gulares
¿Cómo calculan Python y otros la descomposición en valores singulares (SVD)
de una matriz numéricamente? ¿Qué algoritmos numéricos se encuentran bajo
el capó? La respuesta rápida es: descomposición QR, reflexiones de Householder
y algoritmos iterativos para autovalores y autovectores.
Calcular la descomposición en valores singulares para una matriz general, o
los autovalores y los autovectores para una matriz cuadrada, requiere establecer
un polinomio igual a 0 para resolver los autovalores, luego configurar un sis-
tema lineal de ecuaciones para resolver los autovectores. Esto está lejos de ser
práctico para aplicaciones. El problema de encontrar los ceros de un polinomio
es muy sensible a cualquier variación en los coeficientes de los polinomios, por
lo que el problema computacional se vuelve propenso a errores de redondeo que
están presentes en los coeficientes. Necesitamos métodos numéricos estables que
encuentren los autovectores y autovalores sin tener que calcular numéricamente
los ceros de un polinomio. Además, debemos asegurarnos de que las matrices
involucradas en sistemas lineales de ecuaciones estén bien condicionadas, de lo
contrario, métodos populares como la eliminación gaussiana (la descomposición
LU) no funcionan.
La mayorı́a de las implementaciones numéricas de la descomposición en val-
ores singulares intentan evitar el cálculo de AT A y AT A. Esto es consistente
con uno de los temas de este libro: evitar multiplicar matrices; en su lugar,
multiplicar una matriz con vectores. El método numérico popular para la de-
scomposición en valores singulares utiliza un algoritmo llamado reflexiones de
Householder para transformar la matriz en una matriz bidiagonal (a veces pre-
cedida por una descomposición QR), luego utiliza algoritmos iterativos para
encontrar los autovalores y autovectores. El campo de álgebra lineal numérica
desarrolla tales métodos y los adapta a los tipos y tamaños de matrices que
aparecen en aplicaciones. En la próxima subsección, presentamos un método
iterativo para calcular un autovalor y su autovector correspondiente para una
matriz dada.

12 Cálculo de un Autovector Numéricamente


Un autovector de una matriz cuadrada A es un vector distinto de cero que no
cambia su dirección cuando se multiplica por A; en cambio, solo se escala por
un autovalor λ:

Av = λv
El siguiente algoritmo iterativo es un método numérico sencillo que encuentra
un autovector de una matriz correspondiente a su autovalor más grande:

1. Comience con un vector unitario aleatorio (de longitud 1) v0 .

14
2. Multiplique por A: vi+1 = Avi .
3. Divida por la longitud de vi+1 para evitar que el tamaño de nuestros
vectores crezca demasiado.
4. Deténgase cuando converja.

Este método iterativo es muy simple pero tiene una desventaja: solo encuen-
tra un autovector de la matriz, el autovector correspondiente a su autovalor más
grande. Por lo tanto, encuentra la dirección que se estira más cuando aplicamos
A.  
1 2
Por ejemplo, considere la matriz A = . Comenzamos con el vector
  2 −3
1
v0 = y aplicamos el algoritmo anterior. Notamos el algoritmo después de
0  
−0.38268343
28 iteraciones al vector v = . El código está en el cuaderno de
0.92387953
Jupyter vinculado y la salida se muestra aquı́:
[1, 0]
[0.4472136 0.89442719]
[...]
[ 0.38268343 -0.92387953]
v= [-0.38268343 0.92387953]
Av= [ 1.46507563 -3.53700546]
λ = −3.828427140993716
La siguiente figura muestra esta iteración. Observe que todos los vectores
tienen longitud 1 y que la dirección del vector no cambia cuando el algo-
ritmo converge, capturando ası́ un autovector de A. Para las últimas itera-
ciones, el signo sigue oscilando, por lo que el vector sigue cambiando de ori-
entación, y el autovalor debe ser negativo. De hecho, encontramos que λ =
−3.828427140993716.

13 La Pseudoinversa
Muchos sistemas fı́sicos pueden ser representados (o aproximados) por un sis-
tema lineal de ecuaciones Ax = b. Si x es un vector desconocido que nos interesa,

15
entonces necesitamos dividir por la matriz A para encontrar x. El equivalente
matricial de la división es encontrar la inversa A−1 , de modo que la solución sea
x = A−1 b. Las matrices que tienen una inversa se llaman invertibles. Estas son
matrices cuadradas con un determinante distinto de cero (el determinante es el
producto de los autovalores; el producto de los valores singulares y el determi-
nante tendrán el mismo valor absoluto). Pero, ¿qué pasa con todos los sistemas
cuyas matrices son rectangulares? ¿Qué hay de aquellos con matrices no invert-
ibles? ¿Y aquellos cuyas matrices son cuadradas e invertibles, pero son casi no
invertibles (su determinante está muy cerca de cero)? Todavı́a nos importa en-
contrar soluciones para tales sistemas. El poder de la descomposición en valores
singulares es que existe para cualquier matriz, incluidas aquellas mencionadas
anteriormente, y puede ayudarnos a invertir cualquier matriz.
Dada cualquier matriz y su descomposición en valores singulares A = U ΣV T ,
podemos definir su pseudoinversa como:

A+ = V Σ + U T
donde Σ+ se obtiene de Σ invirtiendo todas sus entradas diagonales excepto
las que son cero (o muy cercanas a cero si la matriz resulta ser mal condicionada).
Esto nos permite encontrar soluciones para cualquier sistema de ecuaciones
lineales Ax = b, a saber, x = A+ b.
La pseudoinversa de una matriz coincide con su inversa cuando esta última
existe.

14 Aplicando la Descomposición en Valores Sin-


gulares a Imágenes
Finalmente estamos listos para aplicaciones del mundo real de la descomposición
en valores singulares. Comenzamos con la compresión de imágenes. Las imágenes
digitales se almacenan como matrices de números, donde cada número corre-
sponde a la intensidad de un pı́xel. Utilizaremos la descomposición en valores
singulares para reducir los requisitos de almacenamiento de una imagen sin
perder su información más esencial. Todo lo que tenemos que hacer es desechar
los valores singulares insignificantes, junto con las columnas correspondientes
de U y las filas de V T . La expresión matemática que nos ayuda aquı́ es:

A = U ΣV T = σ1 Ucol1 Vrow1
T T
+ σ2 Ucol2 Vrow2 T
+ . . . + σr Ucolr Vrowr

Recordemos que los σ están ordenados de mayor a menor valor, ası́ que la
idea es que podemos mantener los primeros σ grandes y desechar el resto de los
σ, que de todos modos son pequeños.
Trabajemos con la imagen en la Figura ??. Cada imagen a color tiene tres
canales: rojo, verde y azul. Cada canal es una matriz de números, al igual que
las que hemos estado trabajando en este capı́tulo.

16
Figure 1: Una imagen digital a color de tamaño 960 × 714 × 3.

Cada canal de la imagen en la Figura 1 es una matriz de tamaño 960 × 714,


por lo que para almacenar la imagen completa necesitamos 960 × 714 × 3 =
2, 056, 320 números. Imagina los requisitos de almacenamiento para un video en
streaming, que contiene muchos cuadros de imagen. Necesitamos un mecanismo
de compresión, para no quedarnos sin memoria. Calculamos la descomposición
en valores singulares para cada canal. Luego realizamos una reducción masiva,
reteniendo para cada canal solo los primeros 25 valores singulares (de 714), 25
columnas de U (de 960) y 25 filas de V T (de 714). La reducción de almace-
namiento para cada canal es sustancial: U ahora es 960 × 25, V T es 25 × 714, y
solo necesitamos almacenar 25 valores singulares (no es necesario almacenar los
ceros de la matriz diagonal Σ). Esto suma 41, 875 números para cada canal, ası́
que para los 3 canales necesitamos almacenar 41, 875 × 3 = 125, 625 números,
una reducción impresionante del 93% en los requisitos de almacenamiento.
Reconstruimos la imagen, un canal a la vez, multiplicando U , Σ y V T re-
ducidos juntos:
T
Canal reducido = U960×25 Σ25×25 V25×714

Figure 2: La imagen original con 714 valores singulares versus la imagen


reducida con solo 25 valores singulares. Ambas imágenes tienen tamaño
960 × 714 × 3 pero requieren diferentes espacios de almacenamiento.

17
Finalmente, superponemos los canales reducidos para producir la imagen
reducida, como se muestra en la Figura 2. Es obvio que perdimos muchos
detalles en el proceso, pero es un compromiso con el que tenemos que vivir.

15 Análisis de Componentes Principales y Re-


ducción de Dimensionalidad
El Análisis de Componentes Principales (PCA) es una técnica ampliamente
utilizada en el análisis de datos para la reducción de dimensionalidad y el agru-
pamiento en el aprendizaje automático no supervisado. Se basa en la descom-
posición en valores singulares de la matriz de datos X, después de centrar los
datos restando el valor promedio de cada caracterı́stica de cada columna de
X. Los componentes principales son los vectores singulares derechos, V T , en la
descomposición X = U ΣV T .
Los estadı́sticos describen el PCA en términos de varianza y descorrelación
de los datos, trabajando con los eigenvectores de la matriz de covarianza de los
datos. La reducción de dimensionalidad en PCA se traduce en encontrar nuevas
caracterı́sticas que sean combinaciones lineales de las originales, maximizando
sucesivamente la varianza y siendo incorrelacionadas entre sı́.
Suponiendo que X es una matriz de datos centrada, su descomposición en
valores singulares es X = U ΣV T . Esto equivale a XV = U Σ, lo que implica que
XVcoli = σi Ucoli , siendo XVcoli una combinación lineal de las caracterı́sticas de
los datos utilizando las entradas de esa columna particular de V .
Al desechar los componentes menos significativos, como las columnas de V y
U correspondientes a los valores singulares más bajos, reducimos la dimensión de
las caracterı́sticas. Esto nos permite visualizar los datos en un espacio de menor
dimensión, facilitando la interpretación. La elección del número de componentes
a retener es objeto de investigación y puede basarse en criterios como la varianza
explicada o la separación de patrones esenciales del ruido en los datos.
Es importante estandarizar los datos antes de aplicar PCA para evitar que
la escala de las mediciones de las caracterı́sticas afecte los resultados. Al es-
tandarizar los datos, trabajamos con la matriz de correlación en lugar de la
matriz de covarianza. En resumen, realizamos la descomposición en valores
singulares en el conjunto de datos estandarizado, donde los componentes prin-
cipales son las columnas de V , y las nuevas coordenadas de los puntos de datos
son las entradas de σi Ucoli .

16 Análisis de Componentes Principales y Agru-


pamiento
El análisis de componentes principales (PCA, por sus siglas en inglés) para
reducir el número de caracterı́sticas de los datos, proporcionando un nuevo con-
junto de caracterı́sticas en orden jerárquico en términos de variación en los datos

18
es increı́blemente útil para visualizar datos, ya que solo podemos visualizar en
dos o tres dimensiones. Es importante poder visualizar patrones y correlaciones
en datos de alta dimensionalidad, por ejemplo, en datos genéticos. A veces, en
el espacio dimensional reducido determinado por los componentes principales,
hay un agrupamiento inherente de los datos por categorı́a. Por ejemplo, si el
conjunto de datos contiene tanto pacientes con cáncer como pacientes sin cáncer,
junto con su expresión genética (generalmente en miles), podrı́amos notar que
al graficar los datos en el espacio de los primeros tres componentes principales,
los pacientes con cáncer se agrupan separadamente de los pacientes sin cáncer.

17 Una Aplicación en Redes Sociales


En la misma lı́nea del análisis de componentes principales y el agrupamiento,
una publicación reciente (diciembre de 2020) de Dan Vilenchik presenta una
maravillosa aplicación en redes sociales: un enfoque no supervisado para car-
acterizar usuarios en plataformas de redes sociales en lı́nea. A continuación se
muestra el resumen de una charla que dio sobre el tema, junto con el resumen
de su publicación:
Dar sentido a los datos que se recopilan automáticamente de plataformas
en lı́nea como redes sociales en lı́nea o plataformas de aprendizaje en lı́nea
es una tarea desafiante: los datos son masivos, multidimensionales, ruidosos
y heterogéneos (compuestos por individuos que se comportan de manera difer-
ente). En esta charla nos enfocamos en una tarea central común a todas las
plataformas sociales en lı́nea, que es la tarea de caracterización de usuarios.
Por ejemplo, identificar automáticamente a un spammer o un bot en Twitter, o
a un estudiante desinteresado en una plataforma de aprendizaje en lı́nea.
Los canales de redes sociales en lı́nea juegan un papel central en nuestras
vidas. La caracterización de usuarios en redes sociales es una pregunta de larga
data, que se remonta a los años 50 cuando Katz y Lazarsfeld estudiaron la influ-
encia en ”Comunicación Masiva”. En la era del Aprendizaje Automático, esta
tarea suele plantearse como un problema de aprendizaje supervisado, donde se
debe predecir una variable objetivo: edad, género, inclinación polı́tica, ingre-
sos, etc. En esta charla exploramos qué se puede lograr de manera no super-
visada. Especı́ficamente, aprovechamos el análisis de componentes principales
para comprender qué patrones y estructuras subyacentes son inherentes a algu-
nas plataformas de redes sociales, pero no a otras, y por qué. Llegamos a una
paradoja similar a la de Simpson que puede brindarnos una comprensión más
profunda del proceso de caracterización de usuarios basado en datos en dichas
plataformas.

18 Análisis Semántico Latente


El análisis semántico latente (LSA, por sus siglas en inglés) es similar al análisis
de componentes principales (PCA) para datos numéricos, pero aplicado a datos

19
de lenguaje natural, como documentos. Utiliza la descomposición de valores
singulares (SVD) para reducir la dimensionalidad de la matriz de conteo de
palabras, preservando la estructura de similitud entre los documentos. Luego,
la similitud del coseno se utiliza para comparar documentos en el espacio de
caracterı́sticas reducido. El LSA se ha utilizado en motores de búsqueda y
autocompletado para mejorar la precisión al recuperar documentos relevantes.

19 Descomposición Singular Aleatorizada


En este capı́tulo, hemos evitado calcular la descomposición singular de manera
intencional porque es costosa. Sin embargo, mencionamos que los algoritmos co-
munes utilizan una descomposición de matriz llamada descomposición QR (que
obtiene una base ortonormal para las columnas de la matriz de datos), luego re-
flejos de Householder para transformarla en una matriz bidiagonal, y finalmente
métodos iterativos para calcular los eigenvectores y eigenvalores requeridos.
Lamentablemente, para los conjuntos de datos cada vez más grandes, las matri-
ces involucradas son demasiado grandes incluso para estos algoritmos eficientes.
Nuestra única salvación es a través del álgebra lineal aleatorizada. Este campo
proporciona métodos extremadamente eficientes para la descomposición de ma-
trices, basándose en la teorı́a del muestreo aleatorio. Los métodos numéricos
aleatorizados funcionan maravillas, proporcionando descomposiciones precisas
de matrices mientras son mucho más baratos que los métodos determinı́sticos.
La descomposición singular aleatorizada muestrea el espacio de columnas de la
gran matriz de datos X, calcula la descomposición QR de la matriz muestreada
(mucho más pequeña), proyecta X sobre el espacio más pequeño (Y = QT X,
entonces X ≈ QY ), luego calcula la descomposición singular de Y (Y = U σVT ).
La matriz Q es ortonormal y aproxima el espacio de columnas de X, por lo que
las matrices σ y V son las mismas para X e Y . Para encontrar el U para X,
podemos calcularlo a partir del U para Y y Q (QUX = QUY ). Como todos los
métodos aleatorizados, deben ir acompañados de lı́mites de error, en términos
de la expectativa de qué tan lejos está la matriz original X de la muestra QY .

20

También podría gustarte