- 1

Descomposición de Matrices y Su Aplicación en Machine Learning
01:47 - 2

Transformaciones Lineales con Matrices en Python: Visualización y Análisis
12:56 - 3

Autovalores y autovectores en transformaciones lineales
06:44 - 4

Cálculo de Autovalores y Autovectores con NumPy en Python
06:45 - 5

Descomposición de matrices: valores y vectores propios
08:37 - 6

Descomposición de Matrices en Valores Singulares
05:29 - 7

Transformaciones Lineales con Matrices: Efectos en el Círculo Unitario
10:53 - 8

Descomposición SVD: Transformaciones de Matrices y Círculo Unitario
06:25 - 9

Impacto de los Valores Singulares en Transformaciones Matriciales
09:17
Transformaciones Lineales con Matrices en Python: Visualización y Análisis
Clase 2 de 18 • Curso de Álgebra Lineal Aplicada para Machine Learning
Contenido del curso
- 10

Procesamiento de Imágenes: Escala de Grises y Normalización
09:47 - 11

Descomposición de imágenes: reducción de tamaño y reconstrucción eficaz
07:41 - 12

Compresión de Imágenes Usando Descomposición en Valores Singulares
05:04 - 13

Cálculo de la seudo inversa de Moore-Penrose en Python
14:28 - 14

Solución de Sistemas Sobredeterminados con Pseudo-Inversa y Python
07:28
¿Cómo entendemos las matrices como transformaciones lineales?
Las matrices pueden entenderse como transformaciones lineales que, al aplicarse a un espacio o un vector, generan una transformación. Cuando aplicamos una matriz, podemos afectar a un vector modificando su tamaño o incluso rotándolo. En el mundo de la programación, podemos llevar esto a la práctica utilizando Python y librerías como NumPy y Matplotlib para representar gráficamente estos cambios.
¿Cómo configuramos nuestro entorno en Python para visualizaciones?
Para empezar, necesitamos importar las librerías necesarias. Aquí va un pequeño fragmento de código en Python que nos permitirá ver los gráficos debajo de cada celda de nuestro notebook:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Posteriormente, definimos nuestras matrices y vectores usando numpy.
¿Cómo definimos y aplicamos una transformación con matrices?
Supongamos que tenemos la siguiente matriz:
A = np.array([[-1, 3], [2, -2]])
Queremos investigar qué transformación genera esta matriz al aplicarla al siguiente vector:
v = np.array([2, 1])
La transformación de un vector v usando una matriz A se realiza a través del producto interno de la matriz y el vector. Pero antes de eso, definamos una función para graficar los vectores.
¿Cómo graficamos vectores en Python?
Es útil tener una función versátil para graficar múltiples vectores. Aquí hay una base de cómo podemos definir y utilizar esta función:
def graficar_vectores(vectores, colores, alpha=1):
plt.figure()
plt.axvline(x=0, color='grey', lw=1)
plt.axhline(y=0, color='grey', lw=1)
for i in range(len(vectores)):
x = np.concatenate([[0, 0], vectores[i]])
plt.quiver(*x[::2], *x[1::2], angles='xy', scale_units='xy', scale=1, color=colores[i], alpha=alpha)
plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.show()
v_flaten = v.flatten()
graficar_vectores([v_flaten], ['blue'])
Esta función ayuda a visualizar cómo han cambiado los vectores al ser transformados por la matriz. Los ejes cruzan en x=0 y el color de las líneas es gris.
¿Cómo se transforman los vectores utilizando matrices?
Cuando aplicamos la matriz A al vector v, podemos ver el cambio que se produce. Primero, realizamos el cálculo del producto interno:
v_transformado = A.dot(v)
graficar_vectores([v.flatten(), v_transformado.flatten()], ['blue', 'orange'])
Aquí, graficamos el vector original v junto con el vector v_transformado para observar la transformación visualmente, comparando sus posiciones y direcciones.
¿Por qué es importante entender estas transformaciones en Aprendizaje Automático?
Las transformaciones de matrices son fundamentales en el aprendizaje automático, especialmente cuando trabajamos con imágenes o datos que tienen representaciones matriciales. Las matrices permiten transformar estos datos de manera que pueden ser procesados más eficientemente por algoritmos de Deep Learning o Machine Learning.
Entender las representaciones de vectores y matrices y cómo podemos alargar, rotar o modificar su escala es clave para manipular datos estructurados como imágenes, en las cuales cada pixel puede ser parte de una matriz mayor. Cuando llevamos matrices a vectores, este proceso se llama "flatten" y es crucial para el tratamiento de datos en modelos computacionales.
¿Qué papel juegan los determinantes en estas transformaciones?
El determinante de una matriz nos ofrece información valiosa sobre la transformación. Un determinante negativo (como el -4 en nuestro ejemplo) puede indicarnos que la transformación involucra una inversión o un giro. Por otro lado, si las normas de los vectores antes y después de la transformación se mantienen iguales, puede señalar que hay vectores en el espacio que no cambian su longitud.
determinante = np.linalg.det(A)
print(f"Determinante de la matriz A: {determinante}")
En esta exploración, continuamos profundizando en cómo las operaciones de matriz y producto escalar nos ayudan a dar forma a datos y patrones, sentando las bases para descubrimientos más intrincados en el vasto campo del análisis de datos y Machine Learning.