No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
10 Hrs
31 Min
32 Seg

Buscando la cantidad de valores singulares que nos sirvan

12/18
Recursos

Aportes 34

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Que onda, como es que esto es tan genial? osea es simplemente genial jajaja

  • la compresión de imágenes por SVD hace uso de que muy pocos de los valores singulares realmente representan información.
  • Los valores singulares se guardan de forma ordenada.

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.

http://www.ehu.eus/izaballa/Cursos/valores_singulares.pdf

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.

Increíble: ![](https://static.platzi.com/media/user_upload/image-8b3cb14a-997f-43af-a9fd-8ec175a7d264.jpg) ![](https://static.platzi.com/media/user_upload/image-62879e4e-2541-4045-a069-dce431e1bd49.jpg)
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!