Impulsar las técnicas de aprendizaje automático: mejorar la precisión y reducir los errores

Publicado: 2025-01-16

Boosting es una poderosa técnica de aprendizaje conjunto en aprendizaje automático (ML) que mejora la precisión del modelo al reducir los errores. Al entrenar modelos secuenciales para abordar deficiencias anteriores, el impulso crea sistemas predictivos sólidos. Esta guía cubre cómo funciona el impulso; sus ventajas, desafíos y aplicaciones; y cómo se compara con el embolsado.

Tabla de contenido

  • ¿Qué es impulsar?
  • Sesgo versus variación
  • Impulsar versus embolsar
  • Cómo funciona el impulso
  • Tipos de algoritmos de impulso
  • Aplicaciones de impulso
  • Ventajas de impulsar
  • Retos y limitaciones del impulso

¿Qué es impulsar?

Boosting es una técnica de aprendizaje en conjunto que entrena modelos nuevos y secuenciales para corregir los errores de los modelos anteriores en el conjunto. Las técnicas de aprendizaje conjunto son formas de utilizar múltiples modelos similares para mejorar el rendimiento y la precisión. Al impulsar, los nuevos modelos se entrenan únicamente en los errores anteriores del conjunto. Luego, los nuevos modelos se unen al conjunto para ayudarle a dar predicciones más precisas. Cualquier entrada nueva se pasa a través de los modelos y se agrega para reducir los errores en todos los modelos.

La precisión es un concepto amplio. El impulso aumenta específicamente el rendimiento del modelo al reducir el sesgo del modelo (y, en menor medida, la varianza). La variación y el sesgo son dos conceptos importantes de ML que cubriremos en la siguiente sección.

Trabaja de forma más inteligente con Grammarly
El compañero de redacción de IA para cualquiera que tenga trabajo que hacer

Sesgo versus variación

El sesgo y la varianza son dos propiedades fundamentales del aprendizaje automático en su conjunto. El objetivo de cualquier algoritmo de ML es reducir la varianza y el sesgo de los modelos. Dada su importancia, explicaremos más sobre cada uno y por qué suelen estar en desacuerdo entre sí.

Para explicar cada concepto, tomemos el ejemplo de predecir el precio de venta de casas teniendo en cuenta datos sobre sus características (por ejemplo, pies cuadrados, número de dormitorios, etc.).

Inclinación

El sesgo es una medida de qué tan equivocado está un modelo en promedio. Si una casa realmente se vendió por $400 000 y el modelo predijo $300 000, el sesgo para ese punto de datos es −$100 000. Promedie el sesgo en todo el conjunto de datos de entrenamiento y tendrá el sesgo del modelo.

El sesgo suele deberse a que los modelos son demasiado simples para captar las complejas relaciones entre características y resultados. Un modelo demasiado simple puede aprender a considerar solo los metros cuadrados y se equivocará constantemente, incluso en los datos de entrenamiento. En el lenguaje de ML, esto se llama desadaptación.

Diferencia

La varianza mide en qué medida difieren los resultados de un modelo dadas entradas similares. En la mayoría de los casos, las casas en vecindarios similares y con metros cuadrados, número de dormitorios y número de baños similares deberían tener precios similares. Pero un modelo con una gran variación puede ofrecer precios tremendamente diferentes. ¿Por qué?

Es posible que el modelo haya aprendido relaciones espurias a partir de los datos de entrenamiento (por ejemplo, pensar que el número de casas afecta el precio). Estas relaciones espurias pueden luego ahogar las relaciones útiles en los datos. Generalmente, los modelos complejos captan estas relaciones irrelevantes, lo que se denomina sobreajuste.

Compensación entre sesgo y varianza

Idealmente, desea un modelo de aprendizaje automático con bajo sesgo y baja varianza que detecte las verdaderas relaciones en los datos, pero nada más. Sin embargo, esto es difícil de hacer en la práctica.

