Que es un optimizador

Optimizador adam en la red neuronal

Es muy importante ajustar los pesos del modelo durante el proceso de entrenamiento, para que nuestras predicciones sean lo más correctas y optimizadas posible. Pero, ¿cómo se hace eso exactamente? ¿Cómo se cambian los parámetros del modelo, cuánto y cuándo?

La mejor respuesta a todas estas preguntas son los optimizadores. Éstos unen la función de pérdida y los parámetros del modelo actualizando el modelo en respuesta a la salida de la función de pérdida. En términos más sencillos, los optimizadores dan forma y moldean su modelo en su forma más precisa posible jugando con los pesos. La función de pérdida es la guía del terreno, indicando al optimizador cuándo se está moviendo en la dirección correcta o incorrecta.

AdaDelta pertenece a la familia de los algoritmos de descenso de gradiente estocástico, que proporcionan técnicas adaptativas para el ajuste de los hiperparámetros. Adadelta es probablemente la abreviatura de «delta adaptativo», donde delta se refiere aquí a la diferencia entre el peso actual y el nuevo peso actualizado.

El principal inconveniente de Adagrad es la acumulación de los gradientes al cuadrado. Durante el proceso de entrenamiento, la suma acumulada sigue creciendo. De la formala anterior podemos ver que, a medida que la suma acumulada aumenta la tasa de aprendizaje se reduce y finalmente se vuelve infinitesimalmente pequeña, momento en el que el algoritmo ya no es capaz de adquirir conocimiento adicional.

Optimizadores en el aprendizaje automático

La optimización comenzó su perfeccionamiento gradual a mediados del siglo XIX en inglés, cuando se derivó de optimize, una palabra utilizada por primera vez a principios de ese mismo siglo con el significado de «hacer lo mejor o lo más posible». En sus aplicaciones básicas, la optimización se refiere al acto o proceso de hacer que algo sea lo mejor posible. En el siglo XXI, se ha utilizado mucho en contextos técnicos relacionados con la obtención de la mejor funcionalidad posible, como en la «optimización de la red» y la «optimización de los motores de búsqueda» (SEO).  Al igual que las palabras óptimo y optimismo (que se refieren, respectivamente, a la cantidad o el grado de algo que es mejor o más eficaz, y a un sentimiento o creencia de que sucederán cosas buenas en el futuro), optimizar y optimización derivan del latín optimus, que significa «mejor».

->  Que es un manual de identidad

Y en una época que fetichiza el minimalismo, el upcycling y la autooptimización constante, la vida del coleccionista es un recordatorio de que, de hecho, no hay ningún imperativo moral para la acumulación o el rechazo de objetos.

Los algoritmos de optimización de rutas están reduciendo el kilometraje y acelerando las tasas de entrega, mientras que la computación cuántica basada en la nube puede calcular las rutas óptimas a partir de millones de datos en tiempo real sobre la congestión del tráfico.

Comparación de optimizadores de aprendizaje profundo

Los optimizadores son la clase ampliada, que incluye el método para entrenar su máquina / modelo de aprendizaje profundo. Los optimizadores correctos son necesarios para su modelo, ya que mejoran la velocidad de entrenamiento y el rendimiento, Ahora hay muchos algoritmos optimizadores que tenemos en PyTorch y la biblioteca TensorFlow, pero hoy vamos a discutir cómo iniciar optimizadores TensorFlow Keras, con una pequeña demostración en jupyter notebook.

->  Comprar dominio en google

Antes de los optimizadores, es bueno tener una exposición preliminar en las funciones de pérdida, ya que ambos trabajan en paralelo en proyectos de aprendizaje profundo. Ya hemos cubierto la función de pérdida de TensorFlow y las funciones de pérdida de PyTorch en nuestros artículos anteriores. Las funciones de pérdida son sólo una forma matemática de medir el rendimiento de tu máquina/modelo de aprendizaje profundo.

Ahora, ¿cómo se relacionan las funciones de pérdida y los optimizadores? Durante el entrenamiento del modelo, ajustamos los parámetros (también conocidos como ajuste de hiperparámetros) y los pesos para minimizar la pérdida e intentar que nuestra precisión de predicción sea lo más correcta posible. Ahora bien, para cambiar estos parámetros entra en juego el papel del optimizador, que vincula los parámetros del modelo con la función de pérdida actualizando el modelo en respuesta a la salida de la función de pérdida. Simplemente los optimizadores dan forma al modelo en su forma más precisa jugando con los pesos del modelo. La función de pérdida sólo indica al optimizador cuándo se está moviendo en la dirección correcta o incorrecta.

Qué es el optimizador en el aprendizaje profundo

rco es un paquete de código abierto, y las contribuciones al desarrollo de la librería son más que bienvenidas. En esta guía se detalla cuál es el procedimiento comúnmente seguido para desarrollar un nuevo optimizador.

Un optimizador será una única función (una exportada), que deberá llamarse opt_**nombre_del_optimizador**. Esta función tomará como entrada un parámetro de texto que contiene una lista de cadenas (vector de caracteres) con el código a optimizar. Un ejemplo de esto, con un solo código a optimizar, sería:

->  Ejemplo de relevancia

El resto de parámetros que la función opt_**optimizer_name** toma como entrada deben tener un parámetro por defecto asociado, por ejemplo, opt_**optimizer_name** <- function(texts, param1 = FALSE) { … }.

La sección Antecedentes debe presentar al lector por qué esta optimización proporciona mejoras, y qué hace. La sección de Ejemplo debe dar un ejemplo real para ser optimizado, y mostrar las mejoras que dio en términos de velocidad de ejecución, uso de memoria, u otros. La sección de Implementación debe mostrar la idea que hay debajo de la codificación del optimizador, esta sección pretende facilitar la comprensión del código desarrollado si es necesario editarlo o mejorarlo. A continuación, se pueden incluir tantas secciones como sean necesarias, donde se explican o comentan las cuestiones y retos relacionados con el optimizador. Por último, si se detalla una lista de posibles mejoras para el optimizador, cada una de ellas debe ser comentada en la sección de tareas pendientes.

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad