Clase 02 — Convoluciones, normalización, ResNets y optimizadores

Desliza un kernel editable sobre una imagen y ve nacer el mapa de características; comprueba que BatchNorm y LayerNorm promedian por ejes distintos; encadena Jacobianos hasta que el gradiente muere; y haz correr cuatro optimizadores por el mismo valle.

El kernel recorre la imagen
Entrada
Kernel 3×3 (editable)
=
Mapa de salida
Controles

También puedes hacer clic en cualquier celda del mapa de salida para ver de qué parche vino, y editar los números del kernel a mano.

Aritmética de dimensiones
Pesos del kernel
9
+1 sesgo, sin importar el tamaño de la imagen
Si fuera densa
conexión total entrada→salida
Reparto de parámetros. Los mismos 9 pesos se aplican en todas las posiciones. Por eso una CNN detecta un borde esté donde esté (equivarianza a traslaciones) y por eso su número de parámetros no crece con el tamaño de la imagen — la comparación de la derecha es la razón por la que el MLP no sirve para visión.
Ojo con el nombre. Lo que calculan las librerías (y esta página) es técnicamente una correlación cruzada: la convolución matemática voltea el kernel 180°. Como los pesos se aprenden, la diferencia es irrelevante en la práctica, pero explica la discrepancia si comparas con un libro de procesamiento de señales.
La única diferencia es el eje sobre el que se promedia

Misma fórmula, distinto conjunto de números que entra en la media: \( \hat{x} = \dfrac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} \). Pasa el ratón (o el foco) por una celda para ver iluminado el grupo con el que se normaliza.

Entrada \(x\)
Salida normalizada \(\hat{x}\)
¿Y si el batch es pequeño?

BatchNorm estima \(\mu\) y \(\sigma^2\) con \(N\) muestras. Con \(N\) chico, esa estimación es ruidosa y cambia de un batch a otro: el mismo ejemplo se normaliza distinto según con quién le toque viajar. LayerNorm no tiene ese problema porque nunca mira a los vecinos.

Desviación típica del estadístico \(\mu_B\) estimado, en función del tamaño de batch (cae como \(1/\sqrt{N}\)). Es la razón concreta por la que los Transformers usan LayerNorm.

Magnitud del gradiente al retroceder por la red

Simulación real: en cada capa se sortea un factor Jacobiano \(\partial\mathcal{F}/\partial x\) alrededor de la media que fijes. La red plana multiplica esos factores; la residual multiplica \((\text{factor} + 1)\). Eje logarítmico.

Controles
Gradiente en la capa 1
red plana
Gradiente en la capa 1
red residual
\[ y = \mathcal{F}(x) + x \;\Longrightarrow\; \frac{\partial \mathcal{L}}{\partial x} = \frac{\partial \mathcal{L}}{\partial y}\left( \frac{\partial \mathcal{F}}{\partial x} + 1 \right) \]
El "+1" es todo. Sin atajo, el gradiente es un producto de números menores que 1 y se apaga exponencialmente. Con atajo, cada factor vale al menos ≈1: existe un camino por el que el gradiente llega al principio sin atenuarse. Sube el factor medio por encima de 1 y verás el problema simétrico — el gradiente que explota, que es lo que arregla el recorte de norma (gradient clipping).
Cuatro optimizadores, el mismo valle
SGD Momentum RMSProp Adam

Superficie mal condicionada: casi plana en \(w_1\), muy empinada en \(w_2\). Es la situación en la que SGD zigzaguea y apenas avanza hacia el mínimo.

Controles y marcador
OptimizadorPérdidaPasosEstado
Por qué la corrección de sesgo importa: el primer paso de Adam

Adam arranca con \(m_0 = v_0 = 0\). En \(t=1\) ambos acumuladores están pegados al cero, y el cociente \(m/\sqrt{v}\) sale distorsionado. Dividir por \(1-\beta^t\) deshace exactamente ese sesgo de arranque; el corrector se desvanece solo conforme \(t\) crece.

Tamaño relativo del primer paso, con y sin corrección, a lo largo de las primeras iteraciones.

Para seguir jugando
  • Pon el Sobel vertical sobre la imagen de borde horizontal: la salida es casi toda cero. Un detector solo ve lo que busca.
  • Carga el ejemplo del apunte con padding 0 y stride 1: la salida 2×2 debe dar exactamente −2 −2 / −1 −3.
  • En la pestaña 2, baja \(N\) a 2 con BatchNorm: con dos muestras, la normalización las manda siempre a ±1 pase lo que pase.
  • En la 3, sube el factor medio a 1.2: el gradiente explota en la red plana. El atajo no lo salva — para eso está el recorte de norma.
  • En la 4, apaga la corrección de sesgo y mira el primer salto de Adam: se pasa ~3× de largo, justo lo que dice el apunte.