Aumentar la sofisticación o complejidad de un modelo puede reducir su sesgo al darle el poder de encontrar patrones más profundos en los datos. Sin embargo, este mismo poder también puede ayudarle a encontrar patrones irrelevantes y viceversa, lo que hace que este equilibrio entre sesgo y varianza sea difícil de resolver.

El impulso mejora el sesgo y la variación

El impulso es una técnica de aprendizaje en conjunto muy popular porque puede reducir tanto el sesgo como la varianza (aunque la reducción de la varianza no es tan común).

Al corregir errores anteriores, el impulso reduce la tasa de error promedio y el tamaño del conjunto de modelos, lo que reduce el sesgo.

Al utilizar varios modelos, los errores de los modelos individuales se pueden cancelar, lo que podría generar una menor variación.

Impulsar versus embolsar

En el aprendizaje en conjunto, las dos técnicas más comunes son impulsar y embolsar. Bagging toma el conjunto de datos de entrenamiento, crea subconjuntos aleatorios y entrena un modelo diferente en cada subconjunto. Luego, los modelos se utilizan en conjunto para hacer predicciones. Esto lleva a bastantes diferencias entre embolsar e impulsar, que detallamos a continuación.

Harpillera Impulsando
Entrenamiento modelo Los modelos se entrenan en paralelo con diferentes subconjuntos de datos. Los modelos se entrenan secuencialmente, y cada modelo se centra en los errores del modelo anterior.
Enfoque de reducción de errores Reduce la variación Reduce el sesgo
Algoritmos comunes Bosque aleatorio, árboles de decisión en bolsas AdaBoost, aumento de gradiente, XGBoost
Riesgo de sobreajuste Menor riesgo de sobreajuste debido al muestreo aleatorio Mayor riesgo de sobreajuste
Complejidad computacional Más bajo Más alto

Ambas técnicas son comunes, pero el impulso es la opción más popular porque puede reducir el sesgo y la variación.

Cómo funciona el impulso

Veamos cómo funciona el impulso. Básicamente, el impulso consiste en entrenar cada nuevo modelo en los puntos de datos en los que los modelos anteriores se equivocaron. Hay tres partes:

  1. Ponderación de los datos de entrenamiento por errores.
  2. Entrenando un nuevo modelo en este conjunto de datos de error ponderado
  3. Agregar el nuevo modelo al conjunto

Para empezar, supongamos que hemos entrenado el modelo inicial (un conjunto de uno).

Ponderación de los datos de entrenamiento por errores.

Ejecutamos los datos de entrenamiento a través del conjunto existente y observamos para qué entradas el conjunto dio predicciones incorrectas. Luego creamos una versión modificada del conjunto de datos de entrenamiento donde esas entradas problemáticas están más representadas o son más importantes.

Entrenando el nuevo modelo

Usamos el conjunto de datos modificado que creamos para entrenar un nuevo modelo, que es del mismo tipo que los otros modelos del conjunto. Sin embargo, este nuevo modelo se centra más en los ejemplos concretos de los datos de entrenamiento, por lo que probablemente funcionará mejor en ellos. Esta mejora en el rendimiento de los errores es una parte importante para reducir el sesgo.

Incorporando el nuevo modelo

El modelo recién entrenado se agrega al conjunto y sus predicciones se ponderan según su precisión. En paralelo, se pasan nuevas entradas a cada modelo del conjunto y las salidas finales de cada modelo se ponderan para obtener la salida del conjunto.

Para las tareas de clasificación (normalmente elegir entre dos etiquetas en problemas de impulso), la clase con la suma más alta de votos ponderados se elige como predicción del conjunto.

Para las tareas de regresión, la predicción del conjunto es el promedio ponderado de la predicción de cada modelo.

En este punto, el proceso puede repetirse si el sesgo sigue siendo demasiado alto.

Tipos de algoritmos de impulso

Existen varias variantes de algoritmos de impulso, con algunas diferencias importantes entre ellos. Los más populares son el impulso adaptativo (AdaBoost), el impulso de gradiente, el impulso de gradiente extremo (XGBoost) y el impulso de gato. Cubriremos cada uno por turno.

