Tipos de optimizadores en aprendizaje profundo que todo ingeniero de inteligencia artificial debe conocer

Publicado: 2020-12-01

Tabla de contenido

Introducción

El aprendizaje profundo es un gran avance sobre el aprendizaje automático en términos de flexibilidad, mayor precisión y una amplia gama de posibilidades en aplicaciones industriales. Ya sea que se trate de una aplicación de chat, corrección automática de gramática, traducción entre diferentes idiomas, detección de noticias falsas o escritura automática de historias basadas en algunas palabras iniciales, el aprendizaje profundo encuentra su uso en casi todos los sectores.

Con tanto uso, se vuelve importante que estos algoritmos se ejecuten con recursos mínimos para que podamos reducir los costos recurrentes y brindar resultados eficientes en menos tiempo. Un optimizador es un método o algoritmo para actualizar los diversos parámetros que pueden reducir la pérdida con mucho menos esfuerzo. Veamos algunos optimizadores de aprendizaje profundo populares que ofrecen resultados aceptables.

Aprenda cursos AI ML de las mejores universidades del mundo. Obtenga programas de maestría, PGP ejecutivo o certificado avanzado para acelerar su carrera.

Descenso de gradiente (GD)

Este es el optimizador más básico que utiliza directamente la derivada de la función de pérdida y la tasa de aprendizaje para reducir la pérdida y alcanzar los mínimos. Este enfoque también se adopta en la retropropagación en redes neuronales donde los parámetros actualizados se comparten entre diferentes capas dependiendo de cuándo se alcance la pérdida mínima. Es fácil de implementar e interpretar los resultados, pero tiene varios problemas.

Los pesos se actualizan cuando se calcula todo el gradiente del conjunto de datos, lo que ralentiza el proceso. También requiere una gran cantidad de memoria para almacenar estos datos temporales, lo que lo convierte en un proceso que consume muchos recursos. Aunque la idea detrás de este algoritmo es adecuada, debe modificarse.

Descenso de gradiente estocástico

Esta es una versión modificada del método GD, donde los parámetros del modelo se actualizan en cada iteración. Significa que después de cada muestra de entrenamiento, se prueba la función de pérdida y se actualiza el modelo. Estas actualizaciones frecuentes dan como resultado una convergencia a los mínimos en menos tiempo, pero tiene el costo de una mayor varianza que puede hacer que el modelo sobrepase la posición requerida.

Pero una ventaja de esta técnica es el bajo requerimiento de memoria en comparación con la anterior porque ahora no hay necesidad de almacenar los valores anteriores de las funciones de pérdida.

Descenso de gradiente de mini lotes

Otra variante de este enfoque GD es el mini lote, donde los parámetros del modelo se actualizan en lotes pequeños. Significa que después de cada n lotes, los parámetros del modelo se actualizarán y esto garantiza que el modelo avanza hacia los mínimos en menos pasos sin descarrilarse con frecuencia. Esto da como resultado un menor uso de memoria y una baja variación en el modelo.

Leer: Ideas de proyectos de aprendizaje automático

Descenso de gradiente basado en impulso

Revisemos el método que estamos usando para actualizar los parámetros. Basándonos en la derivada de primer orden de la función de pérdida, estamos propagando hacia atrás los gradientes. La frecuencia de las actualizaciones puede ser después de cada iteración, un lote o al final, pero no estamos considerando cuántas actualizaciones tenemos en los parámetros.

Si este elemento del historial se incluye en las próximas actualizaciones, puede acelerar todo el proceso y esto es lo que significa el impulso en este optimizador. Este elemento de la historia es como la forma en que nuestra mente memoriza las cosas. Si estás caminando por una calle y recorres una distancia bastante grande, entonces estarás seguro de que tu destino está algo más adelante y aumentarás tu velocidad.

Este elemento depende del valor anterior, la tasa de aprendizaje y un nuevo parámetro llamado gamma, que controla esta actualización del historial. La regla de actualización será algo así como w = w – v, donde v es el elemento histórico.

Gradiente acelerado de Nesterov (NAG)

El GD basado en el impulso dio un impulso a los optimizadores utilizados actualmente al converger a los mínimos lo antes posible, pero introdujo un nuevo problema. Este método requiere muchos giros en U y oscila hacia adentro y hacia afuera en el valle mínimo, lo que se suma al tiempo total. El tiempo necesario sigue siendo mucho menor que el GD normal, pero este problema también necesita una solución y esto se hace en NAG.

El enfoque seguido aquí fue que la actualización de parámetros se realizaría primero con el elemento de historial y luego solo se calcula la derivada que puede moverlo hacia adelante o hacia atrás. Esto se denomina enfoque anticipado y tiene más sentido porque si la curva se acerca a los mínimos, la derivada puede hacer que se mueva lentamente para que haya menos oscilaciones y, por lo tanto, se ahorre más tiempo.

Lea también: Técnicas de aprendizaje profundo que debe conocer

Adagrado

Hasta ahora solo nos estamos enfocando en cómo los parámetros del modelo afectan nuestro entrenamiento, pero no hemos hablado sobre los hiperparámetros a los que se les asigna un valor constante a lo largo del entrenamiento. Uno de esos hiperparámetros importantes es la tasa de aprendizaje y variar esto puede cambiar el ritmo del entrenamiento.

