Sobreajuste, regularización y interrupción anticipada

A diferencia de los bosques aleatorios, los árboles con boosting del gradiente pueden sobreajustar. Por lo tanto, en cuanto a las redes neuronales, puedes aplicar regularización y detener anticipadamente con un conjunto de datos de validación.

Por ejemplo, en las siguientes figuras, se muestran las curvas de pérdida y precisión para los conjuntos de entrenamiento y validación cuando se entrena un modelo de GBT. Observe qué tan divergentes son las curvas, lo que sugiere un alto grado de sobreajuste.

Trazas de pérdida de entrenamiento y pérdida de validación en comparación con la cantidad de árboles de decisión. La pérdida de entrenamiento disminuye de forma gradual a medida que aumenta la cantidad de árboles de decisión. Sin embargo, la pérdida de validación solo disminuye hasta alrededor de 40 árboles de decisión. Con más de 40 árboles de decisión, la pérdida de validación aumenta. Con 400 árboles de decisiones, la brecha entre la pérdida de entrenamiento y la pérdida de validación es enorme.

Figura 29: Pérdida frente a cantidad de árboles de decisión.

 

Trazas de exactitud de entrenamiento y de validación en comparación con la cantidad de árboles de decisión. La exactitud del entrenamiento aumenta gradualmente a medida que aumenta la cantidad de árboles de decisión, hasta alcanzar un máximo de 1.0 a 400. La exactitud de la validación aumenta a alrededor de 0.86 en 40 árboles de decisiones y, luego, cae a casi 0.83 en 400.

Figura 30: Exactitud frente a cantidad de árboles de decisión.

 

Entre los parámetros de regularización comunes para los árboles con boosting del gradiente, se incluyen los siguientes:

  • La profundidad máxima del árbol.
  • El porcentaje de reducción.
  • La proporción de atributos probados en cada nodo.
  • Coeficiente L1 y L2 en la pérdida.

Ten en cuenta que, en general, los árboles de decisión crecen mucho más profundos que los modelos de bosques aleatorios. De forma predeterminada, los árboles con boosting del gradiente en TF-DF se desarrollan hasta la profundidad 6. Debido a que los árboles son superficiales, la cantidad mínima de ejemplos por hoja tiene poco impacto y, por lo general, no se ajusta.

La necesidad de un conjunto de datos de validación es un problema cuando la cantidad de ejemplos de entrenamiento es pequeña. Por lo tanto, es común entrenar árboles con boosting del gradiente dentro de un bucle de validación cruzada o para inhabilitar la interrupción anticipada cuando se sabe que el modelo no se sobreajusta.

Ejemplo de uso

En el capítulo anterior, entrenamos un bosque aleatorio en un conjunto de datos pequeño. En este ejemplo, simplemente reemplazaremos el modelo de bosque aleatorio por un modelo de árboles con boosting del gradiente:

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

Uso y limitaciones

Los árboles con boosting del gradiente tienen algunas ventajas y desventajas.

Ventajas

  • Al igual que los árboles de decisión, admiten de forma nativa los atributos numéricos y categóricos y, a menudo, no necesitan un procesamiento previo de los atributos.
  • Los árboles con boosting del gradiente tienen hiperparámetros predeterminados que suelen dar excelentes resultados. Sin embargo, ajustar esos hiperparámetros puede mejorar significativamente el modelo.
  • Los modelos de árbol potenciados por gradientes suelen ser pequeños (en cantidad de nodos y en la memoria) y rápidos de ejecutar (con frecuencia, solo uno o unos pocos μs / ejemplos).

Desventajas

  • Los árboles de decisión deben entrenarse de manera secuencial, lo que puede ralentizar el entrenamiento considerablemente. Sin embargo, la desaceleración del entrenamiento se compensa, en parte, con los árboles de decisión que son más pequeños.
  • Al igual que los bosques aleatorios, los árboles con boosting del gradiente no pueden aprender ni reutilizar representaciones internas. Cada árbol de decisión (y cada rama de cada árbol de decisión) debe volver a aprender el patrón del conjunto de datos. En algunos conjuntos de datos, en particular los conjuntos de datos no estructurados (por ejemplo, imágenes, texto), esto provoca que los árboles con boosting del gradiente muestren resultados más deficientes que otros métodos.