Aprendizagem de Máquina Uma visão geral de diversos...

13
Aprendizagem de Máquina Bagging, Boosting, Support Vector Machines e Combinação de Classificadores Alessandro L. Koerich Mestrado em Informática Aplicada Pontifícia Universidade Católica do Paraná (PUCPR) Mestrado em Informática Aplicada Aprendizagem de Máquina 2 Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Plano de Aula Uma visão geral de diversos tópicos relacionados à Aprendizagem de Máquina: Bagging e Boosting Kernel Methods (SVM) Combinação de Classificadores Hidden Markov Models (HMMs) Mestrado em Informática Aplicada Aprendizagem de Máquina 3 Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Referências Duda R., Hart P., Stork D. Pattern Classification 2ed. Willey Interscience, 2002. Capítulos 5 & 9 Transparências de Andrew W. Moore (CMU) Mestrado em Informática Aplicada Aprendizagem de Máquina 4 Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Support Vector Machines (SVM) Baseia-se no pré–processamento dos dados para representar padrões em uma elevada dimensão, tipicamente, muito mais elevada do que a dimensão original dos atributos. Com um mapeamento não–linear apropriado ϕ(.) para uma dimensão suficientemente alta, dados de duas categorias diferentes podem ser sempre separados por um hiperplano

Transcript of Aprendizagem de Máquina Uma visão geral de diversos...

Page 1: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Aprendizagem de Máquina

Bagging, Boosting, Support Vector Machines e Combinação de

Classificadores

Alessandro L. Koerich

Mestrado em Informática AplicadaPontifícia Universidade Católica do Paraná (PUCPR)

Mestrado em Informática Aplicada Aprendizagem de Máquina 2Alessandro L. Koerich ([email protected])

Plano de Aula

Uma visão geral de diversos tópicos relacionados à Aprendizagem de Máquina:

Bagging e Boosting

Kernel Methods (SVM)

Combinação de Classificadores

Hidden Markov Models (HMMs)

Mestrado em Informática Aplicada Aprendizagem de Máquina 3Alessandro L. Koerich ([email protected])

Referências

Duda R., Hart P., Stork D. PatternClassification 2ed. Willey Interscience, 2002. Capítulos 5 & 9

Transparências de Andrew W. Moore (CMU)

Mestrado em Informática Aplicada Aprendizagem de Máquina 4Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Baseia-se no pré–processamento dos dados para representar padrões em uma elevada dimensão, tipicamente, muito mais elevada do que a dimensão original dos atributos.

Com um mapeamento não–linear apropriado ϕ(.) para uma dimensão suficientemente alta, dados de duas categorias diferentes podem ser sempre separados por um hiperplano

Page 2: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 5Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Assumindo que cada padrão xk foi transformado para yk = ϕ(xk). Para cada um dos n padrões, k=1, 2, …, n, fazemos zk=1 conforme o padrão k está em ω1 e ω2.

Um discriminante linear em um espaço yaumentado é

g(y) = a’ y

Mestrado em Informática Aplicada Aprendizagem de Máquina 6Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Tanto o vetor de pesos quanto o vetor de padrões transformado estão aumentados. Então, um hiperplano de separação assegura:

zkg(yk) ≥ 1 k=1,2, …n.

Margem: qualquer distância positiva a partir do hiperplano de decisão.

Mestrado em Informática Aplicada Aprendizagem de Máquina 7Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

O objetivo no treinamento de um SVM é encontrar o hiperplano de separação com a margem mais elevada.

Espera–se que quanto maior a margem melhor será a generalização do classificador.

Mestrado em Informática Aplicada Aprendizagem de Máquina 8Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

A distância de qualquer hiperplano até um a padrão (transformado) y é |g(y)| / ||a||, e assumindo que uma margem positiva b existe, a equação anterior implica:

A meta é encontrar o vetor peso a que maximiza b.

nkba

