Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Calculo descendiente, Apuntes de Cálculo Avanzado

sdvdvsdvvsdvsdvsdvsosudhisdfhudfduhfushdfu cisdf sdiysidhf hicsuhdfisu sidhfsuihdfni

Tipo: Apuntes

2022/2023

Subido el 05/10/2023

manuela-martinez-23
manuela-martinez-23 🇨🇴

1 documento

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Ingeniería Industrial
Manuela Martínez Quiroga
Algoritmo de Gradiente Descendiente
Descripción del algoritmo
El gradiente descendente es un algoritmo frecuente de optimización de primer orden que se emplea con el
fin de hallar los mínimos locales de una función dada y se hace uso de el gradiente o la derivada de dicha
función. A diferencia de otros gradientes, este en lugar de encontrar mínimos mediante la manipulación
de símbolos, el gradiente descendente aproxima la solución con números.
En otras palabras y para que sea un poco más comprensible, es un algoritmo de optimización que permite
encontrar automáticamente el mínimo de una función, este método se basa en el uso de un gradiente
negativo debido a que es en la dirección donde es posible encontrar la máxima disminución de los valores
de la función cierta función.
Requisitos:
El gradiente descendente no funciona con todas las funciones, puesto que tiene dos requisitos específicos,
y estos son que debe ser una función diferenciable o una función convexa.
Una función diferenciable tiene una derivada para cada punto de su dominio.
Y una función convexa es en la cual el segmento de línea que conecta los puntos de dos funciones se
encuentra sobre su curva, lo cual significa que no la cruza. Si la tiene, representa que tiene un mínimo
local que no es global.
pf3
pf4

Vista previa parcial del texto

¡Descarga Calculo descendiente y más Apuntes en PDF de Cálculo Avanzado solo en Docsity!

Ingeniería Industrial

Manuela Martínez Quiroga

Algoritmo de Gradiente Descendiente

Descripción del algoritmo

El gradiente descendente es un algoritmo frecuente de optimización de primer orden que se emplea con el

fin de hallar los mínimos locales de una función dada y se hace uso de el gradiente o la derivada de dicha

función. A diferencia de otros gradientes, este en lugar de encontrar mínimos mediante la manipulación

de símbolos, el gradiente descendente aproxima la solución con números.

En otras palabras y para que sea un poco más comprensible, es un algoritmo de optimización que permite

encontrar automáticamente el mínimo de una función, este método se basa en el uso de un gradiente

negativo debido a que es en la dirección donde es posible encontrar la máxima disminución de los valores

de la función cierta función.

Requisitos:

El gradiente descendente no funciona con todas las funciones, puesto que tiene dos requisitos específicos,

y estos son que debe ser una función diferenciable o una función convexa.

Una función diferenciable tiene una derivada para cada punto de su dominio.

Y una función convexa es en la cual el segmento de línea que conecta los puntos de dos funciones se

encuentra sobre su curva, lo cual significa que no la cruza. Si la tiene, representa que tiene un mínimo

local que no es global.

Tipos de gradientes descendentes

  • Gradiente descendente por lotes: El descenso de gradiente por lotes suma el error de cada punto

en el conjunto de entrenamiento y actualiza el modelo solo después de que se hayan evaluado

todos los ejemplos de entrenamiento. Este proceso se llama período de entrenamiento.

  • Gradiente descendente estocástico: El descenso de gradiente estocástico (SGD) realiza un ciclo

de entrenamiento para cada ejemplo en el conjunto de datos y actualiza los parámetros de cada

ejemplo de entrenamiento uno por uno. Como solo necesitas un ejemplo práctico, son más fáciles

de recordar. Si bien estas actualizaciones frecuentes pueden proporcionar más detalles y

velocidad, pueden generar eficiencia computacional en comparación con la computación de

gradiente por lotes. Sus actualizaciones frecuentes pueden generar gradientes ruidosos, pero

también pueden ser útiles para evitar mínimos locales y encontrar mínimos globales.

  • Gradiente descendente de minilotes: El descenso de gradiente minilotes combina el descenso

de gradiente por lotes y el descenso de gradiente estocástico. Este además divide el conjunto de

datos de entrenamiento en conjuntos pequeños y actualiza cada conjunto. Este enfoque logra un

