Apéndice B. Autodiff

Este apéndice explica cómo funciona la función de autodiferenciación (autodiff) de TensorFlow y cómo se compara con otras soluciones.

Supón que defines una función f(x, y) = x2y + y + 2, y necesitas sus derivadas parciales ∂f/∂x y ∂f/∂y, normalmente para realizar el descenso de gradiente (o algún otro algoritmo de optimización). Tus principales opciones son la diferenciación manual, la aproximación por diferencias finitas, la autodiferenciación en modo directo y la autodiferenciación en modo inverso. TensorFlow implementa la autodiferenciación en modo inverso, pero para entenderla, es útil ver primero las otras opciones. Así que repasemos cada una de ellas, empezando por la diferenciación manual.

Diferenciación manual

La primera forma de calcular derivadas consiste en coger un lápiz y un trozo de papel y utilizar tus conocimientos de cálculo para deducir la ecuación adecuada. Para la función f(x, y) que acabamos de definir, no es demasiado difícil; sólo tienes que utilizar cinco reglas:

  • La derivada de una constante es 0.

  • La derivada de λx es λ (donde λ es una constante).

  • La derivada de es λxλ - 1, por lo que la derivada de x2 es2x.

  • La derivada de una suma de funciones es la suma de las derivadas de estas funciones.

  • La derivada de λ veces una función es λ veces su derivada.

A partir de estas reglas, puedes derivar la Ecuación B-1.

Ecuación B-1. Derivadas parciales de f(x, y)
f x = (x 2 y) x + y x + 2 x = y (x 2 )

Get Aprendizaje automático práctico con Scikit-Learn, Keras y TensorFlow, 3ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.