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

Post on 27-Jul-2020

1 views 0 download

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

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 (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 3Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (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

Mestrado em Informática Aplicada Aprendizagem de Máquina 5Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 )(

=≥

Mestrado em Informática Aplicada Aprendizagem de Máquina 9Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 12Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 13Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 14Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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

][][

εε ≤

Mestrado em Informática Aplicada Aprendizagem de Máquina 17Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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.

Mestrado em Informática Aplicada Aprendizagem de Máquina 21Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 24Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 25Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 26Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Support Vector Machines (SVM)

Mestrado em Informática Aplicada Aprendizagem de Máquina 27Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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

Mestrado em Informática Aplicada Aprendizagem de Máquina 29Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 31Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 32Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 33Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 34Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 35Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Bias e Variância

Mestrado em Informática Aplicada Aprendizagem de Máquina 36Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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.

Mestrado em Informática Aplicada Aprendizagem de Máquina 37Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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.

Mestrado em Informática Aplicada Aprendizagem de Máquina 41Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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.

Mestrado em Informática Aplicada Aprendizagem de Máquina 45Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

Boosting

Mestrado em Informática Aplicada Aprendizagem de Máquina 47Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Boosting

Mestrado em Informática Aplicada Aprendizagem de Máquina 48Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

Modelos de Markov Escondidos (HMM)

Ver apresentação sobre HMMs.

Mestrado em Informática Aplicada Aprendizagem de Máquina 49Alessandro L. Koerich (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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 (alekoe@ppgia.pucpr.br)

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.