Inicio · Parte 15 — Matemática de Deep Learning
σ(x) = 1/(1+e⁻ˣ), σ' ≤ 0,25
tanh' ≤ 1, ReLU' = 1 en positivo
GELU: x·Φ(x), suave y no monótona cerca de cero
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.
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.
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
sigmoidtanhreluleaky_relugelusigmoid_se_saturarelu_no_se_satura_en_positivosrelu_muere_en_negativospor_que_relu_domina{
"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
}
Diseño de arquitecturas, diagnóstico de gradientes que no fluyen, elección entre ReLU y GELU y depuración de entrenamientos estancados.
Toda arquitectura moderna, incluido el Transformer, se construye sobre estos bloques y sobre este mismo mecanismo de derivación.
10.48550/arxiv.1606.08415 verificado en DataCite (2026-08-19).