La regularización en el contexto del aprendizaje automático es una técnica importante que se utiliza para mejorar el rendimiento de generalización de los modelos, en particular cuando se trabaja con datos de alta dimensión o modelos complejos que son propensos al sobreajuste. El sobreajuste se produce cuando un modelo aprende no solo los patrones subyacentes en los datos de entrenamiento, sino también el ruido, lo que da como resultado un rendimiento deficiente con datos no detectados. La regularización introduce información o restricciones adicionales en un modelo para evitar el sobreajuste al penalizar los modelos demasiado complejos.
La idea fundamental detrás de la regularización es incorporar un término de penalización en la función de pérdida que el modelo intenta minimizar. Este término de penalización desalienta al modelo a ajustar el ruido en los datos de entrenamiento al imponer un costo en la complejidad, que generalmente se mide por la magnitud de los parámetros del modelo. Al hacerlo, la regularización ayuda a lograr un equilibrio entre ajustar bien los datos de entrenamiento y mantener la capacidad del modelo de generalizarse a nuevos datos.
Existen varios tipos de técnicas de regularización que se utilizan comúnmente en el aprendizaje automático, siendo las más frecuentes la regularización L1, la regularización L2 y la deserción. Cada una de estas técnicas tiene sus propias características y aplicaciones.
1. Regularización L1 (Regresión Lasso): La regularización L1 agrega una penalización igual al valor absoluto de la magnitud de los coeficientes a la función de pérdida. Matemáticamente, se puede representar como:
donde es la función de pérdida original,
es el parámetro de regularización, y
son los parámetros del modelo. El efecto de la regularización L1 es que tiende a producir modelos dispersos, lo que significa que lleva algunos de los coeficientes a cero, lo que realiza de manera efectiva la selección de características. Esto puede ser particularmente útil cuando se trabaja con datos de alta dimensión donde muchas características pueden ser irrelevantes.
2. Regularización L2 (Regresión de cresta): La regularización L2 agrega una penalización igual al cuadrado de la magnitud de los coeficientes a la función de pérdida. Se expresa matemáticamente como:
La regularización L2 desalienta el uso de coeficientes grandes al penalizar sus valores al cuadrado, lo que genera un conjunto de pesos distribuidos de manera más uniforme. A diferencia de L1, la regularización L2 no produce modelos dispersos, ya que no obliga a que los coeficientes sean exactamente cero, sino que los mantiene pequeños. Esto es particularmente útil para evitar el sobreajuste cuando todas las características tienen cierta relevancia.
3. Regularización de Red Elástica: Elastic Net combina la regularización L1 y L2. Es particularmente útil en situaciones en las que existen múltiples características correlacionadas. La penalización de Elastic Net es una combinación lineal de las penalizaciones L1 y L2:
Ajustando los parámetros y
Elastic Net puede equilibrar los beneficios de la regularización L1 y L2.
4. Abandonar: El abandono es una técnica de regularización diseñada específicamente para redes neuronales. Durante el entrenamiento, el abandono establece aleatoriamente una fracción de los nodos (neuronas) en una capa en cero en cada iteración. Esto evita que la red dependa demasiado de un solo nodo y alienta a la red a aprender características más sólidas. El abandono es particularmente efectivo en modelos de aprendizaje profundo donde el sobreajuste es un problema común debido a la gran cantidad de parámetros.
5. Parada anticipada: Aunque no es una técnica de regularización en el sentido tradicional, la detención temprana es una estrategia para evitar el sobreajuste al detener el proceso de entrenamiento una vez que el rendimiento en un conjunto de validación comienza a degradarse. Esto es particularmente útil en métodos iterativos como el descenso de gradiente, donde el modelo se actualiza continuamente.
La regularización es esencial en el aprendizaje automático porque permite que los modelos funcionen bien con datos no vistos al controlar su complejidad. La elección de la técnica de regularización y el ajuste de sus parámetros ( para L1 y L2, la tasa de abandono) son importantes y a menudo requieren experimentación y validación cruzada para lograr resultados óptimos.
Por ejemplo, considere un modelo de regresión lineal entrenado en un conjunto de datos con muchas características. Sin regularización, el modelo podría asignar pesos grandes a algunas características, lo que ajustaría muy bien los datos de entrenamiento, pero tendría un rendimiento deficiente en los datos de prueba debido al sobreajuste. Al aplicar la regularización L2, se alienta al modelo a distribuir los pesos de manera más uniforme, lo que potencialmente conduce a una mejor generalización en nuevos datos.
En otro escenario, una red neuronal entrenada con datos de imágenes podría sobreajustarse al memorizar patrones específicos en las imágenes de entrenamiento. Al aplicar la función de abandono, la red se ve obligada a aprender características más generales que son útiles en diferentes imágenes, lo que mejora su rendimiento con datos no vistos.
La regularización es un concepto fundamental en el aprendizaje automático que ayuda a evitar el sobreajuste al agregar una penalización por complejidad a la función de pérdida del modelo. Al controlar la complejidad del modelo, las técnicas de regularización como L1, L2, Elastic Net, dropout y early stopping permiten una mejor generalización a nuevos datos, lo que las convierte en herramientas indispensables en el conjunto de herramientas del profesional del aprendizaje automático.
Otras preguntas y respuestas recientes sobre EITC/AI/GCML Google Cloud Machine Learning:
- ¿Cuál es la tarea de interpretar los garabatos dibujados por los jugadores?
- Cuando en los materiales de lectura se habla de "elegir el algoritmo adecuado", ¿se quiere decir que básicamente ya existen todos los algoritmos posibles? ¿Cómo sabemos que un algoritmo es el "adecuado" para un problema específico?
- ¿Cuáles son los hiperparámetros utilizados en el aprendizaje automático?
- ¿Cuál es el lenguaje de programación para el aprendizaje automático? Es simplemente Python.
- ¿Cómo se aplica el aprendizaje automático al mundo científico?
- ¿Cómo decides qué algoritmo de aprendizaje automático utilizar y cómo lo encuentras?
- ¿Cuáles son las diferencias entre el aprendizaje federado, la computación de borde y el aprendizaje automático en el dispositivo?
- ¿Cómo preparar y limpiar los datos antes del entrenamiento?
- ¿Cuáles son las tareas y actividades iniciales específicas en un proyecto de aprendizaje automático?
- ¿Cuáles son las reglas generales para adoptar una estrategia y un modelo de aprendizaje automático específicos?
Ver más preguntas y respuestas en EITC/AI/GCML Google Cloud Machine Learning