🧮 Computational Mathematics

Inicio · Parte 15 — Matemática de Deep Learning

303 — Funciones de activación

deep-learning clase 3 de 20 4 horas demostración activations

La derivada máxima de la sigmoide es 0,25: cada capa divide el gradiente por cuatro como mínimo.

Fórmulas

σ(x) = 1/(1+e⁻ˣ),   σ' ≤ 0,25
tanh' ≤ 1,   ReLU' = 1 en positivo
GELU: x·Φ(x), suave y no monótona cerca de cero

Desarrollo

La función de activación decide por dónde fluye el gradiente. Su elección parece un detalle y determina si una red profunda se puede entrenar, y la razón es puramente cuantitativa: el valor máximo de su derivada.

La sigmoide tiene derivada máxima 0,25, alcanzada en el origen. Eso significa que cada capa multiplica el gradiente por 0,25 como mucho, y con diez capas el factor acumulado es 0,25¹⁰ ≈ 10⁻⁶. La tanh mejora a 1,0 y además está centrada en cero, lo que ayuda a la optimización, pero sigue saturándose en ambos extremos.

ReLU cambió el panorama por su simplicidad: derivada exactamente 1 en la región positiva, así que el gradiente pasa intacto. Es además trivialmente barata de calcular. Su problema conocido es la muerte de neuronas: una unidad que queda siempre en la región negativa tiene gradiente cero y no vuelve a actualizarse nunca. Leaky ReLU y ELU mitigan eso con una pendiente pequeña en el lado negativo.

GELU es la activación de los Transformers modernos. Es suave en todo el dominio y no monótona cerca del origen, lo que empíricamente funciona mejor en esas arquitecturas. La elección de activación tiene menos margen del que sugiere la literatura: ReLU para redes convolucionales y GELU para Transformers cubre casi todos los casos razonables.

Ejemplo trabajado

Valores y derivadas de cinco activaciones.

x        sigmoid    tanh      relu   leaky    gelu
−5,0     0,006693  −0,999909  0,0   −0,05   −0,000001
−1,0     0,268941  −0,761594  0,0   −0,01   −0,158655
 0,0     0,500000   0,000000  0,0    0,00    0,000000
 1,0     0,731059   0,761594  1,0    1,00    0,841345
 5,0     0,993307   0,999909  5,0    5,00    4,999999

Derivadas máximas:
  sigmoid  0,25    →  10 capas: factor 1e-6
  tanh     1,00    →  mejor, pero satura en los extremos
  relu     1,00    →  sin saturación por la derecha

La sigmoide se satura claramente ya en |x| = 5:
su derivada allí es 0,0066.

Qué calcula el laboratorio

Activaciones y sus derivadas: dónde se saturan.

python classes/part-15-matematica-de-deep-learning/303-funciones-de-activacion/lab.py
compmath run 303

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "sigmoid": {
    "valores": {
      "-5.0": 0.006693,
      "-1.0": 0.268941,
      "0.0": 0.5,
      "1.0": 0.731059,
      "5.0": 0.993307
    },
    "derivada_en_-5": 0.00664806,
    "derivada_en_0": 0.25,
    "derivada_en_5": 0.00664806
  },
  "tanh": {
    "valores": {
      "-5.0": -0.999909,
      "-1.0": -0.761594,
      "0.0": 0.0,
      "1.0": 0.761594,
      "5.0": 0.999909
    },
    "derivada_en_-5": 0.00018158,
    "derivada_en_0": 1.0,
    "derivada_en_5": 0.00018158
  },
  "relu": {
    "valores": {
      "-5.0": 0.0,
      "-1.0": 0.0,
      "0.0": 0.0,
      "1.0": 1.0,
      "5.0": 5.0
    },
    "derivada_en_-5": 0.0,
    "derivada_en_0": 0.5,
    "derivada_en_5": 1.0
  },
  "leaky_relu": {
    "valores": {
      "-5.0": -0.05,
      "-1.0": -0.01,
      "0.0": 0.0,
      "1.0": 1.0,
      "5.0": 5.0
    },
    "derivada_en_-5": 0.01,
    "derivada_en_0": 0.505,
    "derivada_en_5": 1.0
  },
  "gelu": {
    "valores": {
      "-5.0": -1e-06,
      "-1.0": -0.158655,
      "0.0": 0.0,
      "1.0": 0.841345,
      "5.0": 4.999999
    },
    "derivada_en_-5": -7.15e-06,
    "derivada_en_0": 0.5,
    "derivada_en_5": 1.00000715
  },
  "sigmoid_se_satura": true
}

Errores comunes

Dónde se usa

Diseño de arquitecturas, diagnóstico de gradientes que no fluyen, elección entre ReLU y GELU y depuración de entrenamientos estancados.

Idea rectora de la parte

La inicialización controla la varianza de las activaciones y de los gradientes.

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