56 votos

Explicaciones intuitivas de las diferencias entre Gradient Boosting Trees (GBM) y Adaboost

Estoy tratando de entender las diferencias entre GBM y Adaboost.

Esto es lo que he entendido hasta ahora:

  • Existen dos algoritmos de boosting, que aprenden de los errores del modelo anterior y finalmente hacen una suma ponderada de los modelos.
  • GBM y Adaboost son bastante similares excepto por sus funciones de pérdida.

Pero todavía me resulta difícil hacerme una idea de las diferencias entre ellos. ¿Puede alguien darme explicaciones intuitivas?

44voto

Randel Puntos 3040

He encontrado esta introducción que proporciona algunas explicaciones intuitivas:

  • En el Gradient Boosting, las "deficiencias" (de los aprendices débiles existentes) se identifican mediante gradientes .
  • En AdaBoost, las "deficiencias" se identifican mediante puntos de datos de gran peso .

Mediante una función de pérdida exponencial, AdaBoost da más peso a aquellas muestras que se ajustaron peor en los pasos anteriores. En la actualidad, AdaBoost se considera un caso especial de Gradient Boosting en cuanto a la función de pérdida. Históricamente precedió al Gradient Boosting al que posteriormente se generalizó, como se muestra en la historia proporcionada en la introducción:

  1. Inventar AdaBoost, el primer algoritmo de refuerzo exitoso [Freund et al., 1996, Freund y Schapire, 1997]
  2. Formular AdaBoost como descenso de gradiente con una pérdida especial especial [Breiman et al., 1998, Breiman, 1999]
  3. Generalizar AdaBoost a Gradient Boosting para manejar un variedad de funciones de pérdida [Friedman et al., 2000, Friedman, 2001]

19voto

Matryoshka Puntos 53

Una explicación intuitiva del algoritmo AdaBoost

Permítanme ampliar la excelente respuesta de @Randel con una ilustración del siguiente punto


  • En AdaBoost, las "deficiencias" se identifican mediante puntos de datos de alta ponderación

Resumen de AdaBoost

Dejemos que $G_m(x) \ m = 1,2,...,M$ sea la secuencia de clasificadores débiles, nuestro objetivo es construir lo siguiente:

$$G(x) = \text{sign} \left( \alpha_1 G_1(x) + \alpha_2 G_2(x) + ... \alpha_M G_M(x)\right) = \text{sign} \left( \sum_{m = 1}^M \alpha_m G_m(x)\right)$$

  • La predicción final es una combinación de las predicciones de todos los clasificadores mediante un voto mayoritario ponderado

  • Los coeficientes $\alpha_m$ son calculados por el algoritmo de refuerzo, y ponderan la contribución de cada $G_m(x)$ . El efecto es dar mayor influencia a los clasificadores más precisos de la secuencia.

  • En cada impulsando paso, los datos se modifican aplicando ponderaciones $w_1, w_2, ..., w_N$ a cada observación de entrenamiento. En el paso $m$ las observaciones que fueron clasificado erróneamente previamente tienen su peso aumentado

  • Tenga en cuenta que en el primer paso $m=1$ los pesos se inicializan uniformemente $w_i = 1 / N$

AdaBoost en un ejemplo de juguete

Consideremos el conjunto de datos de juguete sobre el que he aplicado AdaBoost con la siguiente configuración: Número de iteraciones $M = 10$ clasificador débil = Árbol de decisión de profundidad 1 con 2 nodos de hoja. El límite entre los puntos de datos rojos y azules es claramente no lineal, pero el algoritmo lo hace bastante bien.

enter image description here

Visualización de la secuencia de aprendices débiles y de los pesos de la muestra

Los 6 primeros alumnos débiles $m = 1,2,...,6$ se muestran a continuación. Los puntos de dispersión se escalan según su respectivo peso de la muestra en cada iteración

enter image description here

Primera iteración:

  • El límite de decisión es muy sencillo (lineal) ya que se trata de alumnos débiles
  • Todos los puntos son del mismo tamaño, como se esperaba
  • 6 puntos azules están en la región roja y están mal clasificados

Segunda iteración:

  • El límite de decisión lineal ha cambiado
  • Los puntos azules anteriormente mal clasificados son ahora más grandes (mayor peso de la muestra) y han influido en el límite de decisión
  • 9 puntos azules están ahora mal clasificados

Resultado final después de 10 iteraciones

Todos los clasificadores tienen un límite de decisión lineal, en diferentes posiciones. Los coeficientes resultantes de las 6 primeras iteraciones $\alpha_m$ son :

1.041, 0.875, 0.837, 0.781, 1.04, 0.938...

Como era de esperar, la primera iteración tiene el mayor coeficiente, ya que es la que tiene menos errores de clasificación.

Próximos pasos

Una explicación intuitiva del refuerzo de gradiente - por completar

Fuentes y lecturas adicionales:

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X