AdaBoost (abreviatura de Ada ptive Boosting ) es un metaalgoritmo de clasificación estadística formulado por Yoav Freund y Robert Schapire en 1995, quienes ganaron el Premio Gödel en 2003 por su trabajo. Puede utilizarse junto con muchos tipos de algoritmos de aprendizaje para mejorar el rendimiento. La salida de múltiples clasificadores débiles se combina en una suma ponderada que representa la salida final del clasificador potenciado. Generalmente, AdaBoost se presenta para la clasificación binaria , aunque puede generalizarse a múltiples clases o intervalos acotados de valores reales . [ 1 ] [ 2 ]
AdaBoost es adaptativo en el sentido de que los modelos (aprendices) débiles subsiguientes se ajustan para corregir las instancias mal clasificadas por los modelos anteriores. En algunos problemas, puede ser menos propenso al sobreajuste que otros algoritmos de aprendizaje. Los aprendices individuales pueden ser débiles, pero siempre que el rendimiento de cada uno sea ligeramente superior al de una elección aleatoria, se puede demostrar que el modelo final converge hacia un aprendiz robusto.
Aunque AdaBoost se usa normalmente para combinar clasificadores base débiles (como árboles de decisión simples ), se ha demostrado que también combina eficazmente clasificadores base fuertes (como árboles de decisión más profundos ), produciendo un modelo aún más preciso. [ 3 ]
Cada algoritmo de aprendizaje tiende a adaptarse mejor a ciertos tipos de problemas que a otros, y normalmente tiene muchos parámetros y configuraciones diferentes que ajustar antes de lograr un rendimiento óptimo en un conjunto de datos . A AdaBoost (con árboles de decisión como aprendices débiles) se suele considerar el mejor clasificador listo para usar. [ 4 ] [ 5 ] Cuando se utiliza con el aprendizaje de árboles de decisión, la información recopilada en cada etapa del algoritmo AdaBoost sobre la "dificultad" relativa de cada muestra de entrenamiento se introduce en el algoritmo de crecimiento del árbol, de modo que los árboles posteriores tienden a centrarse en los ejemplos más difíciles de clasificar.
Capacitación
AdaBoost se refiere a un método particular de entrenamiento de un clasificador potenciado. Un clasificador potenciado es un clasificador de la forma donde cadaes un aprendiz débil que toma un objetoRecibe como entrada un valor que indica la clase del objeto. Por ejemplo, en el problema de dos clases, el signo de la salida del clasificador débil identifica la clase del objeto predicha y el valor absoluto indica la confianza en esa clasificación.
Cada aprendiz débil produce una hipótesis de salidaque fija una predicciónpara cada muestra en el conjunto de entrenamiento. En cada iteraciónSe selecciona un aprendiz débil y se le asigna un coeficiente.de tal manera que el error total de entrenamientodel resultado-El clasificador potenciado de etapa se minimiza.
Aquíes el clasificador potenciado que se ha construido hasta la etapa anterior de entrenamiento yes el clasificador débil que se está considerando para su adición al clasificador final.
Ponderación
En cada iteración del proceso de entrenamiento, un pesoSe asigna a cada muestra del conjunto de entrenamiento un valor igual al error actual.en esa muestra. Estos pesos pueden usarse en el entrenamiento del clasificador débil. Por ejemplo, se pueden construir árboles de decisión que favorezcan la división de conjuntos de muestras con pesos grandes.
Derivación
Esta derivación sigue a Rojas (2009): [ 6 ]
Supongamos que tenemos un conjunto de datosdonde cada artículotiene una clase asociaday un conjunto de clasificadores débilescada uno de los cuales produce una clasificaciónpara cada artículo. Después delEn la iteración -a, nuestro clasificador potenciado es una combinación lineal de los clasificadores débiles de la forma: donde la clase será el signo de. En el-en la iteración queremos extender esto a un clasificador potenciado mejor agregando otro clasificador débil., con otro peso:
Por lo tanto, queda por determinar qué clasificador débil es la mejor opción paray cuál es su pesodebería ser. Definimos el error total.decomo la suma de su pérdida exponencial en cada punto de datos, dada de la siguiente manera:
Alquilerypara, tenemos:
Podemos dividir esta suma entre aquellos puntos de datos que están correctamente clasificados por(entonces) y aquellos que están mal clasificados (por lo tanto):
Dado que la única parte del lado derecho de esta ecuación que depende dees, vemos que elque minimizaes el que está en el conjuntoque minimiza[suponiendo que], es decir, el clasificador débil con el menor error ponderado (con pesos).
Para determinar el peso deseadoque minimizacon elque acabamos de determinar, diferenciamos:
El valor deque minimiza la expresión anterior es:
porqueno depende de
Calculamos que la tasa de error ponderada del clasificador débil es, por lo tanto, se deduce que: que es la función logit negativa multiplicada por 0,5. Debido a la convexidad decomo función de, esta nueva expresión paraproporciona el mínimo global de la función de pérdida.
Nota: Esta derivación solo se aplica cuando, aunque puede ser una buena suposición inicial en otros casos, como cuando el aprendiz débil está sesgado (), tiene múltiples hojas () o es alguna otra función.
Así hemos derivado el algoritmo AdaBoost: En cada iteración, elija el clasificador., lo que minimiza el error ponderado total, utilice esto para calcular la tasa de error, utilice esto para calcular el pesoy, finalmente, utilizar esto para mejorar el clasificador potenciado.a.
Comprensión estadística del boosting
Boosting es una forma de regresión lineal en la que las características de cada muestrason los resultados de algún aprendiz débilaplicado a.
Mientras que la regresión intenta ajustaracon la mayor precisión posible sin pérdida de generalización, utilizando típicamente el método de mínimos cuadrados., mientras que la función de error de AdaBoosttiene en cuenta el hecho de que solo se utiliza el signo del resultado final, por lo tantopuede ser mucho mayor que 1 sin aumentar el error. Sin embargo, el aumento exponencial del error para la muestracomoaumentan, lo que provoca que se asignen ponderaciones excesivas a los valores atípicos.
Una característica de la elección de la función de error exponencial es que el error del modelo aditivo final es el producto del error de cada etapa, es decir,. Por lo tanto, se puede ver que la actualización de peso en el algoritmo AdaBoost es equivalente a recalcular el error endespués de cada etapa.
Existe mucha flexibilidad en la elección de la función de pérdida. Siempre que la función de pérdida sea monótona y continuamente diferenciable , el clasificador siempre se orientará hacia soluciones más puras. [ 7 ] Zhang (2004) proporciona una función de pérdida basada en mínimos cuadrados, una función de pérdida de Huber modificada :
Esta función se comporta mejor que LogitBoost paraCercano a 1 o -1, no penaliza las predicciones "excesivamente confiadas" (), a diferencia de los mínimos cuadrados no modificados, y solo penaliza linealmente las muestras mal clasificadas con una confianza mayor que 1, en lugar de cuadráticamente o exponencialmente, y por lo tanto es menos susceptible a los efectos de los valores atípicos.
Impulso como descenso de gradiente
El boosting puede verse como la minimización de una función de pérdida convexa sobre un conjunto convexo de funciones. [ 8 ] Específicamente, la pérdida que minimiza AdaBoost es la pérdida exponencial. mientras que LogitBoost realiza una regresión logística, minimizando
En la analogía del descenso de gradiente, la salida del clasificador para cada punto de entrenamiento se considera un puntoen un espacio n-dimensional, donde cada eje corresponde a una muestra de entrenamiento, cada aprendiz débilcorresponde a un vector de orientación y longitud fijas, y el objetivo es alcanzar el punto objetivo.(o cualquier región donde el valor de la función de pérdidaes menor que el valor en ese punto), en el menor número de pasos. Por lo tanto, los algoritmos AdaBoost realizan Cauchy (encontrarcon la pendiente más pronunciada, eligepara minimizar el error de prueba) o Newton (elegir algún punto objetivo, encontrarque traemás cercano a ese punto) optimización del error de entrenamiento.
Algoritmo de ejemplo (AdaBoost discreto)
Con:
- Muestras
- Resultados deseados
- pesos inicialesempezar a
- Función de error
- alumnos con dificultades
Paraen:
- Elegir:
- Encuentra alumnos con dificultades de aprendizajeque minimiza, el error de suma ponderada para puntos mal clasificados
- Elegir
- Agregar al conjunto:
- Actualizar pesos:
- paraen
- Renormalizarde tal manera que
- (Nota: Se puede demostrar queen cada paso, lo que puede simplificar el cálculo de los nuevos pesos.)
Variantes
AdaBoost real
El resultado de los árboles de decisión es una estimación de la probabilidad de clase., la probabilidad de quepertenece a la clase positiva. [ 7 ] Friedman, Hastie y Tibshirani derivan un minimizador analítico parapara algún fijo(normalmente se elige utilizando el error de mínimos cuadrados ponderados):
- .
De este modo, en lugar de multiplicar la salida de todo el árbol por un valor fijo, cada nodo hoja se modifica para que genere la mitad de la transformada logit de su valor anterior.
LogitBoost
LogitBoost representa una aplicación de técnicas de regresión logística establecidas al método AdaBoost. En lugar de minimizar el error con respecto a y, se eligen aprendices débiles para minimizar el error (de mínimos cuadrados ponderados) decon respecto a dónde
Eso eses la aproximación de Newton-Raphson del minimizador del error de log-verosimilitud en la etapay el aprendiz débiles elegido como el aprendiz que mejor se aproximamediante mínimos cuadrados ponderados.
A medida que p se acerca a 1 o a 0, el valor dese vuelve muy pequeño y el término z , que es grande para muestras mal clasificadas, puede volverse numéricamente inestable debido a errores de redondeo de precisión de la máquina. Esto se puede superar imponiendo algún límite al valor absoluto de z y al valor mínimo de w.
AdaBoost suave
Mientras que los algoritmos de boosting anteriores eligenGentleBoost, que busca minimizar al máximo el error general de la prueba en cada paso, utiliza un tamaño de paso limitado.se elige para minimizary no se aplica ningún coeficiente adicional. Por lo tanto, en el caso de que un aprendiz débil muestre un rendimiento de clasificación perfecto, GentleBoost eligeexactamente igual a, mientras que los algoritmos de descenso más pronunciado intentan establecerLas observaciones empíricas sobre el buen desempeño de GentleBoost parecen respaldar la observación de Schapire y Singer de que permitir valores excesivamente grandes depuede conducir a un rendimiento de generalización deficiente. [ 9 ] [ 10 ]
Terminación anticipada
Una técnica para acelerar el procesamiento de clasificadores potenciados, la terminación temprana se refiere a probar cada objeto potencial solo con las capas del clasificador final necesarias para cumplir con un umbral de confianza determinado, acelerando el cálculo en los casos en que la clase del objeto se puede determinar fácilmente. Un ejemplo de este esquema es el marco de detección de objetos introducido por Viola y Jones: [ 11 ] en una aplicación con muchas más muestras negativas que positivas, se entrena una cascada de clasificadores potenciados separados, la salida de cada etapa se sesga de manera que una fracción aceptablemente pequeña de muestras positivas se etiquete erróneamente como negativa, y todas las muestras marcadas como negativas después de cada etapa se descartan. Si el 50 % de las muestras negativas se filtran en cada etapa, solo un número muy pequeño de objetos pasaría por todo el clasificador, reduciendo el esfuerzo computacional. Este método se ha generalizado desde entonces, proporcionándose una fórmula para elegir umbrales óptimos en cada etapa para lograr una tasa deseada de falsos positivos y falsos negativos. [ 12 ]
En el campo de la estadística, donde AdaBoost se aplica más comúnmente a problemas de dimensionalidad moderada, la parada temprana se utiliza como estrategia para reducir el sobreajuste . [ 13 ] Se separa un conjunto de muestras de validación del conjunto de entrenamiento, se compara el rendimiento del clasificador en las muestras utilizadas para el entrenamiento con el rendimiento en las muestras de validación, y se termina el entrenamiento si se observa que el rendimiento en la muestra de validación disminuye incluso cuando el rendimiento en el conjunto de entrenamiento continúa mejorando.
Algoritmos totalmente correctivos
Para las versiones de descenso más pronunciado de AdaBoost, dondeSe elige en cada capa t para minimizar el error de prueba, se dice que la siguiente capa agregada es máximamente independiente de la capa t : [ 14 ] es improbable elegir un aprendiz débil t+1 que sea similar al aprendiz t . Sin embargo, sigue existiendo la posibilidad de que t+1 produzca información similar a alguna otra capa anterior. Los algoritmos totalmente correctivos, como LPBoost , optimizan el valor de cada coeficiente después de cada paso, de modo que las nuevas capas agregadas sean siempre máximamente independientes de cada capa anterior. Esto se puede lograr mediante backfitting, programación lineal u otro método.
Poda
La poda es el proceso de eliminar clasificadores débiles con bajo rendimiento para mejorar el costo de memoria y tiempo de ejecución del clasificador potenciado. Los métodos más simples, que pueden ser particularmente efectivos en conjunto con el entrenamiento totalmente correctivo, son el recorte de peso o margen: cuando el coeficiente, o la contribución al error total de prueba, de algún clasificador débil cae por debajo de un cierto umbral, ese clasificador se elimina. Margineantu y Dietterich [ 15 ] sugirieron un criterio alternativo para el recorte: los clasificadores débiles deben seleccionarse de manera que se maximice la diversidad del conjunto. Si dos clasificadores débiles producen salidas muy similares, la eficiencia puede mejorarse eliminando uno de ellos y aumentando el coeficiente del clasificador débil restante. [ 16 ]
Véase también
Referencias
- ↑ Freund, Yoav; Schapire, Robert E. (1995), Una generalización [ sic ] de la teoría de decisiones del aprendizaje en línea y una aplicación al boosting , Lecture Notes in Computer Science, Berlín, Heidelberg: Springer Berlin Heidelberg, pp. 23–37 , doi : 10.1007/3-540-59119-2_166 , ISBN 978-3-540-59119-1, consultado el 24 de junio de 2022
- ↑ Hastie, Trevor; Rosset, Saharon; Zhu, Ji; Zou, Hui (2009). "Multi-class AdaBoost" . Statistics and Its Interface . 2 (3): 349– 360. doi : 10.4310/sii.2009.v2.n3.a8 . ISSN 1938-7989 .
- ↑ Wyner, Abraham J.; Olson, Matthew; Bleich, Justin; Mease, David (2017). "Explicando el éxito de AdaBoost y Random Forests como clasificadores interpoladores" . Journal of Machine Learning Research . 18 (48): 1– 33. Recuperado el 17 de marzo de 2022 .
- ^ Kégl, Balázs (20 de diciembre de 2013). "El regreso de AdaBoost.MH: árboles Hamming multiclase". arXiv : 1312.6086 [ cs.LG ].
- ↑ Joglekar, Sachin (6 de marzo de 2016). "adaboost – Blog de Sachin Joglekar" . codesachin.wordpress.com . Consultado el 3 de agosto de 2016 .
- ↑ Rojas, Raúl (2009). "AdaBoost y el super bowl de los clasificadores: una introducción tutorial al boosting adaptativo" (Informe técnico) . Universidad Libre de Berlín.
- 1 2 Friedman, Jerome; Hastie, Trevor; Tibshirani, Robert (1998). "Regresión logística aditiva: una visión estadística del boosting". Annals of Statistics . 28 : 2000. CiteSeerX 10.1.1.51.9525 .
- ↑ Zhang, T. (2004). "Comportamiento estadístico y consistencia de los métodos de clasificación basados en la minimización del riesgo convexo" . Annals of Statistics . 32 (1): 56– 85. doi : 10.1214/aos/1079120130 . JSTOR 3448494 .
- ↑ Schapire, Robert; Singer, Yoram (1999). "Algoritmos de boosting mejorados utilizando predicciones con índice de confianza": 80– 91. CiteSeerX 10.1.1.33.4002 .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Freund; Schapire (1999). "Una breve introducción al boosting" (PDF) :
- ↑ Viola, Paul; Jones, Robert (2001). "Detección rápida de objetos mediante una cascada potenciada de características simples". CiteSeerX 10.1.1.10.6807 .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ McCane, Brendan; Novins, Kevin; Albert, Michael (2005). "Optimización de clasificadores en cascada".
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Trevor Hastie; Robert Tibshirani; Jerome Friedman (2009). Los elementos del aprendizaje estadístico: minería de datos, inferencia y predicción (2.ª ed.). Nueva York: Springer. ISBN 978-0-387-84858-7Archivado del original el 13 de marzo de 2015. Consultado el 13 de marzo de 2014 .
- ↑ Šochman, Jan; Matas, Jiří (2004). Adaboost con actualizaciones totalmente correctivas para la detección rápida de rostros . IEEE Computer Society. ISBN 978-0-7695-2122-0.
- ↑ Margineantu, Dragos; Dietterich, Thomas (1997). "Poda del impulso adaptativo". CiteSeerX 10.1.1.38.7017 .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Tamon, Christino; Xiang, Jie (2000). "Sobre el problema de la poda de impulso".
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda )
Lecturas adicionales
- Freund, Yoav; Schapire, Robert E (1997). "Una generalización de la teoría de la decisión del aprendizaje en línea y una aplicación al boosting". Journal of Computer and System Sciences . 55 : 119–139 . CiteSeerX 10.1.1.32.8918 . doi : 10.1006/jcss.1997.1504 : Artículo original de Yoav Freund y Robert E. Schapire donde se presenta por primera vez AdaBoost.
- Zhou, Zhihua (2008). "Explicación marginal del algoritmo de boosting" (PDF) . En: Actas de la 21.ª Conferencia Anual sobre Teoría del Aprendizaje (COLT'08) : 479–490 .Explicación marginal del algoritmo de boosting.
- Zhou, Zhihua (2013). "Sobre la duda acerca de la explicación del margen de boosting" (PDF) . Inteligencia Artificial . 203 (2013): 1–18 . arXiv : 1009.3613 . Bibcode : 2010arXiv1009.3613G . doi : 10.1016/j.artint.2013.07.002 . S2CID 2828847 . Sobre la duda acerca de la explicación del margen de impulso.
- Algoritmos de clasificación
- Aprendizaje en conjunto
- algoritmos de aprendizaje automático