BrownBoost es un algoritmo de boosting que puede ser robusto ante conjuntos de datos ruidosos . BrownBoost es una versión adaptativa del algoritmo boost by major . Como ocurre con todos los algoritmos de boosting, BrownBoost se utiliza junto con otros métodos de aprendizaje automático . BrownBoost fue introducido por Yoav Freund en 2001. [ 1 ]
Motivación
AdaBoost funciona bien en una variedad de conjuntos de datos; sin embargo, se puede demostrar que no funciona bien en conjuntos de datos ruidosos. [ 2 ] Esto se debe a que AdaBoost se centra en ejemplos que se clasifican erróneamente de forma repetida. En contraste, BrownBoost efectivamente "se da por vencido" con los ejemplos que se clasifican erróneamente de forma repetida. La suposición central de BrownBoost es que los ejemplos ruidosos serán etiquetados erróneamente de forma repetida por las hipótesis débiles y los ejemplos no ruidosos serán etiquetados correctamente con la suficiente frecuencia como para no ser "abandonados". Por lo tanto, solo los ejemplos ruidosos serán "abandonados", mientras que los ejemplos no ruidosos contribuirán al clasificador final. A su vez, si el clasificador final se aprende a partir de los ejemplos no ruidosos, el error de generalización del clasificador final puede ser mucho mejor que si se aprende a partir de ejemplos ruidosos y no ruidosos.
El usuario del algoritmo puede configurar el margen de error tolerable en el conjunto de entrenamiento. Así, si el conjunto de entrenamiento es ruidoso (por ejemplo, si se supone que el 10 % de los ejemplos están mal etiquetados), se puede indicar al algoritmo que acepte un margen de error del 10 %. Dado que los ejemplos ruidosos pueden ignorarse, solo los ejemplos verdaderos contribuirán al proceso de aprendizaje.
Descripción del algoritmo
BrownBoost utiliza una función de pérdida potencial no convexa , por lo que no se ajusta al marco de AdaBoost . La optimización no convexa proporciona un método para evitar el sobreajuste en conjuntos de datos ruidosos. Sin embargo, a diferencia de los algoritmos de boosting que minimizan analíticamente una función de pérdida convexa (por ejemplo, AdaBoost y LogitBoost ), BrownBoost resuelve un sistema de dos ecuaciones con dos incógnitas mediante métodos numéricos estándar.
El único parámetro de BrownBoost (en el algoritmo) es el "tiempo" que tarda en ejecutarse el algoritmo. La teoría de BrownBoost establece que cada hipótesis requiere una cantidad variable de tiempo (en el algoritmo) que está directamente relacionado con el peso dado a la hipótesisEl parámetro de tiempo en BrownBoost es análogo al número de iteraciones.en AdaBoost.
Un valor mayor designifica que BrownBoost tratará los datos como si fueran menos ruidosos y, por lo tanto, renunciará a menos ejemplos. Por el contrario, un valor menor deEsto significa que BrownBoost tratará los datos como más ruidosos y descartará más ejemplos.
Durante cada iteración del algoritmo, se selecciona una hipótesis con alguna ventaja sobre la adivinación aleatoria. El peso de esta hipótesisy el "tiempo transcurrido"Durante la iteración se resuelven simultáneamente en un sistema de dos ecuaciones no lineales (1. hipótesis no correlacionada con respecto a los pesos del ejemplo y 2. mantener el potencial constante) con dos incógnitas (peso de la hipótesisy pasó el tiempo). Esto se puede resolver mediante bisección (como se implementa en el paquete de software JBoost ) o el método de Newton (como se describe en el artículo original de Freund). Una vez resueltas estas ecuaciones, los márgenes de cada ejemplo (en el algoritmo) y la cantidad de tiempo restantese actualizan adecuadamente. Este proceso se repite hasta que no quede tiempo.
El potencial inicial se define como. Dado que una restricción de cada iteración es que el potencial se mantenga constante, el potencial final esPor lo tanto, es probable que el error final sea cercano .Sin embargo, la función potencial final no es la función de error de pérdida 0-1 . Para que el error final sea exactamente La varianza de la función de pérdida debe disminuir linealmente con respecto al tiempo para formar la función de pérdida 0-1 al final de las iteraciones de boosting. Esto aún no se ha tratado en la literatura ni se incluye en la definición del algoritmo que se presenta a continuación.
El clasificador final es una combinación lineal de hipótesis débiles y se evalúa de la misma manera que la mayoría de los demás algoritmos de boosting.
Definición del algoritmo de aprendizaje BrownBoost
Aporte:
- ejemplos de capacitacióndónde
- El parámetro
Inicializar:
- . (El valor dees la cantidad de tiempo restante en el juego)
- . El valor dees el margen en la iteraciónPor ejemplo.
Mientras:
- Establezca los pesos de cada ejemplo:, dóndees el margen del ejemplo
- Encuentra un clasificadorde tal manera que
- Encontrar valoresque satisfacen la ecuación: . (Tenga en cuenta que esto es similar a la condiciónestablecido por Schapire y Singer. [ 3 ] En este contexto, estamos encontrando numéricamente elde tal manera que.) Esta actualización está sujeta a la restricción , dónde es la pérdida potencial para un punto con margen
- Actualizar los márgenes para cada ejemplo:
- Actualizar el tiempo restante:
Producción:
Resultados empíricos
En los resultados experimentales preliminares con conjuntos de datos ruidosos, BrownBoost superó el error de generalización de AdaBoost ; sin embargo, LogitBoost tuvo un rendimiento similar al de BrownBoost. [ 4 ] Una implementación de BrownBoost se puede encontrar en el software de código abierto JBoost .
Véase también
Referencias
- ↑ Yoav Freund. Una versión adaptativa del algoritmo Boost by Majority. Machine Learning, 43(3):293--318, junio de 2001.
- ↑ Dietterich, TG, (2000). Una comparación experimental de tres métodos para construir conjuntos de árboles de decisión: Bagging, boosting y aleatorización. Machine Learning, 40 (2) 139-158.
- ↑ Robert Schapire y Yoram Singer. Mejora del boosting mediante predicciones con índice de confianza. Journal of Machine Learning, vol. 37(3), páginas 297-336. 1999
- ↑ Ross A. McDonald, David J. Hand, Idris A. Eckley. Una comparación empírica de tres algoritmos de boosting en conjuntos de datos reales con ruido de clase artificial. Sistemas de clasificadores múltiples, en la serie Lecture Notes in Computer Science, páginas 35-44, 2003.
Enlaces externos
- JBoost
- Algoritmos de clasificación
- Aprendizaje en conjunto