🧮 Computational Mathematics

Inicio · Parte 15 — Matemática de Deep Learning

309 — Regularización y dropout

deep-learning clase 9 de 20 4 horas demostración dropout_regularization

Dropout apaga neuronas al azar y escala en entrenamiento para que la inferencia no cambie.

Fórmulas

entrenamiento: apagar con probabilidad p y dividir por (1−p)
inferencia: no hacer nada
E[activación] se conserva

Desarrollo

Dropout apaga cada neurona con probabilidad p en cada paso de entrenamiento. La idea es impedir la coadaptación: si una neurona no puede confiar en que sus compañeras estén presentes, tiene que aprender características útiles por sí misma en lugar de depender de combinaciones frágiles.

Otra lectura, complementaria, es que dropout entrena implícitamente un ensemble exponencial de subredes que comparten pesos, y en inferencia promedia sus predicciones. Eso lo emparenta con el bagging de la clase 292: reduce varianza combinando modelos que cometen errores distintos.

El detalle de implementación importa. Apagar neuronas reduce la activación media, así que hay que compensar. La versión moderna —inverted dropout— divide entre (1−p) durante el entrenamiento, con lo que la esperanza se conserva y la inferencia no requiere ningún ajuste. La versión antigua escalaba en inferencia, y mezclar ambas convenciones produce un factor de escala erróneo difícil de detectar.

Su uso ha cambiado con el tiempo. En redes convolucionales fue desplazado por batch normalization, que regulariza como efecto secundario. En Transformers sigue muy presente, con valores bajos —0,1 es típico—, aplicado tras la atención y en las capas feed-forward.

Ejemplo trabajado

Cien neuronas con probabilidad de apagado 0,5.

neuronas: 100      p = 0,5

media sin dropout:              1,00000
media con inverted dropout:     0,99976
la esperanza se conserva                             ✓

varianza introducida: 0,00958074

Mecanismo:
  se apaga cada neurona con p = 0,5
  las supervivientes se dividen entre (1 − 0,5) = 0,5
  es decir, se multiplican por 2

En inferencia no se hace nada: ni apagado ni escalado.
Escalar también en inferencia daría el doble de activación.

Qué calcula el laboratorio

Dropout: ruido en entrenamiento, escalado coherente en inferencia.

python classes/part-15-matematica-de-deep-learning/309-regularizacion-y-dropout/lab.py
compmath run 309

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "neuronas": 100,
  "probabilidad_de_apagado": 0.5,
  "media_sin_dropout": 1.0,
  "media_con_inverted_dropout": 0.99976,
  "la_esperanza_se_conserva": true,
  "varianza_introducida": 0.00958074
}

Errores comunes

Dónde se usa

Regularización de redes profundas, Transformers, estimación de incertidumbre con MC dropout y prevención del sobreajuste con pocos datos.

Idea rectora de la parte

Normalizar estabiliza la escala interna y permite tasas de aprendizaje mayores.

Error a evitar

Mezclar estadísticas de batch normalization entre entrenamiento e inferencia.

Conexión con IA

Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.

Bibliografía de la clase

Archivos de la clase