Que onda, como es que esto es tan genial? osea es simplemente genial jajaja
Transformaciones lineales y descomposición de matrices
Descomposición de Matrices y Su Aplicación en Machine Learning
Transformaciones Lineales con Matrices en Python: Visualización y Análisis
Autovalores y autovectores en transformaciones lineales
Cálculo de Autovalores y Autovectores con NumPy en Python
Descomposición de matrices: valores y vectores propios
Descomposición de Matrices en Valores Singulares
Transformaciones Lineales con Matrices: Efectos en el Círculo Unitario
Descomposición SVD: Transformaciones de Matrices y Círculo Unitario
Impacto de los Valores Singulares en Transformaciones Matriciales
Aplicaciones de SVD a una imagen
Procesamiento de Imágenes: Escala de Grises y Normalización
Descomposición de imágenes: reducción de tamaño y reconstrucción eficaz
Compresión de Imágenes Usando Descomposición en Valores Singulares
Cálculo de la seudo inversa de Moore-Penrose en Python
Solución de Sistemas Sobredeterminados con Pseudo-Inversa y Python
Aplicando Álgebra Lineal: Análisis de Componentes Principales (PCA)
Reducción de Dimensionalidad en Análisis de Datos: PCA Aplicado
Análisis de Componentes Principales en Imágenes: Reducción Dimensional
Reducción de Dimensiones en Imágenes con PCA
Reducción de Dimensiones con Descomposición de Matrices
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 34
Preguntas 3
Que onda, como es que esto es tan genial? osea es simplemente genial jajaja
Para generar una “animación” y ver la imagen con diferente número de valores singulares:
from IPython.display import clear_output
plt.figure()
for n in range(50):
plt.imshow(U[:,:n]@np.diag(D[:n])@V[:n,:], cmap='gray')
plt.title(f"SV's = {n}")
plt.show()
clear_output(wait=True)
Buenísima clase: el contenido y el mejor profesor!
Cadad vez esto me gusta mas
Excelente clase.
Simplemente alucinante
¿Podrían decirme porque es importante esta linea, por favor?
titulo = “valores singulares = %s” % i
Que genial! Les comparto este link, lo compartió un compañero en anteriores clases, por si no lo leyeron se los comparto aquí hace referencia al tema los valores singulares. Muy interesante.
Wow! Cuando finalmente el aprendizaje converge 😄
Simplemente alucinante, aquí podemos observar cómo aumenta la precisión a más Vectores Singulares Considerados
Si usan este código pueden ver el avance:
for i in range(len(D)):
image_reconstruction = np.matrix(U[:, :i])*np.diag(D[:i])*np.matrix(V[:i,:])
plt.imshow(image_reconstruction, cmap='gray')
title = '#Singular values %s' %i
plt.title(title)
plt.show()
La compresión de imágenes por medio de la descomposición SVD hace uso de que muy pocos de los valores singulares realmente están representando información, la mayoría de ellos apenas logran capturar un porcentaje muy pequeño de su varianza.
Ahora que vi para que puede llegar a servir voy a volver a ver el video de la teoría.
import numpy as np
import matplotlib.pyplot as plt
# Crear una matriz de ejemplo
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Aplicar la descomposición SVD
U, s, Vt = np.linalg.svd(A)
# Matriz diagonal de valores singulares
S = np.diag(s)
# Reconstruir la matriz original
A_reconstructed = U.dot(S).dot(Vt)
# Imprimir los resultados
print("Matriz original:\n", A)
print("Matriz U:\n", U)
print("Matriz diagonal de valores singulares:\n", S)
print("Matriz V transpuesta:\n", Vt)
print("Matriz reconstruida:\n", A_reconstructed)
# Graficar los valores singulares
plt.plot(s, 'ro-')
plt.xlabel('Índice')
plt.ylabel('Valor singular')
plt.title('Valores singulares')
plt.show()
Maravillosa clase. Y el tema es muy interesante.
Pero que genial esto y como lo explica Sebastián 😍
ESTAS SON LAS CLASES QUE LE ENCANTAN A UNO Y LO MOTIVAN A NO DEJAR DE ESTUDIAR POR LO QUE UNO PUEDE APRENDER
Para ver mas clara la imagen, pueden hacer un ciclo for y subirlo de 5 en 5
for i in range(5,50, 5):
matriz_reconstruida = np.matrix(U[:, :i]) * np.diag(D[:i]) * np.matrix(V[:i, :])
plt.imshow(matriz_reconstruida, cmap='gray')
titulo = "Valores singulares = %s" %i
plt.title(titulo)
plt.show()
Amo poder darle un fin a todo lo que se estudia, esto es brutal.
Así se pueden probar varias cantidades de valores singulares:
num_vals = (1, 10, 21, 50)
for i, x in enumerate(num_vals):
computed_img = np.matrix(U[:, :x]) * np.diag(D[:x]) * np.matrix(V[:x, :])
plt.subplot(2, 2, i + 1)
plt.title('Image with {} singular value(s)'.format(x))
plt.imshow(computed_img, cmap='gray')
plt.tight_layout()
plt.show()
Me gustaría saber si con esto mismo, en lugar de verlo como compresión, podría aplicarse para mejorar la resolución de la imagen.
Creo que es muy interesante cuando vemos casos prácticos el uso de las matrices y los vectores en cosas reales
Que genialidad de clase !!
está increíble! … de verdad eso tiene una tremenda utilidad, porque permite hacer cálculos con muchos menos datos!.. será así como funciona la compresión de zip por ejemplo?
Excelente clase profe. Estamos en el punto donde la cabeza hace click y **une **lo puramente matematico con la aplicacion en la vida real y decis uhhhhh que piola bancarme tantas clases de matematica
Que buen estructurado esta este curso.
Me encanta cuando Sebastian plantea las dudas
Hola a todos! Aquí mi aporte. Si quieren ver cómo cambia la figura en una única grid, pueden utilizar este código. Les adjunto una captura del resultado.
# Visualizando el cambio en una sola imagen.
width=10
height=10
rows = 2
cols = 5
axes=[]
fig=plt.figure(figsize=(25, 8))
j = 1
for a in range(rows*cols):
i = j
axes.append( fig.add_subplot(rows, cols, a+1) )
image_reconstruction = np.matrix(U[:, :i])*np.diag(D[:i])*np.matrix(V[:i,:])
plt.imshow(image_reconstruction, cmap='gray')
title = '#Singular values %s' %i
plt.title(title)
j = (a + 1) * 3
plt.show()
Que genial!!
Que interesante!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?