Para una entrada de características escasas donde la mayoría de los valores son cero, podemos permitirnos una tasa de aprendizaje más alta que impulsará el gradiente de muerte resultante de estas características escasas. Si tenemos datos densos, podemos tener un aprendizaje más lento.

La solución para esto es tener una tasa de aprendizaje adaptable que pueda cambiar de acuerdo con la entrada proporcionada. El optimizador de Adagrad intenta ofrecer esta capacidad de adaptación reduciendo la tasa de aprendizaje en proporción al historial actualizado de los gradientes.

Significa que cuando hay actualizaciones más grandes, el elemento de historial se acumula y, por lo tanto, reduce la tasa de aprendizaje y viceversa. Una desventaja de este enfoque es que la tasa de aprendizaje decae agresivamente y después de un tiempo se aproxima a cero.

RMSProp

Es una mejora del optimizador de Adagrad. Esto tiene como objetivo reducir la agresividad de la tasa de aprendizaje tomando un promedio exponencial de los gradientes en lugar de la suma acumulativa de gradientes al cuadrado. La tasa de aprendizaje adaptativo permanece intacta ya que ahora el promedio exponencial penalizará una mayor tasa de aprendizaje en condiciones en las que hay menos actualizaciones y una menor tasa en un mayor número de actualizaciones.

Adán

Estimación adaptativa del momento combina el poder de RMSProp (apoyo cuadrático medio) y GD basado en el momento. En los optimizadores de Adam, el poder de Momentum GD para mantener el historial de actualizaciones y la tasa de aprendizaje adaptable proporcionada por RMSProp hace que el optimizador de Adam sea un método poderoso. También presenta dos nuevos hiperparámetros beta1 y beta2 que generalmente se mantienen alrededor de 0.9 y 0.99 pero puede cambiarlos según su caso de uso.

Debe leer: Regularización en aprendizaje profundo

Conclusión

En este artículo, analizamos 8 optimizadores de aprendizaje profundo en orden de facilidad de uso y cómo el siguiente supera la limitación de un optimizador, y así sucesivamente. Hay más modificaciones de uno u otro de los optimizadores mencionados aquí, pero estas son las fundamentales que debes considerar antes de buscar soluciones complejas.

Elegir un ganador entre estos es muy subjetivo para el caso de uso y el problema que está tratando, pero seguramente uno puede clasificar a Adam Optimizer en la parte superior debido a su combinación con el concepto de impulso que cambió la forma en que se deben actualizar los parámetros del modelo y adaptar los cambios. tasa de aprendizaje para diferentes escenarios que permiten un procesamiento eficiente de cualquier tipo de entrada.

Una tendencia general muestra que para la misma pérdida, estos optimizadores convergen en diferentes mínimos locales. Mientras que los optimizadores de aprendizaje adaptativo convergen en mínimos más nítidos, otros tipos de técnicas convergen en mínimos más planos, lo que es mejor para la generalización. Estas técnicas solo pueden ayudar hasta cierto punto porque a medida que las redes neuronales profundas se hacen más grandes, se requieren métodos más eficientes para obtener buenos resultados.

Si tiene curiosidad por dominar el aprendizaje automático y la IA, impulse su carrera con nuestra Maestría en Ciencias en Aprendizaje Automático e IA con IIIT-B y la Universidad John Moores de Liverpool.

¿Cómo funcionan los optimizadores en el aprendizaje profundo?

Si bien las redes neuronales están de moda en este momento, un optimizador es algo mucho más fundamental para el aprendizaje de una red neuronal. Si bien las redes neuronales pueden aprender por sí mismas, sin conocimientos previos, un optimizador es un programa que se ejecuta con la red neuronal y le permite aprender mucho más rápido. Lo hace, en resumen, alterando los parámetros de la red neuronal de tal manera que el entrenamiento con esa red neuronal sea mucho más rápido y fácil. Estos optimizadores son los que permiten que las redes neuronales funcionen en tiempo real y el entrenamiento solo lleva unos minutos. Sin ellos, el entrenamiento tomaría fácilmente días.

¿Por qué es difícil optimizar los algoritmos de aprendizaje profundo?

Los sistemas de aprendizaje profundo generalmente se consideran difíciles de optimizar porque son grandes y complejos, a menudo involucran múltiples capas y no linealidades. Los optimizadores deben lidiar con un sistema enorme, que no es fácil de entender. Algunas herramientas de aprendizaje profundo proporcionan solo una cantidad limitada de parámetros que se pueden ajustar, lo que limita su utilidad. Sin embargo, existen algunas formas efectivas de optimizar los modelos de aprendizaje profundo y mejorar su generalización.

¿Cuáles son los diferentes optimizadores en el aprendizaje profundo?

En el aprendizaje profundo, los optimizadores se utilizan para ajustar los parámetros de un modelo. El propósito de un optimizador es ajustar los pesos del modelo para maximizar una función de pérdida. La función de pérdida se utiliza como una forma de medir el rendimiento del modelo. Se debe usar un optimizador al entrenar un modelo de red neuronal. Hay una variedad de optimizadores diferentes que se pueden usar con un modelo de aprendizaje profundo. Algunos de los optimizadores más populares son RMSprop, Momentum y Adam.