Capítulo 8. Descenso Gradiente

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Los que alardean de su ascendencia, alardean de lo que deben a los demás.

Séneca

A menudo, cuando hacemos ciencia de datos, tratamos de encontrar el mejor modelo para una situación determinada. Y normalmente "mejor" significará algo así como "minimiza el error de sus predicciones" o "maximiza la verosimilitud de los datos". En otras palabras, representará la solución a algún tipo de problema de optimización.

Esto significa que tendremos que resolver una serie de problemas de optimización. Y, en particular, tendremos que resolverlos desde cero. Nuestro enfoque será una técnica llamada descenso de gradiente, que se presta bastante bien a un tratamiento desde cero. Puede que no te parezca superemocionante en sí misma, pero nos permitirá hacer cosas emocionantes a lo largo del libro, así que ten paciencia conmigo.

La idea que subyace al descenso gradual

Supongamos que tenemos una función f que toma como entrada un vector de números reales y da como salida un único número real. Una función simple de este tipo es

from scratch.linear_algebra import Vector, dot

def sum_of_squares(v: Vector) -> float:
    """Computes the sum of squared elements in v"""
    return dot(v, v)

Con frecuencia necesitaremos maximizar o minimizar dichas funciones. Es decir, necesitamos encontrar la entrada v que produzca el mayor (o menor) valor posible.

Para funciones ...

Get Ciencia de datos desde cero, 2ª 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.