AdaBoost

AdaBoost es muy similar al algoritmo de impulso que presentamos anteriormente: los datos de entrenamiento que plantean problemas para conjuntos anteriores se ponderan más al entrenar el siguiente modelo. AdaBoost fue uno de los algoritmos de impulso originales y es conocido por su simplicidad.

AdaBoost es menos propenso al sobreajuste que otros algoritmos de refuerzo, ya que los nuevos modelos ven diferentes variaciones (siendo más comunes los puntos de datos concretos) del conjunto de datos de entrenamiento. Pero, en comparación con otras técnicas de refuerzo, es más sensible a los datos atípicos y no reduce tanto el sesgo.

Aumento de gradiente

El aumento de gradiente es un enfoque único para el aumento. A diferencia del impulso adaptativo, los nuevos modelos no obtienen una versión ponderada por errores del conjunto de datos de entrenamiento. Obtienen el conjunto de datos original. Sin embargo, en lugar de intentar predecir las salidas de las entradas del conjunto de datos, intentan predecir el gradiente negativo del conjunto anterior en cada entrada.

El gradiente negativo es esencialmente la dirección en la que las ponderaciones y predicciones del modelo del conjunto tendrían que moverse para disminuir el error y acercarse a la respuesta correcta. Los gradientes negativos se agregan (con un factor de ponderación aplicado) a la predicción de salida del conjunto anterior para acercarla a ser correcta.

El aumento de gradiente tiene mucho más rendimiento que AdaBoosting, especialmente en datos complejos. También hay más hiperparámetros que ajustar, lo que da a las personas más control pero también aumenta la necesidad de experimentar.

XGBoost

XGBoost (o aumento de gradiente extremo) es una versión altamente optimizada del aumento de gradiente. XGBoost hace que el entrenamiento y la inferencia de aumento de gradiente sean mucho más paralelos. XGBoost también agrega regularización (es decir, penalizaciones por complejidad) para evitar el sobreajuste y maneja mucho mejor los datos faltantes. Finalmente, XGBoost es mucho más escalable para grandes conjuntos de datos o cargas de trabajo.

XGBoost tiene incluso más rendimiento que el aumento de gradiente y fue uno de los algoritmos de aprendizaje automático más populares en la década de 2010. Pero también es más difícil de interpretar y mucho más costoso desde el punto de vista computacional de ejecutar.

gatoboost

CatBoost es una forma de aumento de gradiente diseñada para funcionar con datos categóricos. Los datos categóricos son datos donde los valores pueden estar en unos pocos grupos limitados. A continuación se muestran algunos ejemplos:

  • Sí–sin datos (por ejemplo, ¿la casa tiene garaje?)
  • Categorías de colores (p. ej., rojo, azul, verde)
  • Categorías de productos (por ejemplo, electrónica, ropa, muebles)

Los modelos de aumento de gradiente generalmente no funcionan bien con datos categóricos, mientras que CatBoost sí. CatBoost también puede manejar datos continuos, lo que la convierte en otra opción de impulso popular. Al igual que otros modelos de aumento de gradiente, CatBoost adolece de complejidad computacional y sobreajuste.

Aplicaciones de impulso

El impulso se puede aplicar a casi cualquier problema de ML, ya que los errores y el sesgo suelen ser mayores de lo que nos gustaría. La clasificación y la regresión son dos de las grandes subdivisiones del ML, y el impulso se aplica a ambas. Las recomendaciones de contenido y la detección de fraude son dos ejemplos de problemas de ML que enfrentan las empresas y a los que el impulso también puede ayudar.

Clasificación y regresión

La clasificación y la regresión son dos de las tareas centrales de ML. Un usuario puede querer predecir si una imagen contiene un perro o un gato (clasificación), o puede querer predecir el precio de venta de una casa (regresión). El impulso funciona bien para ambas tareas, especialmente cuando los modelos subyacentes son débiles o poco complejos.

Recomendaciones de contenido

