Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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
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:
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.
La expresión A = U ΣV T es equivalente a:
AV = U Σ
Av1 = σ1 u1 y Av2 = σ2 u2
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.
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).
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.
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)
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:
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 .
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 :
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.
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:
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.
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.
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.
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.
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.
20