Upload
internet
View
105
Download
0
Tags:
Embed Size (px)
Citation preview
AdaboostA decision theoretic generalization of on-line learning and an application to boostingJournal of Computer and System Sciences, no. 55. 1997Yoav Freund & Robert Schapire
Irineu Júnior Pinheiro dos SantosMirela Ferreira César
Roberto Ribeiro Castro Menezes
2
Sumário
Introdução Ensemble Methods
Boosting Adaboost
Exemplos Conclusões
3
Introdução - Ensemble Methods Reúne a predição de múltiplos
classificadores em um único classificador; Constrói um conjunto de classificadores base
a partir de um conjunto de treinamento; Realiza a classificação a partir de um
sistema de votação, constituído a partir do resultado de classificação de cada algoritmo base.
4
Introdução - Ensemble Methods
D
D1
D2
D3
Dt
h1
h2
h3
ht
Dados originais de treinamento
...
H*
...
Passo 1:Criar múltiplos conjuntos de dados
Passo 2:Construir múltiplos classificadores
Passo 3:Combinar classificadores
5
Ensemble Methods
Como um Ensemble method pode melhorar a performance em comparação a um único classificador?
1 classificador Base → Error rate = 0,35 25 classificadores Base → Error rate = 0,06
6
Ensemble Methods
Considerando 25 classificadores base: iguais Com taxa de erro de cada c. base ε = 0.35 Tx erro ensemble ε = 0.35 Ensemble vai classificar incorretamente se o
base classificar incorretamente
7
Ensemble Methods
Considerando 25 classificadores base: Diferentes Ensemble classifica erroneamente somente se
mais da metade dos classificadores base predizem erroneamente.
Tx Erro ensemble:
25
13
25 06.0125
i
iiensemble i
8
Ensemble Methods
9
Ensemble Methods
Métodos para construção de um classificador Ensemble:
Manipulação de Conjunto de testes Bagging e Boosting
Manipulação das características de entrada Random Forest
Manipulação do rótulo de classes Manipulação do algoritmo de aprendizado
10
Ensemble Methods
Métodos para construção de um classificador Ensemble:
Manipulação de Conjunto de testes Bagging e Boosting
Manipulação das características de entrada Random Forest
Manipulação do rótulo de classes Manipulação do algoritmo de aprendizado
11
Ensemble Methods Algoritmo geral do E.M. Sendo:
D o conjunto de dados de treinamento originais
K o número de classificadores base
T os dados de teste
for i = 1 to k do
crie conjunto de treino Di a partir de D
Construa um classificador hi a partir de D
End for
para cada registro de teste x Є T
C*(x) = Voto(h1(x),h
2(x),...,h
k(x))
fim para
12
Ensemble Methods Considerações:
O tamanho dos dados de treino é igual entre os algoritmos Base, mas a distribuição destes dados não necessariamente;
E.M. funcionam melhor em classificadores base instáveis: Classificadores sensíveis a pequenas perturbações no
conjunto de treinamento: Arvores de decisão; Redes Neurais; Classificadores baseado em regras;
Agregando muitos classificadores podem ajudar a reduzir tais erros.
13
Boosting
Boosting é um procedimento iterativo utilizado adaptativamente para alterar a distribuição de exemplos de treinamento tal que os classificadores base foquem nos exemplos que são difíceis de classificar.
14
Boosting
Atribui peso para cada exemplo de treinamento e pode adaptativamente alterar o peso no final de cada iteração do boosting.
15
Boosting
O peso atribuído para o exemplo de treinamento pode ser usado das seguintes formas:
Pode ser usado como distribuição de amostragem para traçar uma faixa inicial (bootstrap) do conjunto de amostras dos dados originais.
Pode ser usado pelo classificador base para aprender um modelo que atribui alto peso nos exemplos de difícil classificação.
16
Boosting
Inicialmente são distribuídos pesos iguais (1/N) e possuem as mesmas chances de serem escolhidos para o treinamento.
Iterativamente: Gera um classificador usando a atual distribuição dos
exemplos. A distribuição é dada pelos pesos. Os pesos do exemplo de treinamento são atualizados no final
de cada iteração. Exemplos que são classificados incorretamente terão seus
pesos aumentados e os que são classificados corretamente terão seus pesos diminuídos.
17
BoostingD
D1
D2
D3
Dt
h1
h2
h3
ht
Dados originais de treinamento
...
H*
α1
α2 α
3 αt
ω1
ω2
ω3
ω = peso dos exemplos
α = importância do class.
18
Boosting - Exemplo
Boosting (Iteração 1) 7 3 2 8 7 9 4 10 6 3
Boosting (Iteração 2) 5 4 9 4 2 5 1 7 4 2
Boosting (Iteração 3) 4 4 8 10 4 5 4 6 3 4
Supondo que o exemplo 4 seja difícil de classificar.
O peso para este exemplo será aumentado nas futuras iterações e é classificado de forma errada repetidamente.
19
Boosting - Exemplo
Boosting (Iteração 1) 7 3 2 8 7 9 4 10 6 3
Boosting (Iteração 2) 5 4 9 4 2 5 1 7 4 2
Boosting (Iteração 3) 4 4 8 10 4 5 4 6 3 4
Exemplos que não foram escolhidos na iteração anterior tem mais chances de serem selecionados na próxima iteração (1 e 5).
À medida que as iterações avançam, os exemplos mais difíceis de classificar tendem a tornar-se mais prevalentes.
20
Boosting
O ensemble final é obtido através da agregação de classificadores a partir de cada iteração do boosting.
21
Boosting
Várias implementações do algoritmo de boosting tem sido desenvolvidas e diferem entre si em termos de:
Como os pesos do exemplo de treinamento são atualizados no final de cada iteração e;
Como as previsões feitas por cada classificador são combinadas.
22
AdaBoost
AdaBoost (Adaptative Boost) é um algoritmo que utiliza Boosting como método de aprendizagem;
A partir da combinação de vários classificadores com acurácia baixa (hipóteses fracas), uma regra de predição para um classificador com acurácia mais alta (hipótese forte) é produzida;
23
AdaBoost
Seja {(xi,yi) | i = 1,2,...,N} um conjunto de N exemplos de treinamento, onde yi é o rótulo de classe associado com a instância xi;
xi ϵ R
yi ϵ {natural,plastic} ou yi ϵ {+1,-1}
24
AdaBoost – Taxa de Erro
Dado um classificador aplicado ao conjunto de treinamento, é necessário estimar a taxa de erro da classificação realizada;
A a taxa de erro de uma hipótese (classificador) hf (fraco) é dada por:
iifDi yxh ~Pr
25
AdaBoost – Importância de ht
A importância de um classificador fraco ht, onde t é o índice de iteração, é dado pelo seguinte parâmetro:
t
tt
1ln2
1
26
AdaBoost – ε x α
Com isso é possível observar que quanto menor a taxa de erro, maior é a importância atribuída ao classificador.
t
tt
1ln2
1
-5
-4
-3
-2
-1
0
1
2
3
4
5
0 0,2 0,4 0,6 0,8 1
Taxa de Erro
Imp
ort
ânci
a d
o C
lass
ific
ado
r
27
AdaBoost – Cálculo de ε e α
Taxa de erro (ε): 2/11 = 0,18
Importância (α): ½*LN(1-0,18/0,18) 0,75
28
AdaBoost - Pesos
Usa-se o parâmetro αt para atualizar os pesos dos exemplos de treinamento.
Considerando ωi(t) o peso atribuído ao exemplo (xi,yi)
na iteração t, temos:
iit
iit
t
tit
i yxhif
yxhif
Z t
t
exp
exp1
Onde Zt é o fator de normalização usado para assegurar que o somatório dos pesos seja 1.
29
AdaBoost - Pesos
A partir dessa fórmula então é realizado a atualização dos pesos: Registros classificados corretamente: peso diminui; Registros classificados erroneamente: peso aumenta;
iit
iit
t
tit
i yxhif
yxhif
Z t
t
exp
exp1
30
AdaBoost – Pesos em (t=1)
ωi(t=0) = 1/11 = 0,091
Corretos (ht(xi)=yi): ωi
(t=1) = 0,091*exp-0,75
0,091*0,047 = 0,043
Incorretos (ht(xi)≠yi): ωi
(t=1) = 0,091*exp0,75
0,091*2,117 = 0,193
31
AdaBoost - Normalização
Após o cálculo dos pesos, é necessário normalizá-los para que sua soma seja exatamente 1;
(0,043 * 9) + (0,193 * 2) = 0,387 + 0,386 = 0,773
Corretos: 0,043/0,773 = 0,056 Incorretos: 0,193/0,773 = 0,248
32
AdaBoost – Ensemble
O resultado final do algoritmo se baseia na junção dos resultados obtidos pelos classificadores fracos, ponderada pelo peso calculado de cada um deles;
tttf xhsignxH
33
AdaBoost - Algoritmo1. Inicializa o peso para todos os N exemplos
2. Seja t o número de iterações
3. Para i = 1 a t faça:1. Criar conjunto de treinamento Di pela amostragem de D de acordo com o
peso;
2. Treinar um classificador base ht sobre Di;
3. Aplicar ht para todos os exemplos no conjunto de treinamento original D;
4. Calcular a taxa de erro de ht (ε);
5. Se a taxa de erro for maior que 50% então:1. Reinicializa os pesos para todos os N exemplos;
2. Vai para o passo 3.1;
6. Calcular a importância do classificador (α);
7. Calcular o novo peso para cada exemplo (ω);
4. Constrói o classificador final (forte) ponderando as importâncias (α) de cada classificador fraco;
34
AdaBoost – Exemplo 1
Conjunto de Treinamento: 10 pontos (representados
por sinais de mais e menos)
Status original: Peso igual para todas as
amostras de treinamento (1/10)
35
AdaBoost – Exemplo 1
Iteração 1: Três sinais de mais são classificados incorretamente; Os pesos para esses três sinais são aumentados
(boosted);
36
AdaBoost – Exemplo 1
Iteração 2: Três sinais de menos são classificados incorretamente; Os pesos para esses três sinais são aumentados (boosted);
37
AdaBoost – Exemplo 1
Iteração 3: Um sinal de menos e três de mais são classificados
incorretamente; Os pesos para esses três sinais são aumentados (boosted);
38
AdaBoost – Exemplo 1
Classificador final: Integra os três classificadores fracos e obtém um classificar final
forte.
39
AdaBoost – Exemplo 2
Maçãs naturais
x
Maçãs de Plástico
Como classificar?
40
AdaBoost – Exemplo 2
1ª hipótese: Classificador fraco; Corta no eixo X;
41
AdaBoost – Exemplo 2
Recalcula os pesos para os elementos de treinamento.
42
AdaBoost – Exemplo 2
2ª hipótese: Corta no eixo Y.
43
AdaBoost – Exemplo 2
Recalcula os pesos
44
AdaBoost – Exemplo 2
3ª hipótese.
45
AdaBoost – Exemplo 2
Recalcula os pesos;
4ª hipótese
46
AdaBoost – Exemplo 2
Combinação das hipóteses.
47
AdaBoost – Comparação
48
AdaBoost – Conclusões
Vantagens: Algoritmo simples e fácil de implementar; Flexível para se combinar com os vários
algoritmos base de aprendizagem disponíveis; Como o algoritmo se foca nos exemplos difíceis
de classificar, a identificação correta de ruídos é bem tratada;
49
AdaBoost – Conclusões
Desvantagens: Dependente da boa escolha do algoritmos base
de aprendizagem (Weak Learners), pois se esses tiverem má performance no geral, o classificador resultante do AdaBoost tende a ser pior, de forma exponencial;
Quando a quantidade de ruído é alta, a performance do algoritmo tende-se a degradar, devido aos classificadores base terem altas taxa de erro.