IA 101

¿Qué es el Gradient Boosting?

mm

Un tipo común de modelo de aprendizaje automático que ha demostrado ser extremadamente útil en competencias de ciencia de datos es el modelo de gradient boosting. El gradient boosting es básicamente el proceso de convertir modelos de aprendizaje débiles en modelos de aprendizaje fuertes. Sin embargo, ¿cómo se logra exactamente esto? Analicemos los algoritmos de gradient boosting y comprendamos mejor cómo un modelo de gradient boosting convierte a los aprendices débiles en aprendices fuertes.

Definiendo el Gradient Boosting

Este artículo tiene como objetivo brindarle una buena intuición de lo que es el gradient boosting, sin muchos desgloses de las matemáticas que subyacen a los algoritmos. Una vez que tenga una comprensión de cómo opera el gradient boosting a nivel alto, se le anima a profundizar y explorar las matemáticas que lo hacen posible.

Comencemos definiendo qué significa “mejorar” a un aprendiz. Los aprendices débiles se convierten en aprendices fuertes ajustando las propiedades del modelo de aprendizaje. ¿Qué algoritmo de aprendizaje se está mejorando exactamente?

Los modelos de mejoramiento funcionan aumentando otro modelo de aprendizaje automático común, un árbol de decisión.

Un modelo de árbol de decisión funciona dividiendo un conjunto de datos en porciones cada vez más pequeñas, y una vez que los subconjuntos no pueden dividirse más, el resultado es un árbol con nodos y hojas. Los nodos en un árbol de decisión son donde se toman decisiones sobre los puntos de datos utilizando diferentes criterios de filtrado. Las hojas en un árbol de decisión son los puntos de datos que han sido clasificados. Los algoritmos de árbol de decisión pueden manejar tanto datos numéricos como categóricos, y las divisiones en el árbol se basan en variables/características específicas.

Ilustración de la forma en que se entrenan los modelos de mejoramiento.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

Un tipo de algoritmo de mejoramiento es el algoritmo AdaBoost. Los algoritmos AdaBoost comienzan entrenando un modelo de árbol de decisión y asignando un peso igual a cada observación. Después de que el primer árbol ha sido evaluado para la precisión, los pesos para las diferentes observaciones se ajustan. Las observaciones que fueron fáciles de clasificar tienen sus pesos reducidos, mientras que las observaciones que fueron difíciles de clasificar tienen sus pesos aumentados. Se crea un segundo árbol utilizando estos pesos ajustados, con el objetivo de que las predicciones del segundo árbol sean más precisas que las del primer árbol.

El modelo ahora consiste en las predicciones para el árbol original y el nuevo árbol (o Árbol 1 + Árbol 2). La precisión de la clasificación se evalúa nuevamente en función del nuevo modelo. Se crea un tercer árbol en función del error calculado para el modelo, y los pesos se ajustan nuevamente. Este proceso continúa durante un número determinado de iteraciones, y el modelo final es un modelo de conjunto que utiliza la suma ponderada de las predicciones realizadas por todos los árboles construidos anteriormente.

El proceso descrito anteriormente utiliza árboles de decisión y los predictores/modelos base, sin embargo, un enfoque de mejoramiento se puede realizar con una amplia gama de modelos como los muchos modelos de clasificación y regresión estándar. Los conceptos clave para comprender son que los predictores posteriores aprenden de los errores cometidos por los anteriores y que los predictores se crean secuencialmente.

La principal ventaja de los algoritmos de mejoramiento es que tardan menos en encontrar las predicciones actuales en comparación con otros modelos de aprendizaje automático. Sin embargo, se debe tener cuidado al utilizar algoritmos de mejoramiento, ya que son propensos a sobreajustar.

Gradient Boosting

Ahora examinaremos uno de los algoritmos de mejoramiento más comunes. Los modelos de Gradient Boosting (GBM) son conocidos por su alta precisión, y amplían los principios generales utilizados en AdaBoost.

