14 · Proyecto: ANN regresión
Cambia BCE por MSE y elimina la salida sigmoid — la misma arquitectura ahora hace regresión. El patrón se generaliza en todos los pares de pérdida/tarea.
El mismo ANN, cambia BCE por MSE y elimina la salida sigmoid — ahora hace regresión. El patrón se generaliza en todos los pares de pérdida/tarea.
Sin esto:
Sin la variante de regresión, asumirías que las redes neuronales son solo para clasificación.
La lección anterior construyó un clasificador binario. Ahora cambiamos exactamente dos cosas y obtenemos un modelo de regresión:
- Eliminar la activación de salida sigmoid — los objetivos de regresión no tienen límite, así que la salida lineal cruda es correcta.
- Cambiar la pérdida BCE por MSE — en lugar de medir la log-verosimilitud de las etiquetas de clase, medimos la distancia cuadrática media desde los valores objetivo.
Todo lo demás — la capa oculta, la activación ReLU, He init, SGD con momentum, las ecuaciones de backprop — permanece exactamente igual. Este patrón es una de las lecciones más poderosas en deep learning: la arquitectura (topología de capas, activaciones, init, optimizador) es casi completamente separable de la tarea (activación de salida + función de pérdida).
El dataset usa un objetivo no lineal: y = sin(x1) + 0.5*x2^2 + ruido. Un modelo lineal no puede capturar esto; nuestro ANN sí puede.
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Read-along de PyTorch: regresión — MSELoss reemplaza BCELoss, sin sigmoid en la salida
Lista de activaciones de salida para regresión — qué activación para qué rango objetivo
Para convertir un clasificador binario ANN en un modelo de regresión, ¿qué cambia?
- ANN regresora = ANN clasificadora con sigmoid eliminado de la salida y BCE reemplazado por MSE. Las capas ocultas no cambian.
- Selección de activación de salida: ninguna (lineal cruda) para objetivos sin restricciones; sigmoid para [0,1]; tanh para [-1,1]; relu/softplus para no-negativos.
- Los modelos lineales fallan en objetivos no lineales (sin, x^2) — la no-linealidad de la capa oculta es la diferencia.
- El mismo patrón para regresión de múltiples salidas: amplía la capa nn.Linear final a n_out > 1 y usa MSELoss — PyTorch lo maneja automáticamente.
El mismo patrón funciona para cualquier regresión de salida única. Para múltiples salidas, simplemente amplía la capa final; PyTorch lo maneja automáticamente.
Si lo quitas: Asumirías que las redes neuronales son solo para clasificación y perderías la visión unificada que hace intuitivos el aprendizaje por transferencia y las arquitecturas multi-tarea.