Regla de la cadena

Nivel FundamentalDificultad ★★★★★Concepto⌖ Ver en el mapa

¿Qué es?

La derivada de una composición es el producto de las derivadas: (g∘f)′(x)=g′(f(x)) f′(x)(g\circ f)'(x) = g'(f(x))\,f'(x). Las tasas de cambio se multiplican a lo largo de una cadena, y la retropropagación es esta regla aplicada, de forma muy eficiente, a una red neuronal.

¿Por qué existe?

Casi todas las funciones que encontramos se construyen componiendo otras más simples. Sin la regla de la cadena habría que volver a los límites con cada fórmula nueva; con ella, conocer las derivadas de unas pocas primitivas basta para derivar todo lo construido con ellas, incluido un programa.

Intuición

Engranajes. Si uu gira 3 veces más rápido que xx e yy gira 2 veces más rápido que uu, entonces yy gira 2×3=62 \times 3 = 6 veces más rápido que xx. En notación de Leibniz la regla parece una simplificación de fracciones: dydx=dydu⋅dudx\frac{\dd y}{\dd x} = \frac{\dd y}{\dd u}\cdot\frac{\dd u}{\dd x}. A lo largo de una cadena de nn funciones se multiplican nn tasas locales, y si todas son menores que 1 el producto se desvanece (ese es el problema del desvanecimiento del gradiente).

Definición formal

Si ff es derivable en xx y gg es derivable en f(x)f(x), entonces g∘fg \circ f es derivable en xx y

(g∘f)′(x)=g′(f(x)) f′(x).(g \circ f)'(x) = g'\big(f(x)\big)\,f'(x).

Idea de la demostración

Escribe g(f(x+h))−g(f(x))=(g′(f(x))+η(k)) kg(f(x+h)) - g(f(x)) = \big(g'(f(x)) + \eta(k)\big)\,k con k=f(x+h)−f(x)k = f(x+h) - f(x) y η(k)→0\eta(k) \to 0; divide entre hh y haz h→0h \to 0. (Multiplicar y dividir por kk directamente falla cuando k=0k = 0, y por eso hace falta la función auxiliar η\eta.)

Fórmulas

(g∘f)′(x)=g′(f(x)) f′(x),dydx=dydu dudx(g \circ f)'(x) = g'\big(f(x)\big)\,f'(x), \qquad \frac{\dd y}{\dd x} = \frac{\dd y}{\dd u}\,\frac{\dd u}{\dd x}
ddx fn(⋯f2(f1(x)))=fn′(un−1)⋯f2′(u1) f1′(x)\frac{\dd}{\dd x}\,f_n(\cdots f_2(f_1(x))) = f_n'(u_{n-1})\cdots f_2'(u_1)\,f_1'(x)
una cadena de nn funciones: un producto de nn derivadas locales

¿Cómo se calcula?

Pon nombre a los valores intermedios: u1=f1(x)u_1 = f_1(x), u2=f2(u1)u_2 = f_2(u_1), … Calcula las derivadas locales fk′(uk−1)f_k'(u_{k-1}) y multiplica. El orden en que multiplicas no cambia el resultado, pero sí el coste cuando las funciones tienen muchas entradas y salidas: de izquierda a derecha es el modo directo, de derecha a izquierda el modo inverso (retropropagación).

Ejemplo

y=σ(wx+b)y = \sigma(wx + b) con σ\sigma la sigmoide. Sea z=wx+bz = wx + b. Entonces ∂y∂w=σ′(z)⋅x=σ(z)(1−σ(z)) x\frac{\partial y}{\partial w} = \sigma'(z)\cdot x = \sigma(z)(1 - \sigma(z))\,x. Es literalmente el gradiente que calcula una red neuronal para un peso de una neurona.

¿Por qué importa?

La retropropagación (Rumelhart, Hinton y Williams, 1986; la diferenciación automática en modo inverso de Linnainmaa, 1970) es la regla de la cadena organizada para que el gradiente respecto de todos los pesos cueste más o menos lo mismo que una evaluación de la red. Sin ese truco sería imposible entrenar los modelos actuales.

Aplicaciones en informática

Dónde aparece en IA

  • Retropropagación (backpropagation)★★★★★fundamentalIA y machine learning

    La retropropagación es la regla de la cadena evaluada desde la pérdida hacia atrás, reutilizando cada producto intermedio.

  • Diferenciación automática★★★★★fundamentalIA y machine learning

    Los modos directo e inverso son dos órdenes de multiplicar la misma cadena de derivadas locales.

¿Dónde se utiliza?

Temas de informática a los que se llega desde aquí, con la cadena de ideas que lleva a ellos:

Qué depende de él

Ejercicios

1Cálculo directo

Deriva h(x)=ln⁡(1+e3x)h(x) = \ln\big(1 + e^{3x}\big).

Solución

h′(x)=11+e3x⋅3e3x=3 σ(3x)h'(x) = \frac{1}{1 + e^{3x}}\cdot 3e^{3x} = 3\,\sigma(3x): la derivada de la softplus es una sigmoide.

2IA

Una red de 20 capas usa activaciones sigmoide. Acota el factor en que puede encogerse el gradiente al pasar por las 20 activaciones, ignorando los pesos.

Solución

Cada σ′≤14\sigma' \le \frac14, así que el producto es como mucho 4−20≈9⋅10−134^{-20} \approx 9 \cdot 10^{-13}: desvanecimiento del gradiente. ReLU (derivada 1 cuando está activa) y las conexiones residuales lo evitan.

↑ ↓ para navegar · ↵ · Esc