La principal diferencia entre un modelo de Gradient Boosting y AdaBoost es que los GBM utilizan un método diferente para calcular qué aprendices están identificando mal los puntos de datos. AdaBoost calcula dónde un modelo está funcionando mal examinando los puntos de datos que tienen un peso elevado. Mientras que los GBM utilizan gradientes para determinar la precisión de los aprendices, aplicando una función de pérdida a un modelo. Las funciones de pérdida son una forma de medir la precisión del ajuste de un modelo en el conjunto de datos, calculando un error y optimizando el modelo para reducir ese error. Los GBM permiten al usuario optimizar una función de pérdida especificada en función de su objetivo deseado.

Tomando la función de pérdida más común –Error Cuadrático Medio (ECM)– como ejemplo, el descenso de gradiente se utiliza para actualizar las predicciones en función de una tasa de aprendizaje predefinida, con el objetivo de encontrar los valores donde la pérdida sea mínima.

Para aclarar:

Nuevas predicciones del modelo = variables de salida – predicciones imperfectas antiguas.

En un sentido estadístico más preciso, los GBM tienen como objetivo encontrar patrones relevantes en los residuos de un modelo, ajustando el modelo para que se adapte al patrón y acercar los residuos lo más posible a cero. Si se realizara una regresión sobre las predicciones del modelo, los residuos se distribuirían alrededor de 0 (ajuste perfecto), y los GBM están encontrando patrones dentro de los residuos y actualizando el modelo alrededor de estos patrones.

En otras palabras, las predicciones se actualizan para que la suma de todos los residuos esté lo más cerca posible de 0, lo que significa que los valores predichos estarán muy cerca de los valores reales.

Tenga en cuenta que se pueden utilizar una amplia variedad de otras funciones de pérdida (como la pérdida logarítmica) en un GBM. Se seleccionó el ECM anterior para fines de simplicidad.

Varaciones en los Modelos de Gradient Boosting

Los modelos de Gradient Boosting son algoritmos codiciosos que son propensos a sobreajustar en un conjunto de datos. Esto se puede evitar con varios métodos diferentes que pueden mejorar el rendimiento de un GBM.

Los GBM se pueden regular con cuatro métodos diferentes: reducción, restricciones de árbol, mejoramiento de gradiente estocástico y aprendizaje penalizado.

Redución

Como se mencionó anteriormente, en los GBM las predicciones se suman secuencialmente. En la “reducción”, las adiciones de cada árbol a la suma general se ajustan. Se aplican pesos que ralentizan la tasa de aprendizaje del algoritmo, lo que requiere que se agreguen más árboles al modelo, lo que generalmente mejora la robustez y el rendimiento del modelo. El compromiso es que el modelo tarda más en entrenarse.

Restricciones de árbol

Restringir el árbol con varios ajustes como agregar más profundidad al árbol o aumentar el número de nodos o hojas en el árbol puede hacer que sea más difícil para el modelo sobreajustar. Imponer una restricción en el número mínimo de observaciones por división tiene un efecto similar. Una vez más, el compromiso es que el modelo tarda más en entrenarse.

Muestreo aleatorio

Los aprendices individuales se pueden crear a través de un proceso estocástico, en función de submuestras aleatorias del conjunto de datos de entrenamiento. Esto tiene el efecto de reducir las correlaciones entre los árboles, lo que evita el sobreajuste. El conjunto de datos se puede submuestrear antes de crear los árboles o antes de considerar una división en el árbol.

Aprendizaje penalizado

Más allá de restringir el modelo a través de limitar la estructura del árbol, es posible utilizar un árbol de regresión. Los árboles de regresión tienen valores numéricos adjuntos a cada una de las hojas, y estos funcionan como pesos y se pueden ajustar con funciones de regularización comunes como la regularización L1 y L2.

Bloguero y programador con especialidades en Machine Learning y Deep Learning temas. Daniel espera ayudar a otros a utilizar el poder de la IA para el bien social.