Bagging

Anuncio
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
Descargar