Selección de Clasificadores

Anuncio
Selección de Clasificadores
Introducción al Reconocimiento de Patrones
IIE - FING - UdelaR
2013
Kuncheva, “Combining Pattern Classifiers: Methods and Algorithms”.
Capítulos 6 y 7.
Selección de Clasificadores
Puedo identificar mejor experto para cada x
Ej.: Clasificador lineal y k-nn.
detecto zona de conflicto y allí uso k-nn
en el resto uso clasificador lineal
Debo medir Confianza del clasificador
Confianza del Clasificador
Asumimos que el clasificador puede determinar capacidad para
etiquetar x
Ej.: Clasificador 10-nn donde 9 vecinos indican clase ωj ⇒ alta
confianza.
Si salidas di,j = P̂(ωj |x, Di ) estiman posteriori
⇒
C(Di |x) = max P̂(ωj |x, Di )
es la confianza en Di dado x.
j=1,..,c
Selección en Cascada
Si C(Di |x) alta (umbral λ) elegimos con Di .
Si confianza es baja paso al siguiente.
Al terminar puedo rechazar o escoger el más probable.
Método usado en sistemas de tiempo real
Preguntas a responder
Cómo construir los clasificadores individuales?
Cómo evaluar confianza de cada clasificador dado x?
Cómo se resuelven los empates?
Definir estrategias de selección:
escoger un clasificador?
fusionar salidas de los más confiables?
Selección: porqué funciona?
Sean D1 , · · · , DL clasificadores entrenados
K regiones de selección R1 , · · · , RK en Rn
D∗ = Dr clasificador con mayor precisión
En Rj elijo P(Di(j) |Rj ) ≥ P(Dk |Rj ) ∀k
⇒ P(OK) =
K
X
j=1
P(Rj )P(Di(j) |Rj ) ≥ P(D∗ )
Conclusión de porqué funciona
Esquema de selección óptimo mejor o igual que el mejor
clasificador.
Esto es independiente de cómo se particione el espacio de
características
La única condición:
que Di(j) sea óptimo en cada región Rj
Estimación Dinámica de Confianza
Se puede hacer 2 tipos de estimación
a priori o independiente de decisión
a posteriori o dependiente de decisión
K-vecinos directa: tomo K vecinos de x y se determina exactitud
de cada clasificador.
K-vecinos basado en distancia: clasificadores con salida
continua y Pi (l(zj )|zj ) probabilidad de clase verdadera
P
−1
zj ∈Nx Pi (l(zj )|zj )d(x, zj )
P
C(Di |x) =
−1
zj ∈Nx d(x, zj )
Resolución de Empates
Dado x etiquetar con D1 , · · · , DL .
Si coinciden ⇒ asignar; sino estimar confianza local C(Di |x)
Si hay único ganador o los mejores tienen igual clase ⇒ asignar
Si mejores determinan por mayoría ⇒ asignar
Buscar siguiente de mayor confianza y desempatar
Sino etiquetar por fusión (mayoría) o al azar
Preestimación de regiones de confianza
Estimación dinámica es ineficiente
Opción: regiones de confianza predeterminadas
Se divide a priori Rn en K regiones
Determino mejor Di en cada Rj
Si algún Di no escogido ⇒ lo descarto
Ej.: Clustering and Selection
Agrupamiento y Selección: algoritmo
Diseñar D1 , · · · , DL en Z y elegir K
Usar agrupamiento (K-means) ⇒ K clusters
{C1 , · · · , CK } con centroides {v1 , · · · , vK }
Estimar confianza de D1 , · · · , DL en cada Cj
elegir mejor Di(j)
Devolver vj y Di(j)
j = 1, · · · , K
Operación:
dado x ∈ Rn encontrar centro vj más próximo
clasificar usando Di(j)
Mezcla de Expertos
Usado con redes neuronales
Usa gating network que dado x determina pj (x) ⇒ probabilidad
que Di sea el más confiable.
Selector usa pj (x) para determinar participación de cada Di en
decisión
Se usan 3 métodos de selección
Selección estocástica
Ganador lleva todo
Suma ponderada
Mezcla de Expertos: métodos de selección
Selección estocástica: se elige clasificador por muestreo con
probabilidades p1 (x), · · · , pL (x)
Ganador lleva todo: se elige máximo pi (x)
Suma ponderada:
se usa pi (x) para ponderar las salidas di,j (x)
se escoge la clase ωj que hace máximo
⇒ µj (x) =
L
X
i=1
pi (x)di,j (x)
Mezcla de Expertos: diagrama
Modelo esquemático de mezcla de expertos L
Predictores Bagging
Bagging es acrónimo de Bootstrap AGGregatING
Idea: colección de clasificadores por muestreo con repetición
(bootstrap) del conjunto de entrenamiento. Salidas se combinan
por mayoría.
Idealmente conjuntos de entrenamiento serían generados a
partir de la distribución.
En la práctica un solo conjunto de entrenamiento
(k)
(k)
Z = {z1 , · · · , xN } ⇒ bootstrap ⇒ Z(k) = {z1 , . . . , zN }
Clasificador base inestable: redes neuronales, árboles de
decisión.
Bagging: algoritmo
Entrenamiento:
Inicializo D = ∅ y L (clasificadores)
Para k = 1, · · · , L
Sortear bootstrap Sk de Z
Usando Sk entrenar clasificador Dk
Agregarlo a la colección: D = D ∪ Dk
Clasificación:
Aplicar D1 , · · · , DL a la muestra x
Asignar x a la clase ωj con mayoría de votos
Porqué funciona Bagging?
En Di independientes con misma probabilidad p el voto por
mayoría garantiza mejora.
Bagging intenta generar clasificadores indep. usando bootstrap
en el conjunto de entrenamiento.
En realidad son pseudo-independientes pues se toman
muestras del mismo conjunto Z
Bagging vs muestreo independiente
Evolución de error al aumentar L
Orígenes de Boosting
Inspirado por algoritmo Hedge-β de aprendizaje online
Se asignan pesos a estrategias Si
Se actualiza online: para cada muestra; una salida correcta
aumenta peso, incorrecta lo reduce.
Correspondencia
estrategias → clasificadores
evento → etiquetado de zj ∈ Z
Costo: 1 si etiqueta mal, 0 si etiqueta bien.
Algoritmo Hedge-β: inicialización
Evoluciona distribución de probabilidad en D para minimizar el
costo de predicción
Entrada D = {D1 , . . . , DL } y Z = {z1 , · · · , zN }
Inicialización de parámetros
elegir β ∈ [0, 1]
pesos: wi =
1
L
i = 1, · · · , L
costo acumulado: Λ = 0
costos individuales: λi = 0
i = 1, · · · , L
Algoritmo Hedge-β: aprendizaje
Para cada zj
Pji =
j
wi
PN
k=1
j = 1, . . . , N calcular:
j
wk
i = 1, · · · , L
= 1 en error; lij = 0 en exito
P
actualizar costo conjunto: Λ = Λ + Li=1 lij Pji
Di (zj ) ⇒
lij
actualizar costo individual: λi = λi + lij
j
actualizar pesos: wj+1
= wji β li
i
Devolver: Λ, λi , piN+1 i = 1, · · · , L
Boosting
Generar regla de predicción precisa en base a reglas simples
Construye conjunto incremental de clasificadores
En paso k clasificador por muestreo selectivo de Z
Muestreo uniforme evoluciona a regiones difíciles
D son los eventos y Z estrategias cuya probabilidad actualiza.
Algoritmo ADA Boost: entrenamiento
W1 con wi =
1
N
∀ i = 1, · · · , N; D = ∅ y elegir L.
Para cada k = 1, · · · , L
elegir Sk de Z usando Wk y construir Dk
P
calcular error ponderado ek = Ni=1 wki lki con lki = 1 si Dk falla en zi o
0 sino.
Si 0 < ek < 0.5 ⇒ βk =
ek
1−ek
∈ (0, 1) y actualizar
j
1−lk
wk+1
j
wkj βk
= P
N
i=1
1−lki
wki βk
Sino ignorar Dk y reiniciar wi =
1
N
j = 1, · · · , N
Algoritmo ADA Boost: clasificación
Salida del entrenamiento:
⇒ D = {D1 , · · · , DL } y {β1 , · · · , βL }
Clasificación:
Dado x calcular apoyo a clase ωt
µt (x) =
X
− ln(βk )
Dk (x)=ωt
Elijo clase ωj con máximo apoyo µj (x)
Porqué funciona Boostrap?
En el conjunto de entrenamiento hace tender error a 0 en pocas
iteraciones.
Da menor error pero es sensible a ruido y outliers
Descargar