LECCIÓN 11

Generalización y overfitting

El salto de "sé cómo una red calcula" a "sé construir una que sirva". El objetivo real no es acertar con los datos de entrenamiento, sino con datos que la red nunca vio.

Recuerda de las lecciones anteriores: aprendiste a entrenar una red de punta a punta — forward, pérdida, backprop, actualización. La red XOR aprendió a predecir correctamente. Pero hasta ahora medías el éxito con los mismos datos con los que entrenabas. Hoy verás por qué eso es trampa.

1. Por qué XOR no nos sirve aquí

Durante todo el curso entrenamos XOR con 4 ejemplos. Pero esos 4 ejemplos son todo el universo posible de XOR: no existen entradas "nuevas" que la red no haya visto. Memorizar los 4 casos es resolver el problema.

En el mundo real es al revés: tienes un puñado de ejemplos y quieres que la red funcione con millones que nunca verá durante el entrenamiento. A eso se le llama generalizar, y es el verdadero reto del aprendizaje automático. Para estudiarlo cambiamos de ejemplo: ahora ajustaremos una curva con datos ruidosos.

2. Memorizar ≠ aprender

Imagina que tienes unos puntos que vienen de una curva real (una onda) pero con ruido (errores de medición). Tu red debe descubrir la tendencia, no perseguir cada punto:

3. La regla de oro: separa los datos

Nunca evalúas con los mismos datos con los que entrenaste. Se parten en tres:

ConjuntoPara qué sirve
Entrenamiento (train)Ajustar los pesos. La red lo ve y aprende de él.
Validación (validation)Elegir hiperparámetros (las decisiones de diseño que tú tomas: cuántas capas, learning rate, dropout…). La red NO entrena con él.
Prueba (test)La medida final, honesta. Datos que el modelo nunca tocó.
🔑 Si mides el éxito con los datos de entrenamiento, te engañas: un modelo que memoriza saca 10/10 en train y suspende en la realidad. El error de test es el que importa.

🎮 Demo: mueve la complejidad y observa el overfitting

Mismos puntos (11 de entrenamiento y 9 de prueba), sacados de una onda sin(x) con ruido. El deslizador controla la complejidad del modelo (qué tan "flexible" es la curva). Observa: subir la complejidad siempre baja el error de train… pero el de test forma una U.

1
● entrenamiento   ● prueba   - - onda real   — modelo
error según la complejidad   — train   — test

4. La curva en U (lo más importante que llevarte)

Lo que viene puede sonar raro al principio: ¿cómo puede ser que un modelo más complejo funcione peor? La clave es que memoriza los errores de medición del entrenamiento. El error de entrenamiento siempre baja cuando aumentas la complejidad — un modelo más flexible siempre puede acercarse más a los puntos que ya conoce. Pero el error de test baja y luego SUBE: forma una U. El punto más bajo de esa U es la complejidad ideal. Pasarte de ahí es overfitting: mejoras en lo que ya sabes y empeoras en lo que importa.

5. Cómo combatir el overfitting

  • Más datos: la cura más efectiva. Con más ejemplos, memorizar el ruido deja de funcionar.
  • Modelo más simple: menos capas/neuronas = menos capacidad de memorizar.
  • Regularización L2 (weight decay): añade al error una cantidad proporcional al tamaño de los pesos — así la red prefiere pesos pequeños (curvas suaves) porque pesos grandes cuestan más.
  • Dropout: durante el entrenamiento, "apaga" neuronas al azar en cada paso, para que la red no dependa de ninguna en exceso. Como estudiar en equipo: si siempre preguntas al mismo compañero, dependes de él. Dropout obliga a cada miembro a aprender por su cuenta.
  • Early stopping: deja de entrenar cuando el error de validación empieza a subir (justo en el fondo de la U).

Todas comparten la misma idea: limitar cuánto puede el modelo amoldarse al ruido, obligándolo a quedarse con la tendencia general.

6. Lo que aprendiste

Lo que aprendiste hoy: aprender no es memorizar — es generalizar. El error de train siempre baja con más complejidad, pero el de test forma una U: primero baja y luego sube (overfitting). Mide siempre con datos que el modelo no vio. Para reducir el overfitting: más datos, modelo más simple, regularización L2, dropout, o early stopping. Con esto cierras el último concepto fundamental: ya no solo sabes cómo aprende una red, sino cómo lograr que sirva de verdad.