La tasa de aprendizaje es un hiperparámetro que rige en qué medida ajusta un modelo de aprendizaje automático (ML) sus parámetros en cada paso de su algoritmo de optimización. La tasa de aprendizaje puede determinar si un modelo ofrece un rendimiento óptimo o no aprende durante el proceso de entrenamiento.
El objetivo del algoritmo de optimización es minimizar la función de pérdida que mide la brecha entre las predicciones de un modelo y los datos del mundo real. Cada vez que el modelo ejecuta su algoritmo de optimización, actualiza sus parámetros en función del resultado. La tasa de aprendizaje, o tamaño de paso, se representa con la letra griega η, y determina el tamaño de los cambios que el modelo tiene permitido realizar.
La tasa de aprendizaje ayuda a garantizar que un modelo aprenda lo suficiente en el entrenamiento para realizar ajustes significativos en sus parámetros sin corregir en exceso. Imagine que desciende una colina. Para llegar al fondo de forma segura, debe viajar lo suficientemente rápido como para avanzar considerablemente, pero no demasiado rápido como para perder el control y tropezar. La mejor tasa de aprendizaje establece una velocidad de descenso segura.
Cada paso de entrenamiento significa que el modelo hace caso omiso de su comprensión anterior de su conjunto de datos. Una red neuronal “aprende” más sobre sus datos de entrenamiento con cada paso de su algoritmo de optimización.
La tasa de aprendizaje es importante porque guía a los modelos de IA para que aprendan de manera eficaz a partir de sus datos de entrenamiento.
Una tasa de aprendizaje baja no permite que el modelo “aprenda” lo suficiente en cada paso. El modelo actualiza sus parámetros con demasiada lentitud y tarda demasiado en alcanzar la convergencia. Pero eso no significa que una alta tasa de aprendizaje sea la solución.
Con una tasa de aprendizaje alta, el algoritmo puede caer en excesos, es decir, ir demasiado lejos en la corrección de sus errores. En este caso, el algoritmo necesita una tasa de aprendizaje menor, pero no demasiado pequeña como para que el aprendizaje sea ineficiente.
Como ejemplo, imagine a un extraterrestre que vino a aprender sobre la vida en la Tierra. El alienígena ve gatos, perros, caballos, cerdos y vacas y concluye que todos los animales tienen cuatro patas. Luego, ve una gallina. ¿Es esta criatura también un animal? Dependiendo de la tasa de aprendizaje del alienígena, llegará a una de las siguientes tres conclusiones:
A una tasa de aprendizaje óptima, el extraterrestre concluirá que los pollos también son animales. Y si ese es el caso, esto debe significar que la cantidad de patas no es un determinante clave para definir si algo es un animal o no.
Si el alienígena tiene una tasa de aprendizaje baja, no puede obtener suficiente insight a partir de este único pollo. El alienígena concluirá que los pollos no son animales porque no tienen cuatro patas. La tasa de aprendizaje baja del alienígena no le permite actualizar su razonamiento hasta que ve más pollos.
A una tasa de aprendizaje alta, el extraterrestre se excederá en sus correcciones. Ahora, concluirá que, dado que el pollo es un animal, y dado que el pollo tiene dos patas, todos los animales deben tener dos patas. Una tasa de aprendizaje alta significa que el modelo aprende “demasiado” a la vez.
Las diferentes tasas de aprendizaje derivan en distintos resultados de aprendizaje. La mejor tasa de aprendizaje es aquella que permite que el algoritmo ajuste los parámetros del modelo de manera oportuna sin sobrepasar el punto de convergencia.
Los parámetros son variables de configuración que rigen el funcionamiento de un modelo de aprendizaje profundo. Los parámetros son análogos a la configuración de un modelo en el sentido de que determinan su comportamiento y se pueden ajustar para mejorar el rendimiento del modelo.
Los parámetros aprendidos por el modelo, o pesos del modelo, son internos al modelo y los aprende durante el entrenamiento. En cada paso de entrenamiento, el modelo cambia sus parámetros internos para mejorar su rendimiento. El tamaño de los cambios que realiza el modelo lo establece la tasa de aprendizaje. La configuración de los parámetros de un modelo afecta directamente su rendimiento.
Al hacer el ajuste fino de un modelo, se necesitan ajustes más pequeños porque el modelo ya ha sido entrenado. El ajuste fino suele requerir una tasa de aprendizaje más baja que cuando se entrena inicialmente un modelo.
Los hiperparámetros son reglas externas que dan forma a la estructura y al proceso de entrenamiento del modelo. Los configuran las personas responsables de entrenar al modelo. La tasa de aprendizaje es uno de esos hiperparámetros y normalmente tiene un valor de entre 0.0 y 1.0.
Otros dos hiperparámetros fundamentales son:
Época: el número de veces que todo el conjunto de datos de entrenamiento pasa por el modelo durante el entrenamiento. Una época se completa cuando el modelo procesa cada muestra en sus datos de entrenamiento una vez. El hiperparámetro de época establece el número de épocas en el proceso de entrenamiento.
Tamaño del lote: las épocas de entrenamiento se pueden dividir en fragmentos más pequeños llamados lotes. El modelo actualiza sus pesos luego de cada lote de entrenamiento.
La época establece la duración del proceso de entrenamiento, mientras que el tamaño del lote determina la frecuencia con la que el modelo actualiza sus pesos. La tasa de aprendizaje le dice al modelo cuánto aprender después de cada lote.
Un algoritmo de optimización, o algoritmo de aprendizaje, es un proceso de programación que le muestra a un modelo de aprendizaje profundo cómo aprender a partir de sus datos de entrenamiento y cómo actualizar los pesos de su modelo. Los algoritmos de aprendizaje se componen de una función de pérdida, también conocida como función de costo o función de error, y un método para optimizar los pesos del modelo.
Cada iteración del algoritmo de aprendizaje perfecciona aún más el modelo. Cuando un modelo ya no se puede mejorar con más entrenamiento, se dice que ha alcanzado la la convergencia.
El descenso de gradiente es un algoritmo de optimización para entrenar modelos de aprendizaje automático. Los algoritmos de descenso de gradiente utilizan una función de pérdida para trazar la diferencia entre las predicciones de un algoritmo de aprendizaje automático y los valores reales. El gradiente es la pendiente de la función, que representa sus posibles valores.
El objetivo del algoritmo de optimización es hacer que el gradiente descienda a su mínimo local, donde la función produce la salida más baja. Pero los mínimos locales no son necesariamente el mínimo global singular de la función, o su valor mínimo general. Los científicos de datos utilizan métodos suplementarios, como otros algoritmos y la regularización, para evitar que un modelo se atasque en un mínimo local subóptimo a medida que disminuye la salida de la función de pérdida.
El proceso de actualización de los pesos de un modelo mediante la minimización de su función de pérdida se conoce como retropropagación. El descenso de gradiente es un método común para llevar a cabo la técnica de retropropagación.
Cada vez que el algoritmo actualiza los parámetros del modelo para reducir la función de pérdida y disminuir el gradiente, el modelo se acerca un poco más a la convergencia. La tasa de aprendizaje controla este descenso al limitar el ritmo al que el algoritmo actualiza los pesos del modelo.
Existen tres tipos de descenso de gradiente:
El descenso de gradiente por lotes itera después de calcular la pérdida de todas las muestras del conjunto de datos. Es muy estable, pero no el mejor para lograr una convergencia óptima.
El descenso de gradiente estocástico (SGD) selecciona aleatoriamente un punto de datos por iteración, lo que aumenta enormemente la velocidad y los matices. Pero la alta frecuencia de su actualización puede reducir la estabilidad. El SGD tiene muchas variantes, entre ellas, Adam, AdaGrad y RMSProp.
El descenso de gradiente por minilotes es un método por avenencia que elige un pequeño grupo de puntos de datos por iteración. Proporciona una buena frecuencia y velocidad de actualización sin sacrificar la estabilidad.
Determinar una buena tasa de aprendizaje es en gran medida un proceso de prueba y error. No existe una técnica de ciencia de datos infalible que garantice una tasa de aprendizaje inicial óptima sin evaluar el progreso durante el entrenamiento.
Los métodos comunes para determinar la tasa de aprendizaje incluyen:
Búsqueda en cuadrícula
Programas de tasas de aprendizaje
Tasa de aprendizaje adaptativo
Optimización de hiperparámetros
La optimización de la tasa de aprendizaje se basa en gran medida en los principios básicos de deterioro e impulso. Muchas bibliotecas de aprendizaje profundo calculan el deterioro y el impulso en nombre de los usuarios. Una de esas bibliotecas es la API Keras de código abierto, escrita en Python y compatible con TensorFlow, JAX y PyTorch.
El deterioro ralentiza la tasa de aprendizaje a medida que avanza el entrenamiento. El uso eficaz del deterioro permite que el modelo aprenda rápidamente al principio, y luego de forma gradual para evitar sobrepasar la convergencia.
El impulso es la inercia del algoritmo de optimización. Aumenta la tasa de aprendizaje cuando el gradiente sigue la misma dirección, lo que significa que el algoritmo aún tiene que alcanzar la convergencia, mientras omite los mínimos locales para continuar el progreso descendente. Aumentar el impulso puede conducir a una convergencia más rápida. Un impulso bajo puede detener el entrenamiento en mínimos locales menores, mientras que un impulso alto puede omitir accidentalmente mínimos locales significativos.
La búsqueda en cuadrícula es un método de fuerza bruta para determinar la tasa de aprendizaje. Los científicos de datos arman una cuadrícula que contiene todas las posibles tasas de aprendizaje. Luego, cada tasa de aprendizaje se prueba y valida. En la validación, el modelo entrenado se pone a prueba con un nuevo conjunto de datos y sus hiperparámetros se actualizan aún más.
Si bien la búsqueda en cuadrícula facilita un proceso exhaustivo de evaluación de la tasa de aprendizaje, requiere mucho tiempo y recursos computacionales.
Los programas de tasas de aprendizaje actualizan la tasa de aprendizaje durante el proceso de entrenamiento de acuerdo con uno de varios planes predeterminados. Los programas de tasas de aprendizaje incluyen:
Tasa de aprendizaje fija
Deterioro basado en el tiempo
Deterioro gradual
Deterioro exponencial
Deterioro polinómico
Una tasa de aprendizaje fija, o tasa de aprendizaje constante, no cambia durante el entrenamiento. Con una tasa de aprendizaje fija, el impulso y el deterioro permanecen estáticos durante el entrenamiento. Una tasa de aprendizaje fija proporciona un punto de referencia a partir del cual probar otras estrategias de tasa de aprendizaje.
Un programa de aprendizaje basado en el tiempo activa el deterioro de la tasa de aprendizaje después de una cantidad predeterminada de épocas de entrenamiento o en épocas específicas. La cantidad en la que disminuye la tasa de aprendizaje se basa en la tasa de aprendizaje del ciclo anterior. Un programa de aprendizaje basado en el tiempo típico basa la disminución en un factor inversamente proporcional a la cantidad de épocas.
El deterioro gradual reduce la tasa de aprendizaje por medio de un factor predeterminado, como reducir a la mitad, después de un número determinado de épocas.
Las tasas de aprendizaje con deterioro exponencial disminuyen exponencialmente después de un número determinado de épocas. Por lo demás, los programas de aprendizaje de deterioro exponencial son similares a los programas de deterioro gradual.
En un programa de aprendizaje polinómico, el deterioro se determina mediante una función polinómica de la época actual. Multiplicar la época por un exponente más alto aumenta la tasa de deterioro, mientras que una potencia más baja mantiene una tasa de deterioro más constante.
Un programa de aprendizaje cíclico define una tasa de aprendizaje mínima y máxima, y luego rebota la tasa de aprendizaje entre las dos. Un programa triangular aumenta linealmente desde el mínimo hasta el máximo y de vuelta en una constante establecida. Otros programas utilizan las funciones de coseno, sinusoidales o parabólicas.
Los algoritmos de aprendizaje adaptativo se ajustan dinámicamente en respuesta a las condiciones actuales o iteraciones anteriores. Por el contrario, las tasas de aprendizaje programadas dependen de hiperparámetros predefinidos.
Muchos métodos de aprendizaje adaptativo son variantes del SGD. Entre los algoritmos de aprendizaje adaptativo destacan:
AdaGrad: la familia de algoritmos AdaGrad (gradiente adaptativo), introducida en 2011, actualiza la tasa de aprendizaje por separado para cada parámetro. Por lo general, establece una relación inversamente proporcional entre la tasa de aprendizaje y la frecuencia de las características. Este método mantiene el enfoque en las características más relevantes del conjunto de datos.
RMSProp: el algoritmo RMSProp (root mean square propagation) ajusta el peso de aprendizaje para cada parámetro de acuerdo con un promedio móvil de los cuadrados de cada gradiente. Mejora en AdaGrad al ignorar los gradientes en el pasado lejano, aumentando así la estabilidad y facilitando una convergencia más rápida.
Adam: introducido en 2014, Adam (adaptive moment estimation) combina el impulso con RMSProp para ajustar la tasa de aprendizaje de cada parámetro en función de sus gradientes anteriores. Las versiones posteriores de Adam agregaron un arranque en caliente, que aumenta gradualmente la tasa de aprendizaje al comenzar el entrenamiento.
La optimización de hiperparámetros, o ajuste de hiperparámetros, es la práctica de identificar la configuración óptima para todos los hiperparámetros, entre ellos, la tasa de aprendizaje. Los algoritmos de ajuste de hiperparámetros automatizan el proceso de configurar los hiperparámetros óptimos, donde cada algoritmo favorece a determinados hiperparámetros sobre otros.
La búsqueda de la configuración óptima general de hiperparámetros permite considerar cómo cada hiperparámetro afecta a los demás. Sin embargo, este método puede resultar costoso desde el punto de vista computacional, especialmente con grandes cantidades de hiperparámetros.
Encuestamos a 2000 organizaciones sobre sus iniciativas de IA para descubrir qué funciona, qué no y cómo pueden avanzar.
IBM Granite es nuestra familia de modelos de IA abiertos, de alto rendimiento y confiables, diseñados para empresas y optimizados para escalar sus aplicaciones de IA. Explore opciones de lenguaje, código, series de tiempo y medidas de protección.
Acceda a nuestro catálogo completo de más de 100 cursos en línea al adquirir hoy mismo una suscripción individual o multiusuario, que le permitirá ampliar sus conocimientos en una amplia gama de nuestros productos a un precio reducido.
Dirigida por los principales líderes de opinión de IBM, el plan de estudios está diseñado para ayudar a los líderes empresariales a obtener los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.
¿Quiere rentabilizar mejor sus inversiones en IA? Descubra cómo la IA generativa escalable en áreas clave impulsa el cambio ayudando a sus mejores mentes a crear y ofrecer nuevas soluciones innovadoras.
Aprenda a incorporar con confianza la IA generativa y el aprendizaje automático en su negocio.
Indague en los 3 elementos críticos de una estrategia sólida de IA: crear una ventaja competitiva, escalar la IA en todo el negocio y avanzar en la IA confiable.