Hay muchos problemas en el aprendizaje automático que requieren el cálculo utilizado para resolver problemas de estilo de optimización, pero seguiré hablando de uno de ellos, que posiblemente sea el algoritmo más importante y fundamental para el aprendizaje automático: el descenso de gradiente. Este algoritmo y sus variantes, como el Descenso de gradiente estocástico, son las herramientas principales para entrenar redes neuronales y se encuentran en el corazón de una gran cantidad de aprendizaje automático y teoría del aprendizaje profundo.
El problema que el descenso de gradiente está tratando de resolver al final del día es tratar de encontrar el mínimo local (o máximo) de una función convexa. Y no es sorprendente que esta tarea genere muchas ideas del cálculo. Por ejemplo, mostrar que una función [math] f (x) [/ math] es convexa es una cuestión de mostrar que [math] f ” (x) \ geq 0 [/ math].
El algoritmo para el descenso de gradiente es bastante intuitivo. En un nivel alto, comienza en algún punto de su función convexa y luego desciende en la dirección que lo acerca al mínimo local (esta dirección se calcula mediante la derivada de [math] f (x) [/ math]). Aunque las condiciones de terminación pueden ser un poco más complicadas para el descenso de gradiente, finalmente se detiene el momento en que progresa a lo largo de este gradiente y causa un aumento en [matemáticas] f (x) [/ matemáticas].
- ¿Cómo afectarán los avances en inteligencia artificial a la industria de los videojuegos?
- ¿Cuántos años crees que el ser humano sigue siendo el dominante en la Tierra?
- ¿Pueden los conceptos de (como ROT13, no programación) estar relacionados de alguna manera con los fundamentos del aprendizaje automático o la IA?
- ¿Qué es lo interesante de la red neuronal?
- ¿Cuáles son los objetivos futuros para la IA?
Así es como se ve el pseudocódigo (solo se aplica cuando nuestra función es una variable única):
x = [punto inicial]
i = 0
mientras no [condición de terminación]:
calcular f ‘(x)
epsilon = [longitud del paso en el tiempo i]
x = x – épsilon * f ‘(x)
i = i + 1
volver x
Ahora, en la mayoría de los problemas de aprendizaje automático, generalmente no estamos tratando con datos unidimensionales, por lo que en lugar de usar derivados, usaremos derivados parciales (específicamente derivados direccionales).
Un poco más de conocimiento que puede resultar interesante es que las pruebas de convergencia del descenso de gradiente se basan en aproximaciones de primer orden que se derivan de un tema muy útil en el cálculo llamado el teorema de Taylor.
Y, por último, un poco fuera de tema, pero aún interesante es que también hay una gran cantidad de teoría algebraica lineal profunda detrás de este algoritmo, que tiene que ver específicamente con las Matrices de Hesse y los valores propios de las matrices simétricas. Si desea ver una discusión sobre esto, debe consultar estas notas del curso de algoritmos de Berkeley.