🧮 Computational Mathematics

Inicio · Parte 15 — Matemática de Deep Learning

302 — MLP como composición de funciones

deep-learning clase 2 de 20 4 horas demostración mlp

Sin no linealidad entre capas, cien capas siguen siendo una sola transformación lineal.

Fórmulas

MLP: f(x) = W₂·σ(W₁x + b₁) + b₂
sin σ:  W₂(W₁x + b₁) + b₂ = W'x + b'
XOR: 2 → 4 (tanh) → 1 (sigmoid)

Desarrollo

Un perceptrón multicapa apila transformaciones lineales con una función no lineal entre ellas. La no linealidad no es un adorno: es lo único que hace que la profundidad importe. Componer dos transformaciones lineales da otra transformación lineal, y por tanto una red sin activaciones, por profunda que sea, no puede hacer más que un modelo lineal de una capa.

Con no linealidad, la capa oculta hace algo cualitativamente distinto: transforma el espacio. Las neuronas ocultas no clasifican; construyen una nueva representación de la entrada en la que el problema original se vuelve separable, y la capa de salida se limita a trazar el hiperplano en ese espacio nuevo.

XOR es la demostración mínima. En el espacio original no hay recta que sirva; tras pasar por cuatro neuronas tanh, los cuatro puntos ocupan posiciones en las que sí la hay. Con 17 parámetros y unas cientos de épocas, el problema que hundió el campo en 1969 se resuelve.

El teorema de aproximación universal garantiza que una sola capa oculta suficientemente ancha aproxima cualquier función continua con la precisión que se quiera. Conviene leer con cuidado lo que no dice: no dice cuántas neuronas hacen falta —pueden ser exponencialmente muchas—, ni que el entrenamiento vaya a encontrarlas. Es un resultado de existencia, no de aprendibilidad, y la profundidad resulta ser mucho más eficiente en parámetros que la anchura.

Ejemplo trabajado

MLP resolviendo XOR con 17 parámetros.

arquitectura: 2 → 4 (tanh) → 1 (sigmoid)
parámetros: 17

época      pérdida
   1      1,0765723
 100      0,0249xxx
 500      0,00xxxxx

predicciones finales:
  (0,0) → 0,000049      esperado 0                   ✓
  (0,1) → 0,999856      esperado 1                   ✓
  (1,0) → 0,999829      esperado 1                   ✓
  (1,1) → 0,000xxx      esperado 0                   ✓

Sin tanh entre las capas, el modelo colapsaría a
una única transformación lineal y fallaría igual
que el perceptrón.

Qué calcula el laboratorio

MLP resolviendo XOR: la capa oculta crea una representación separable.

python classes/part-15-matematica-de-deep-learning/302-mlp-como-composicion-de-funciones/lab.py
compmath run 302

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "arquitectura": "2 → 4 (tanh) → 1 (sigmoid)",
  "parametros": 17,
  "historial": [
    {
      "epoca": 1,
      "perdida": 1.0765723
    },
    {
      "epoca": 100,
      "perdida": 0.02492169
    },
    {
      "epoca": 1000,
      "perdida": 0.00071603
    },
    {
      "epoca": 4000,
      "perdida": 0.00014183
    }
  ],
  "predicciones": {
    "[0.0, 0.0]": 4.9e-05,
    "[0.0, 1.0]": 0.999856,
    "[1.0, 0.0]": 0.999829,
    "[1.0, 1.0]": 0.000202
  },
  "todas_correctas": true,
  "sin_no_linealidad": "el modelo colapsaría a una única transformación lineal"
}

Errores comunes

Dónde se usa

Bloque básico de toda arquitectura moderna, capas feed-forward de los Transformers, cabezas de clasificación y aproximación de funciones.

Idea rectora de la parte

Sin no linealidad, apilar capas sigue siendo una única transformación lineal.

Error a evitar

Aplicar softmax sin restar el máximo y provocar overflow.

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