0Pricing
Learn AI with Python · Lección

Autoencoders para aprendizaje de representaciones

Arquitectura codificador-decodificador, cuello de botella, pérdida de reconstrucción y aplicaciones en detección de anomalías.

Autoencoders para aprendizaje de representaciones es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué es un autoencoder?

Un autoencoder aprende a comprimir los datos en un código pequeño y a reconstruirlos. Tiene dos mitades: un encoder que comprime y un decoder que reconstruye. La compresión intermedia le obliga a aprender qué es importante.

import torch
import torch.nn as nn

La idea del cuello de botella

La estrecha capa central es el cuello de botella o el código latente. Al forzar el paso de toda la información por unos pocos números, la red debe descartar el ruido y conservar la estructura esencial de los datos.

Construcción del encoder

Para imágenes de 28x28 (784 píxeles), el encoder reduce la entrada paso a paso: de 784 a 256 y después a un código latente de 64 dimensiones. Cada capa Linear va seguida de una no linealidad ReLU.

encoder = nn.Sequential(
    nn.Linear(784, 256),
    nn.ReLU(),
    nn.Linear(256, 64)
)

Construcción del decodificador

El decodificador refleja al codificador y expande el código de 64 dimensiones de nuevo a 784 píxeles. Una Sigmoid final comprime las salidas al intervalo [0,1] para que coincidan con los valores de píxel normalizados.

decoder = nn.Sequential(
    nn.Linear(64, 256),
    nn.ReLU(),
    nn.Linear(256, 784),
    nn.Sigmoid()
)

El autoencoder completo

Conecte el codificador y el decodificador en un solo módulo. El paso forward codifica y luego decodifica, y devuelve una reconstrucción con la misma forma que la entrada.

class AutoEncoder(nn.Module):
    def __init__(self, enc, dec):
        super().__init__()
        self.enc, self.dec = enc, dec
    def forward(self, x):
        z = self.enc(x)
        return self.dec(z)

Pérdida de reconstrucción (MSE)

El objetivo del entrenamiento es la propia entrada. El error cuadrático medio mide, píxel a píxel, cuánto se aleja la reconstrucción del original. Minimizarlo enseña al modelo a comprimir fielmente.

criterion = nn.MSELoss()

x_flat = x.view(x.size(0), -1)
recon = model(x_flat)
loss = criterion(recon, x_flat)

Entrenamiento del autoencoder

El entrenamiento es no supervisado: no hay etiquetas, solo entradas. El ciclo es el habitual: zero_grad, forward, backward, step; pero la pérdida compara la salida con la entrada.

optimizer.zero_grad()
recon = model(x_flat)
loss = criterion(recon, x_flat)
loss.backward()
optimizer.step()

El espacio latente

Después del entrenamiento, el codificador transforma cada entrada en un punto del espacio latente. Las entradas similares quedan cerca unas de otras, por lo que este código de 64 dimensiones es una representación compacta de los datos aprendida por el modelo.

z = model.enc(x_flat)
print(z.shape)  # [batch, 64]

Visualización con t-SNE

El espacio latente de 64 dimensiones es difícil de visualizar. t-SNE lo proyecta en 2D para representarlo gráficamente. Los grupos del gráfico muestran que el autoencoder agrupó elementos similares sin haber visto nunca las etiquetas.

from sklearn.manifold import TSNE

codes = model.enc(all_data).detach().numpy()
proj = TSNE(n_components=2).fit_transform(codes)
# scatter plot proj colored by true label

Detección de anomalías

Un autoencoder entrenado con datos normales los reconstruye bien, pero tiene dificultades con las anomalías que nunca ha visto. Un error de reconstrucción alto señala un valor atípico, lo que convierte al autoencoder en un potente detector de anomalías no supervisado.

errors = ((model(data) - data) ** 2).mean(dim=1)
anomalies = errors > threshold

¿Por qué aprender representaciones?

La verdadera ventaja es el código latente: un vector de características aprendido que puede utilizarse para hacer clustering, visualización, detección de anomalías o como entrada para otro modelo, todo ello sin etiquetas.

Comprobación rápida

Compruebe su comprensión de los autoencoders.

Repaso: autoencoders

Construyó un codificador (784 a 256 a 64) y un decodificador reflejado, entrenados con pérdida de reconstrucción MSE y sin etiquetas. Utilizó el código latente para aprender representaciones, lo visualizó con t-SNE y detectó anomalías mediante un error de reconstrucción alto.

Preguntas frecuentes

¿La lección «Autoencoders para aprendizaje de representaciones» es gratis?

Sí — el texto completo de «Autoencoders para aprendizaje de representaciones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Autoencoders para aprendizaje de representaciones»?

Arquitectura codificador-decodificador, cuello de botella, pérdida de reconstrucción y aplicaciones en detección de anomalías. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Autoencoders para aprendizaje de representaciones»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Autoencoders para aprendizaje de representaciones
  2. Autoencoders variacionales (VAE)
  3. GAN: generador y discriminador
  4. GAN condicionales y transferencia de estilo
← Volver a Learn AI with Python