🧮 Computational Mathematics

Inicio · Parte 02 — Álgebra y funciones

057 — Composición de funciones

basico clase 17 de 20 4 horas demostración function_composition

La composición aplica funciones en cadena y no es conmutativa: (g∘f) ≠ (f∘g).

Fórmulas

(g∘f)(x) = g(f(x))
dominio de g∘f: {x ∈ dom f : f(x) ∈ dom g}

Desarrollo

Componer es encadenar: la salida de una función entra en la siguiente. El orden importa y casi nunca conmuta, hecho que se comprueba con un solo ejemplo numérico. Leer (g∘f)(x) correctamente —primero f, luego g, aunque g esté escrita a la izquierda— es una de las causas frecuentes de error al trasladar fórmulas.

El dominio de la composición no es el dominio de f: hay que exigir además que f(x) caiga dentro del dominio de g. Si g es un logaritmo, hay que garantizar que f(x) > 0. Este detalle es la fuente de los NaN que aparecen cuando una activación produce valores fuera del dominio de la siguiente capa.

Y aquí está la idea que conecta esta parte con todo el resto del programa: una red neuronal es una composición de funciones parametrizadas. f(x) = f_L(...f_2(f_1(x))), donde cada f_i es «transformación lineal seguida de no linealidad». Nada más. La profundidad de una red es la longitud de esa cadena.

La consecuencia inmediata, que la clase 302 hará explícita: si todas las f_i fueran lineales, su composición sería lineal, y apilar capas no aportaría nada. La no linealidad entre capas es lo que hace que la composición sea más expresiva que sus partes. Y derivar una composición es exactamente la regla de la cadena (clase 147).

Ejemplo trabajado

Componer f(x) = 2x + 1 con g(x) = x².

(g∘f)(3) = g(f(3)) = g(7)  = 49
(f∘g)(3) = f(g(3)) = f(9)  = 19
¿conmutan?  No     49 ≠ 19

Cadena de tres:
  f(g(f(3))) = f(g(7)) = f(49) = 99

Analogía directa:
  red neuronal = f_L(...f_2(f_1(x)))
  cada f_i = no_linealidad(W_i · entrada + b_i)

Qué calcula el laboratorio

(g∘f) no es (f∘g): la composición no conmuta.

python classes/part-02-algebra-y-funciones/057-composicion-de-funciones/lab.py
compmath run 057

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "f": "2x + 1",
  "g": "x²",
  "(g∘f)(3)": 49.0,
  "(f∘g)(3)": 19.0,
  "conmutan": false,
  "cadena_de_3": 99.0
}

Errores comunes

Dónde se usa

Arquitectura de redes neuronales, pipelines de transformación de datos, cambio de variable en integración (clase 157) y la regla de la cadena.

Idea rectora de la parte

El dominio forma parte de la definición: cambiarlo cambia la función.

Error a evitar

Aplicar log a valores no positivos sin declarar el dominio.

Conexión con IA

Una red neuronal es una composición de funciones parametrizadas. La sigmoide, la softmax y la log-verosimilitud son álgebra de exponenciales y logaritmos.

Bibliografía de la clase

Archivos de la clase