Bagging & Boosting Tomas Arredondo Vidal 12/7/2014 Contenidos • Modelos de aprendizaje • Bagging • Boosting Modelo de Perdida (Error) • Error cuadrado en el caso de prueba i • L siendo el “learner” o predictor, D siendo el set de datos de entrenamiento: ( L( x i , D )−Truth( x i )) 2 • Error de predicción esperado (el promedio de los errores para todos los datos de entrenamiento): 2 〈 ( Learn( x , D)−Truth( x) ) 〉 D Modelo • Un set de entrenamiento (D) consiste de datos: • D = {(xn, yn), n=1,...N} – en los cuales yn corresponden a los resultados. 2 2 2 〈 ( L( x ,D )−T ( x )) 〉 D =Noise + Bias +Variance Noise 2 =lower bound on performance 2 Bias 2 =( expected error due to model mismatch ) Variance =variation due to train sample and randomization L = predictor Bias2 • Bias Bajo – Regresión linear aplicado a datos lineales – Polinomio de grado 2 aplicado a datos cuadráticos – ANN con un numero apropiado de nodos en la capa escondida entrenados por suficiente numero de iteraciones • Bias Alto – Función constante – Regresión linear aplicada a datos no-lineales – ANN con pocos nodos en la capa escondida aplicado a datos no lineales Variancia • Variancia Baja – Función constante – Modelo independiente de datos de entrenamiento – Modelo depende de medidas estables de datos • promedio • media • Variancia Alta – Polinomio de grado alto – ANN con muchos nodos en la capa escondida Fuentes de Variancia en Aprendizaje Supervisado • • • • Ruido en objetivos o atributos de input Bias (modelo que no calza bien) Muestras de entrenamiento Aleatoriedad en algoritmo de entrenamiento (e.g. inicialización de pesos aleatorio) • Selección aleatoria de sets de entrenamiento : – validación cruzada, sets de entrenamiento y prueba Bias vs Variancia • (Bias2+Variancia) es lo que cuenta para la predicción • Generalmente: – Bias bajo => variancia alto – Variancia baja => bias alto • Elección: – bias2 vs. variancia Elección Bias/Variance Duda, Hart, Stork “Pattern Classification”, 2nd edition, 2001 Elección Bias/Variance Hastie, Tibshirani, Friedman “Elements of Statistical Learning” 2001 Como Reducir Variancia Sin Afectar Bias • Promedio reduce variancia: Var ( X ) Var ( X )= N • Promediar modelos para reducir la variancia de estos • Un problema: – solo un set de entrenamiento – de adonde vienen los múltiples modelos? Contenidos • Modelos de aprendizaje • Bagging • Boosting Bagging: Bootstrap Aggregation • Método introducido por Leo Breiman (1994) • Muestra usando Bootstrap: – Seleccionar muestra de tamaño |D| con reemplazo de D • Bagging consiste de un procedimiento para obtener un predictor L que se pueda usar para predecir usando L(x, D). • Se usa una secuencia de {Lk} cada uno consistiendo de N observaciones independientes de la misma distribución L Train Lk ( BootstrapSample k ( D ) ) • Entrenamiento: • Generar Predictor: L bagging =L k • Clasificación: L bagging =MayoriaVoto Lk ( ) Bagging • Mejor caso: Variance ( L( x , D )) Var ( Bagging ( L ( x , D )))= N • En la practica: – Modelos están correlacionados y la reducción es menor que 1/N – Variancia de modelos entrenados en menos casos de entrenamiento generalmente es mayor – Modelos estables tienen variancia bajas así que bagging puede no ayudar mucho… Ejemplo de Bagging (Opitz, 1999) Original 1 2 3 4 5 6 7 8 Training set 1 2 7 8 3 7 6 3 1 Training set 2 7 8 5 6 4 2 7 1 Training set 3 3 6 2 7 5 6 2 2 Training set 4 4 5 1 4 6 4 3 8 Resultados de Bagging Breiman “Bagging Predictors” Berkeley Statistics Department TR#421, 1994 Cuantas muestras de Bagging? Breiman “Bagging Predictors” Berkeley Statistics Department TR#421, 1994 Resultados de Bagging II Problemas con Bagging? • Cada clasificador base se entrena con menos datos – Solo approximadamente 63.2% de los datos se usan en una muestra de datos • Pero el modelo final ve todos los datos – En promedio un punto va a estar en >50% de las muestras de bootstrap Reducir Bias2 y Reducir Variancia? • Bagging reduce variancia al promediar • Bagging tiene poco efecto en bias • Se puede promediar y reducir bias? Boosting Contenidos • Modelos de aprendizaje • Bagging • Boosting Boosting • Introducida por Freund & Schapire (1980s): – Teoría para “weak learners” – Weak Learner: performance en cualquier set de aprendizaje es un poco mejor que predicción aleatoria (> 50%) – Ejemplos de clasificadores débiles (weak): árboles de decisión, redes neuronales, etc • Fue desarrollada para responder a una pregunta teórica • Probado en los 90’s en learners que no son weak • Funciona igual! Algoritmo Boosting (ADABoost) 1. Ponderar todos los sets de entrenamiento de igual forma 2. Se entrena el modelo usando un set de entrenamiento 3. Calcula error del modelo en el set de entrenamiento 4. Incrementar pesos en casos de entrenamiento que el modelo calcula erróneamente 5. Se entrena un nuevo modelo usando set con pesos modificados 6. Volver al punto 3 (repetir hasta numero de iteraciones) 7. Modelo final: votación ponderada por los pesos de todos los modelos Boosting Dt es la distribución de ponderaciones del set de entrenamiento en iteración t: Dt = {Dt(1),..., Dt(m)} ht son sus predicciones: ht ={y1’, ..., ym’} εt es el error de la hipótesis ht o la suma de los pesos Dt de todas las predicciones erroneas Algunos valores de (εt ,βt ): (.1,.111), (.3,.42), (.5, 1) Predicción: sobre todas las iteraciones t considerando los casos ht(x)=y se suma el error-1 de ht(x) y se elige el ht(x) con mínimo error (max ∑log(1/β )) Calcular hfin(x) • Pesos para instancias correctas se multiplican por βk = εk/(1 – εk) – Causa que las instancias incorrectas incrementen su ponderación • La hipótesis hf final combina los outputs de las T hipótesis previas usando una votación de la mayoría ponderada • Ejemplo: Set entrenamiento = {(1,1),(2,1),(3,4),(3,4),(1,1)}, Iterando, t = 1, 2,… – Inicializar D1 = {.2,.2,.2,.2,.2} – h1 = {(1,2),(2,1),(3,4),(3,4),(1,2)} → (ε1, β1)=(.4,.666} , log2(1/.666)=.59 – (.666x.2=.13) → D2 = {.2,.13,.13,.13,.2}*(1/.79) – h2 = {(1,1),(2,2),(3,4),(3,4),(1,1)} → (ε2, β2)=(.13,.15}, log2(1/.15)=2.72 – (.15x.13=.02), (.15x.2=.03) → D3 = {.03,.13,.02,.02,.03}*(1/.23) Para calcular hfin(x) (considerando t=1 y t=2): – Para todo los t, considerando los casos ht(x)=y se calcula ∑log(1/βt)) – Para h1(x) considerando h1(2) y h1(3) : ∑log(1/β1))=.59+.59+.59=1.77 – Para h2(x) : ∑log(1/β2)) = 2.72+2.72+2.72+2.72=10.88 Re-pesar vs Re-muestrear • Algunos métodos de aprendizaje no pueden usar pesos en los ejemplos • Se puede re-muestrear en vez de ponderar con pesos: – Seleccionar una muestra de bootstrap de los datos usando una probabilidad de seleccionar proporcional a su peso – Re-muestrear es mas fácil para implementar que el uso de pesos Ejemplo de Boosting usando Re-Muestrear (Opitz, 1999) Original 1 2 3 4 5 6 7 8 Training set 1 2 7 8 3 7 6 3 1 Training set 2 1 4 5 4 1 5 6 4 Training set 3 7 1 5 8 1 8 1 4 Training set 4 1 1 6 1 1 3 1 5 Boosting Performance Boosting vs. Bagging • Bagging no funciona muy bien con modelos estables. Boosting puede ayudar. • Boosting puede dañar performance en datasets ruidosos. Bagging no tiene este problema. • En la practica bagging casi siempre mejora el modelo. • Bagging es mas fácil de paralelizar. Referencias [1] Freund, Y., Shapire, R., Experiments with a New Boosting Algorithm, International Conference on Machine Learning, 1996. [2] Breiman, L., Bagging Predictors, Tech. Report No. 421 UC Berkeley, 1994. [3] CS578 Machine Learning Course, Cornell University, 2006. [4] Duda, Hart, Stork “Pattern Classification”, 2nd edition, 2001 [5] Hastie, Tibshirani, Friedman “Elements of Statistical Learning” 2001 [6] Bauer, E., Kohavi, R., An empirical Comparison of Voting Classification Algorithms- Bagging, Boosting and Variants, Machine Learning, 1999