Descenso de gradiente
El descenso de gradiente es un algoritmo de optimización utilizado comúnmente para entrenar modelos de aprendizaje automático y aprendizaje profundo.
El descenso de gradiente puede entenderse intuitivamente por medio de la siguiente analogía ilustrativa:1
Una persona está atrapada en las montañas e intenta bajar (es decir, intenta encontrar el mínimo global). Hay mucha niebla, por lo que la visibilidad es extremadamente baja. En consecuencia, el camino de descenso de la montaña no es visible, y la persona debe utilizar información local para encontrar el mínimo. Para ello, puede utilizar el método de descenso de gradiente, que consiste en observar la inclinación de la cuesta en su posición actual y, a continuación, seguir en la dirección con el descenso más pronunciado (es decir, cuesta abajo)… Con este método, la persona acabaría encontrando el camino cuesta abajo o posiblemente se quedaría atascada en algún agujero (es decir, un mínimo local), como un lago. Sin embargo, supongamos también que la inclinación de la cuesta no es inmediatamente obvia a simple vista, sino que requiere un instrumento sofisticado para medirla, que la persona casualmente lleva consigo en ese momento. Se tarda bastante tiempo en medir la pendiente de la cuesta con el instrumento, por lo que debería minimizar su uso si quisiera bajar la montaña antes de que se ponga el sol. La dificultad estriba entonces en elegir la frecuencia con la que la persona debe medir la pendiente de la cuesta para no desviarse del camino.
En esta analogía, la persona representa al algoritmo, y el camino recorrido cuesta abajo representa la secuencia de ajustes de parámetros que explorará el algoritmo. La inclinación de la cuesta representa la pendiente de la función en ese punto. El instrumento utilizado para medir la pendiente es la diferenciación. La dirección en que la persona elige viajar se alinea con el gradiente de la función en ese punto. La cantidad de tiempo que recorre antes de tomar otra medida es el tamaño del paso.
El descenso de gradiente estocástico es una extensión del descenso de gradiente utilizada para entrenar la mayoría de las redes profundas actuales.
IBM (2023) What is gradient descent?, IBM.
scikit learn (2023) Stochastic gradient descent, Scikit-Learn, octubre.
aprendizaje automático • aprendizaje profundo • inteligencia artificial