El impulso mejora las recomendaciones de contenido (por ejemplo, las películas sugeridas por Netflix) al mejorar de forma iterativa la precisión de la predicción de las preferencias del usuario. Cuando un modelo de recomendación no logra capturar ciertos patrones de visualización (como preferencias estacionales o elecciones dependientes del contexto), el impulso crea modelos adicionales que se centran específicamente en estos patrones omitidos. Cada nuevo modelo de la secuencia da peso adicional a las preferencias de los usuarios previamente mal predichas, lo que resulta en menores errores.

Detección de fraude

En la detección de fraude, un caso de uso común para las empresas financieras, impulsar la excelencia aprendiendo progresivamente de transacciones mal clasificadas. Si los modelos iniciales no detectan patrones de fraude sofisticados, los modelos más nuevos y mejorados se dirigen específicamente a estos casos problemáticos. La técnica se adapta particularmente bien a las cambiantes tácticas de fraude al otorgar mayor peso a las clasificaciones erróneas recientes, lo que permite que el sistema mantenga altas tasas de detección.

Ventajas de impulsar

El impulso es excelente para reducir el sesgo del modelo y, en menor medida, la varianza. En comparación con otras técnicas de conjunto, requiere menos datos y brinda a las personas más control sobre el sobreajuste.

Sesgo y varianza reducidos

Un alto sesgo significa que los modelos suelen estar equivocados. El impulso es una gran técnica para reducir el sesgo en los modelos. Dado que cada modelo se centra en corregir los errores de los modelos anteriores, el conjunto en su conjunto reduce su tasa de error.

La variación reducida también tiene un efecto secundario: los modelos más nuevos pueden tener diferentes combinaciones de datos de entrenamiento, lo que permite que los errores en diferentes modelos se cancelen entre sí.

Necesita menos datos

A diferencia de otras técnicas de conjunto, el impulso no necesita un gran conjunto de datos para funcionar bien. Dado que cada nuevo modelo se centra principalmente en los errores de los anteriores, tiene un objetivo limitado y no necesita una gran cantidad de datos. El nuevo modelo puede utilizar los datos de entrenamiento existentes y entrenar repetidamente sobre los errores.

Más control sobre el sobreajuste

Boosting tiene algunos hiperparámetros que controlan cuánto contribuye cada nuevo modelo a la predicción del conjunto. Al modificar estos hiperparámetros, los usuarios pueden reducir la influencia de los nuevos modelos. Esto aumentaría el sesgo pero potencialmente reduciría la varianza, dando a los usuarios control de dónde desean llegar a la compensación entre sesgo y varianza.

Retos y limitaciones del impulso

Sin embargo, el impulso tiene sus desventajas. Requiere más tiempo de entrenamiento y uso, es sensible a datos atípicos y requiere más ajuste de hiperparámetros.

Mayor tiempo de entrenamiento

Al impulsar, cada nuevo modelo depende de los errores del conjunto anterior. Esto significa que los modelos deben entrenarse uno a la vez, lo que lleva a tiempos de entrenamiento prolongados. Otra desventaja es que el entrenamiento secuencial significa que es posible que no sepas si el impulso será efectivo hasta que entrenes una docena de modelos.

Sensibilidad atípica

Al impulsar, los modelos más nuevos se centran únicamente en los errores de los modelos anteriores. Algunos datos atípicos en el conjunto de entrenamiento que deberían ignorarse pueden convertirse en el único foco de modelos posteriores. Esto puede degradar el rendimiento general del conjunto y hacer perder tiempo de entrenamiento. Es posible que sea necesario un procesamiento cuidadoso de los datos para contrarrestar los efectos de los valores atípicos.

Más ajuste de hiperparámetros

La ventaja de brindar a los usuarios más control sobre el sobreajuste también significa que los usuarios necesitan ajustar más hiperparámetros para encontrar un buen equilibrio entre sesgo y varianza. A menudo se necesitan múltiples experimentos de refuerzo, lo que hace que el entrenamiento secuencial sea aún más tedioso. El impulso requiere muchos recursos computacionales.