equilibrio entre la eficiencia computacional del cálculo del gradiente por lotes y la velocidad del

descenso del gradiente estocástico.

Procedimiento del algoritmo

El gradiente posee dos propiedades esenciales, en primer lugar, el gradiente es perpendicular a las

curvas de nivel de la función en cuestión, de manera que para cualquier dirección que sea ortogonal al

gradiente, esta, será una dirección de cambio nulo. A continuación, la gráfica que lo demuestra:

Como otra propiedad, encontramos que el gradiente muestra la dirección de crecimiento de la máxima

tasa de cambio de la función en el punto p. La tasa máxima se calcula como la norma del gradiente, la

tasa mínima se encuentra simplemente encontrando el gradiente negativo, porque la función aumenta

más rápido en la dirección del vector gradiente positivo y disminuye más rápido en la dirección de la

pendiente negativa.

Según esto mencionado previamente es posible cambiar el valor de una función cambiando x por un valor

en la ecuación siguiente:

∆ 𝑥 = x 𝑛𝑢𝑒𝑣𝑎 − 𝑥𝑎𝑛𝑡𝑖𝑔𝑢𝑎 = − 𝐴 𝜕𝑓 𝜕𝑥 (1)

Aplicaciones del gradiente descendente en la inteligencia artificial-ciencia de datos

El algoritmo de gradiente descendente es uno de los métodos más usados en el proceso de entrenamiento

de un Modelo de Machine Learning y se usa básicamente para implementar cualquier arquitectura, desde

las redes neuronales, incluyendo las Convolucionales, Recurrentes, LSTM. Una de sus aplicaciones

importantes puede ser en las redes neuronales.

Las redes neuronales son un método de inteligencia artificial que enseña a las computadoras a procesar

datos de una manera similar al cerebro humano. Es un tipo de aprendizaje automático, llamado

aprendizaje profundo, que utiliza nodos, o neuronas, unidos en una estructura en capas que se asemeja al

cerebro humano. Crea un sistema adaptativo que las computadoras usan para aprender de sus errores y

mejorar continuamente. De esta forma, las redes neuronales artificiales intentan resolver problemas

complejos, como el resumen de documentos o el reconocimiento facial, con mayor precisión. El

algoritmo más utilizado para entrenar redes neuronales es el descenso del gradiente y lo hace calculando

como ajustar los parámetros de las redes de tal forma que se minimice su desviación a la salida.

El algoritmo tiene varias versiones, dependiendo del número de muestras que enviemos a la red en cada

iteración:

  • Gradiente por lotes: toda la información disponible se ingresa a la vez. Esto genera problemas de

estancamiento porque el gradiente siempre se calcula a partir de todas las muestras y llega un

momento en que las fluctuaciones son mínimas. Una regla general es que siempre queremos que

la entrada a una red neuronal tenga algún tipo de aleatoriedad.

  • Gradiente estocástico: Se utiliza una muestra aleatoria en cada iteración. Se calcula un gradiente

para esta muestra en particular, lo que significa introducir la aleatoriedad deseada, lo que hace

que sea más difícil detenerla. El problema de esta versión es su lentitud porque requiere muchas

más iteraciones y además no utiliza los recursos disponibles.

  • Gradiente en minilotes: en lugar de alimentar una muestra a la red, se alimentan N muestras en

cada iteración; mantiene las ventajas de la segunda versión y además agiliza el entrenamiento por

la paralelización de funciones. Por tanto, tenemos que dejar una modificación de este algoritmo,

eligiendo un valor de N que nos dé un buen equilibrio entre aleatoriedad y tiempo de

entrenamiento (que tampoco sea demasiado grande para la memoria GPU disponible).

Referencias bibliográficas:

  • “Que es el gradiente descendente? https://www.codificandobits.com/blog/el-gradiente-

descendente/#:~:text=El%20Gradiente%20Descendente%20es%20un,m%C3%ADnimo

%20de%20una%20funci%C3%B3n%

  • “Todo lo que Necesitas Saber sobre el Descenso del Gradiente Aplicado a Redes

Neuronales” https://medium.com/metadatos/todo-lo-que-necesitas-saber-sobre-el-

descenso-del-gradiente-aplicado-a-redes-neuronales-19bdbb706a