ygz kk ,...,1 )(

=≥

Page 3: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 9Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

O vetor solução pode ser escalado arbitrariamente e ainda preservar o hiperplano.

Para assegurar a singularidade impomos a restrição b ||a||= 1, isto é, exigimos uma solução para minimizar também ||a||2

nkba

ygz kk ,...,1 )(

=≥

Mestrado em Informática Aplicada Aprendizagem de Máquina 10Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Os vetores de suporte são os padrões de treinamento (transformados) para os quais zkg(yk) ≥ 1 representa uma desigualdade, isto é, os vetores de suporte são (igualmente), próximos do hiperplano.

Os vetores de suporte são as amostras de treinamento que definem o hiperplano de separação ótimo e são os padrões mais difíceis de classificar.

Informalmente, estes são os padrões mais informativos para a tarefa de classificação.

Mestrado em Informática Aplicada Aprendizagem de Máquina 11Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 12Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Page 4: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 13Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 14Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Um método conceitualmente simples para o treinamento de SVM’s é baseado em uma pequena modificação da regra de treinamento do Perceptron.

Um SVM pode ser treinado escolhendo o padrão atual pior classificado.

Mestrado em Informática Aplicada Aprendizagem de Máquina 15Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Durante a maior parte do período de treinamento, tal padrão é um no lado errado da fronteira de decisão atual, o mais distante da fronteira

No final do período de treinamento, tal padrão será um dos vetores de suporte.

Mestrado em Informática Aplicada Aprendizagem de Máquina 16Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Se N representa o número total de vetores de suporte, então para n padrões de treinamento, o valor esperado da taxa de erro de generalização é limitada de acordo com:

onde a expectativa é sobre todos conjuntos de treinamento de tamanho n escolhidos das distribuições descrevendo as categorias.

n

Nerro sn

n

][][

εε ≤

Page 5: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 17Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Este limite é independente da dimensionalidade do espaço de vetores transformados, determinado por ϕ(.).

Mestrado em Informática Aplicada Aprendizagem de Máquina 18Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Limite Deixe–um–de fora (leave–one–outbound)

Supondo n pontos no conjunto de treinamento, treinamos um SVM com n–1 deles e testamos sobre o único ponto remanescente.

Se o ponto remanescente por acaso é um vetor de suporte para o caso de n amostras completas, então, haverá erro. Caso contrário, não haverá.

Mestrado em Informática Aplicada Aprendizagem de Máquina 19Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Note que se pudermos encontrar uma transformação ϕ (.) que separa bem os dados, então o número esperado de vetores de suporte é pequeno. Então, a taxa de erro esperada será baixa.

Mestrado em Informática Aplicada Aprendizagem de Máquina 20Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Treinamento SVM

Primeiro passo: escolher as funções não lineares que mapeiam a entrada para um espaço dimensional mais elevado.

Esta escolha depende do conhecimento do projetista do domínio do problema. Escolhas possíveis: polinomiais, Gaussianas, ou outras funções base.

Page 6: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 21Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Treinamento SVM

A dimensionalidade do espaço mapeado pode ser arbitrariamente elevada

Começamos remodelando o problema de minimização da magnitude do vetor de pesos restrito pela separação em um problema sem restrições pelo método dos multiplicadores indeterminados de Lagrange.

Mestrado em Informática Aplicada Aprendizagem de Máquina 22Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Treinamento SVM

Construímos a função

E buscamos minimizar L(.) em relação ao vetor de pesos a, e maximizá–lo em relação aos multiplicadores indeterminados αk≥0

∑=

−−=n

kk

tkk yazaaL

1

2]1[

21

),( αα

Mestrado em Informática Aplicada Aprendizagem de Máquina 23Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 24Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Page 7: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 25Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 26Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 27Alessandro L. Koerich ([email protected])

Support Vector Machines (SVM)

Resumo

Um benefício importante do método SVM é que a complexidade do classificador resultante é caracterizada por vários vetores de suporte ao invés da dimensionalidade do espaço transformado.

Conseqüentemente, SVMs tendem a ser menos propensos a problemas de sobreajuste relativamente a outros métodos.

Mestrado em Informática Aplicada Aprendizagem de Máquina 28Alessandro L. Koerich ([email protected])

Bias e Variância

Não há um melhor classificador global

Devemos estar preparados para explorar diversos métodos ou modelos na resolução de um dado problema de classificação.

Como medir a “compatibilidade” ou “alinhamento” de um algoritmo de aprendizagem com o problema de classificação ?

Bias e Variância

Page 8: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 29Alessandro L. Koerich ([email protected])

Bias e Variância

O bias mede a precisão ou qualidade da compatibilidade: alto bias indica uma compatibilidade pobre.

A variância mede a precisão ou singularidade da compatibilidade: alta variância implica uma compatibilidade fraca.

Mestrado em Informática Aplicada Aprendizagem de Máquina 30Alessandro L. Koerich ([email protected])

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 31Alessandro L. Koerich ([email protected])

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 32Alessandro L. Koerich ([email protected])

Bias e Variância

Page 9: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 33Alessandro L. Koerich ([email protected])

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 34Alessandro L. Koerich ([email protected])

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 35Alessandro L. Koerich ([email protected])

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 36Alessandro L. Koerich ([email protected])

Reamostragem para o Projeto de Classificadores

Quando aplicamos algum algoritmo de aprendizagem sobre um novo problema com distribuição conhecida, como podemos determinar o bias e a variância ?

As figuras anteriores sugerem um método usando múltiplas amostras.

Meta: usar reamostragem e técnicas relacionadas para melhorar a classificação.

Page 10: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 37Alessandro L. Koerich ([email protected])

Bagging

Utiliza múltiplas versões de um conjunto de treinamento, cada um criado pegando aleatoriamente n’ < n amostras do conjunto de treinamento D, com reposição.

Cada um destas versões é utilizada para treinar diferentes “classificadores componentes” e a decisão da classificação final é baseada no voto de cada componente.

Mestrado em Informática Aplicada Aprendizagem de Máquina 38Alessandro L. Koerich ([email protected])

Bagging

Tradicionalmente, os classificadores componentes tem todos a mesma forma geral (todos HMMs, ou todos NN, ou todos Árvores de Decisão), somente o valor dos parâmetros finais diferem entre eles.

Mestrado em Informática Aplicada Aprendizagem de Máquina 39Alessandro L. Koerich ([email protected])

Boosting

O objetivo de boosting é melhorar a precisão de qualquer algoritmo de aprendizagem.

Primeiro criamos um classificador com precisão sobre o conjunto de treinamento maior do que a média

Então, adicionamos novos classificadores componentes para formar um conjunto (ensemble) cuja regra de decisão tenha uma alta precisão arbitrária sobre o conjunto de treinamento.

Mestrado em Informática Aplicada Aprendizagem de Máquina 40Alessandro L. Koerich ([email protected])

Boosting

Exemplo: Criação de três classificadores componentes para um problema de duas categorias.

Selecionamos aleatoriamente um conjunto de n1< n padrões a partir do conjunto de treinamento completo D (sem reposição) → D1

Treinamos o classificador C1 com D1.

Page 11: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 41Alessandro L. Koerich ([email protected])

Boosting

Agora buscamos um segundo conjunto de treinamento D2, que seja o “mais informativo”, dado o “classificador componente” C1.

Especificamente, metade dos padrões em D2devem ser classificados corretamente por C1, metade, incorretamente.

D2 é criado da seguinte maneira:

Mestrado em Informática Aplicada Aprendizagem de Máquina 42Alessandro L. Koerich ([email protected])

Boosting

Primeiro (jogamos uma moeda → cara) selecionamos exemplos remanescentes em D e apresentamos um a um a C1 até C1 classificar incorretamente um padrão.

Adicionamos este exemplo classificado incorretamente a D2.

(jogamos a moeda novamente → cara) Continuamos a procurar em D um outro padrão classificado incorretamente por C1 para adicioná–lo em C2.

Continuamos até que nenhum outro padrão puder ser adicionado desta maneira em D2.

Mestrado em Informática Aplicada Aprendizagem de Máquina 43Alessandro L. Koerich ([email protected])

Boosting

Treinamos um segundo “classificador componente” C2 com D2.

Em seguida, procuramos um terceiro conjunto de dados D3 que não é bem classificado pela votação de C1 e C2 classificar incorretamente um padrão.

Mestrado em Informática Aplicada Aprendizagem de Máquina 44Alessandro L. Koerich ([email protected])

Boosting

Se C1 e C2 discordarem, adicionamos este padrão ao terceiro conjunto de treinamento D3, caso contrário, ignoramos o padrão.

D3 contem somente os exemplos não bem representados pela decisão combinada de C1 e C2.

Treinamos o último “classificador componente” C3 com D3.

Page 12: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 45Alessandro L. Koerich ([email protected])

Boosting

Considerando o uso do ensemble dos 3 classificadores componentes treinados para classificar um padrão de teste x.

A classificação é baseada nos votos dos classificadores componentes.

Se C1 e C2 concordam na categoria (classe) de x, usamos este rótulo;

Caso eles discordem, usamos a classe dada por C3.

Ver AdaBoost (adaptive boosting)

Mestrado em Informática Aplicada Aprendizagem de Máquina 46Alessandro L. Koerich ([email protected])

Boosting

Mestrado em Informática Aplicada Aprendizagem de Máquina 47Alessandro L. Koerich ([email protected])

Boosting

Mestrado em Informática Aplicada Aprendizagem de Máquina 48Alessandro L. Koerich ([email protected])

Modelos de Markov Escondidos (HMM)

Ver apresentação sobre HMMs.

Page 13: Aprendizagem de Máquina Uma visão geral de diversos tópicosalekoe/AM/2005/8-SVMBaggingBoostingComb… · Alessandro L. Koerich (alekoe@ppgia.pucpr.br) Mestrado em Informática

Mestrado em Informática Aplicada Aprendizagem de Máquina 49Alessandro L. Koerich ([email protected])

Combinação de Classificadores

Classificadores cuja decisão é baseada nas saídas de classificadores componentes.

Este classificadores são chamados:Mixture–of–Expert Models

Ensemble Classifiers

Modular Classifiers

Pooled Classifiers

Mestrado em Informática Aplicada Aprendizagem de Máquina 50Alessandro L. Koerich ([email protected])

Combinação de Classificadores

Combinação de classificadores é particularmente interessante se cada um de seus classificadores componentes for altamente treinado (i.e. expert) em uma região diferente do espaço de atributos.

Existem diversos métodos para a combinação de classificadores:

Mestrado em Informática Aplicada Aprendizagem de Máquina 51Alessandro L. Koerich ([email protected])

Combinação de Classificadores

Alguns métodos utilizam as saídas de todos os classificadores enquanto outros utilizam somente a saída de alguns classificadores.

Arquiteturas para a combinação: paralela, serial, híbrida.

Alguns métodos geram novos classificadores criando diferentes subconjuntos de dados a partir dos dados originais (bagging, boosting)

Mestrado em Informática Aplicada Aprendizagem de Máquina 52Alessandro L. Koerich ([email protected])

Combinação de Classificadores

A saída dos classificadores pode ser de diferentes tipos: abstratas, ranks e níveis de confiança, probabilidades,etc.

Algumas técnicas de combinação podem ser treinadas para melhorar a performance, enquanto outras são estáticas.

Regras de votação, soma, produto, média, etc.