LECCIÓN 2

Funciones de activación

El ingrediente que convierte una pila de sumas en algo capaz de aprender curvas, no solo líneas rectas. Sin esto, una red de 100 capas valdría lo mismo que una sola.

1. El problema: solo sumar no alcanza

En la lección 1 la neurona producía z = w₁x₁ + w₂x₂ + b. Eso es una operación lineal (una recta / un plano). Y aquí viene el detalle clave:

Apilar operaciones lineales da… otra operación lineal. Si una capa hace una suma ponderada y la siguiente también, el resultado total sigue siendo una sola línea recta. Una red de 50 capas sin activación tendría el mismo poder que una neurona suelta. Inútil.

La función de activación es una función no lineal que se aplica a z después de la suma. Rompe la linealidad y le da a la red el poder de doblar, curvar y separar datos que una recta jamás podría.

a = activación( z )   donde   z = w₁x₁ + w₂x₂ + b

📖 Vocabulario: tres palabras que se parecen (no las confundas)

La palabra "activación" se usa para dos cosas distintas. Aquí están los tres términos exactos:

TérminoQué esEn el ejemplo
Pre-activación (z)El número que sale de la suma ponderada w·x + b, antes de aplicar la función. Aún no está "activado".z = 0.10
Función de activaciónLa operación que aplicas (sigmoid, ReLU, tanh). Es el "cómo".σ( · )
Activación (a)El resultado de pasar z por la función. Es la salida real de la neurona.a = σ(0.10) = 0.5250

💡 Dicho de otra forma: "aplicar la activación" es hacer el cálculo con la función; "la activación" (a secas) es el número que obtienes. Antes de aplicar la función, ese número se llama pre-activación, no activación.

2. Las tres más usadas

Sigmoid σ(z)

σ(z) = 1 / (1 + e⁻ᶻ)

Aplasta cualquier número al rango (0, 1). Perfecta para interpretar la salida como una probabilidad. La usaremos en XOR.

ReLU(z)

ReLU(z) = max(0, z)

Si es negativo → 0; si es positivo → se queda igual. Simple y baratísima. Es la reina en redes modernas (incluido el Transformer).

tanh(z)

tanh(z)

Como la sigmoid pero centrada en 0, rango (−1, 1). Útil cuando quieres salidas con signo.

2b. A fondo: cada función, una por una

Sigmoid — σ(z) = 1 / (1 + e⁻ᶻ)

Toma cualquier número (de −∞ a +∞) y lo aplasta suavemente al rango (0, 1).

  • Forma: una "S" suave. En z = 0 vale exactamente 0.5; números muy grandes tienden a 1, muy negativos tienden a 0.
  • Por qué se usa: su salida entre 0 y 1 se lee como una probabilidad. Por eso la ponemos en la salida de XOR (¿es 0 o es 1?).
  • Su derivada (clave para backprop, lección 7) es σ'(z) = a·(1−a). Para nuestro z=0.10: 0.5250·0.4750 = 0.2494.
  • ⚠️ Problema: cuando z es muy grande o muy pequeño, la curva se aplana y su derivada se acerca a 0. Eso hace que el gradiente casi desaparezca y la red aprenda lento ("gradiente que se desvanece"). Es su talón de Aquiles.

ReLU — max(0, z)

La más simple de todas: si z es negativo lo pone en 0; si es positivo lo deja igual.

  • Forma: una línea plana en 0 para la mitad negativa, y una recta a 45° para la positiva. Un "codo" en z = 0.
  • Por qué domina hoy: es baratísima de calcular (solo un max) y su derivada es 1 para z > 0, así que no desvanece el gradiente en la zona positiva. Por eso es la activación estándar en capas ocultas de redes profundas, incluido el Transformer.
  • Su derivada: 1 si z > 0, y 0 si z < 0. Sencillísima.
  • ⚠️ Problema ("ReLU muerta"): si una neurona siempre recibe z < 0, su salida y su gradiente son siempre 0 → deja de aprender para siempre. Variantes como Leaky ReLU (deja pasar un poquito lo negativo) lo solucionan.

tanh — tangente hiperbólica

Es como la sigmoid, pero centrada en 0: aplasta al rango (−1, 1).

  • Forma: la misma "S" que la sigmoid, pero pasa por (0, 0) en vez de (0, 0.5). Da salidas negativas y positivas.
  • Por qué se prefiere a la sigmoid en capas ocultas: al estar centrada en 0, sus salidas no son siempre positivas, lo que ayuda a que el entrenamiento sea un poco más estable y rápido.
  • Su derivada: tanh'(z) = 1 − tanh²(z). En z = 0 vale 1 (su punto más empinado).
  • ⚠️ Problema: comparte el defecto de la sigmoid — también se satura y desvanece el gradiente en los extremos.
Regla práctica rápida: usa ReLU en las capas ocultas (rápida y sin desvanecimiento), y sigmoid en la salida cuando quieres una probabilidad (clasificación binaria, como XOR). tanh es una alternativa a la sigmoid para capas ocultas cuando quieres salidas con signo.

3. Nuestro número de la lección 1, ahora activado

La neurona h₁ nos había dado z = 0.10. Le aplicamos sigmoid (la que usa nuestra red) y obtenemos su activación real:

a = σ(z) = 1 / (1 + e^(-z))

a = σ(0.10) = 1 / (1 + e^(-0.10))
            = 1 / (1 + 0.904837)
            = 1 / 1.904837
            = 0.524979

Y la segunda neurona oculta, h₂, que daba z = −0.10:

a = σ(-0.10) = 0.475021

Nota: σ(0.10) y σ(-0.10) suman 1. La sigmoid es simétrica alrededor de z=0,
donde vale exactamente 0.5.
Guarda estos dos: la capa oculta, ante la entrada (1,0), produce las activaciones a = [0.524979, 0.475021]. Son la entrada de la siguiente capa — lo veremos ensamblado en la lección 4.

🎮 Gráfica interactiva

Mueve z y mira cómo responde cada función. La línea vertical marca tu z.

0.10

4. ¿Cuál elijo?

FunciónRangoUso típicoCuidado
Sigmoid(0, 1)Salida de probabilidad (clasificación binaria)Se "satura" en los extremos → gradiente diminuto
ReLU[0, ∞)Capas ocultas de redes profundasPuede "morir" si siempre da 0
tanh(−1, 1)Capas ocultas, salidas con signoTambién se satura
Resumen: la activación es la chispa no-lineal. Para XOR usaremos sigmoid en las dos capas. Recuerda: σ(0.10)=0.5250 y σ(−0.10)=0.4750. En la próxima lección juntamos varias neuronas en una capa y verás que todo se vuelve multiplicación de matrices.