Aprendizado de Máquina

Documentos relacionados
UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Teoria do aprendizado

Classificadores Lineares

SUPPORT VECTOR MACHINE - SVM

Thiago Zavaschi Orientador: Alessandro Koerich Programa de Pós-Graduação em Informática (PPGIa) Pontifícia Universidade

Adriana da Costa F. Chaves. Máquina de Vetor Suporte (SVM) para Classificação Binária 2

INF 1771 Inteligência Artificial

Aprendizagem de Máquina

Uma Introdução a SVM Support Vector Machines. Obs: Baseada nos slides de Martin Law

Aprendizado de Máquinas. Classificadores Lineares

Aprendizado de Máquina. Combinando Classificadores

Redes Neurais (Inteligência Artificial)

SVD. Single Value Decomposition 18/09/2017. Lema. Toda matriz A, com n linhas e d colunas, admite uma fatoração A= UDV T =

4 Construção dos Classificadores

Exame de Aprendizagem Automática

Aprendizado de Máquinas

scikit-learn: Aprendizado de máquina 101 com Python

INF 1771 Inteligência Artificial

Redes Neurais e Sistemas Fuzzy

Máquinas de suporte vetorial e sua aplicação na detecção de spam

Aprendizado de Máquina (Machine Learning)

Agregação de Algoritmos de Aprendizado de Máquina (AM) Professor: Eduardo R. Hruschka Estagiário PAE: Luiz F. S. Coletta

Inteligência Artificial

Reconhecimento de Padrões

Inteligência Artificial. Raimundo Osvaldo Vieira [DComp IFMA Campus Monte Castelo]

Redes Neurais Artificiais

Fundamentos de Inteligência Artificial [5COP099]

Redes Neurais Artificiais - Introdução. Visão Computacional

Aprendizado de Máquina (Machine Learning)

2. Redes Neurais Artificiais

Introdução ao Reconhecimento. Prof. Dr. Geraldo Braz Junior

Rede Perceptron. Capítulo 3

Codificação de Huffman

Aprendizado de Máquina

1 o Teste de Aprendizagem Automática

Introdução à Mineração de Dados com Aplicações em Ciências Espaciais

Aprendizado de Máquina (Machine Learning)

Implementação de Kernel Customizado Aplicado à Análise de Sentimentos em Resenhas de Filmes

Classificação Linear. André Tavares da Silva.

CLASSIFICADORES ELEMENTARES -II

Redes Neurais. Prof. Aurora Pozo. Obs: slides baseados em Prof. Marcílio Souto e Prof. Marley Vellasco

Aprendizado em IA. Prof. Carlos H. C. Ribeiro ITA Divisão de Ciência da Computação

Aprendizado Bayesiano

Aprendizagem de Máquinas

Redes Perceptron e Multilayer Perceptron aplicadas a base de dados IRIS

Tópicos Especiais: Inteligência Artificial REDES NEURAIS

Mineração de Dados - II

Fundamentos de Inteligência Artificial [5COP099]

INF 1771 Inteligência Artificial

SCC0173 Mineração de Dados Biológicos

Profs.: Eduardo Vargas Ferreira Walmes Marques Zeviani

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

MCZA Processamento de Linguagem Natural Classificação de textos

Redes Neurais Artificiais

Modelagem da Rede Neural. Modelagem da Rede Neural. Back Propagation. Modelagem da Rede Neural. Modelagem da Rede Neural. Seleção de Variáveis:

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

SCC Capítulo 4 Perceptron de Camada Única

Thiago Marzagão 1. 1 Thiago Marzagão (Universidade de Brasília) MINERAÇÃO DE DADOS 1 / 21

INF 1771 Inteligência Artificial

Estruturas de Dados 2

Máquina de Vetores Suporte

Classificação: Árvores de Decisão e k-nn. Eduardo Raul Hruschka

Aprendizado de Máquina

Aprendizado de Máquina (Machine Learning)

Transcrição:

Aprendizado de Máquina Um pouco de teoria Formalização (Classificação Binária) Entrada X: Espaço de exemplos D: Distribuição de probabilidade sobre os exemplos de X S X: Conjunto de treino obtido sorteando elementos de X de acordo com a distribuição D c*: função (conceito alvo) que mapeia cada ponto x X em {0,1}. O Valor de c* só é conhecido para os pontos em S c* pode ser pensado como o conjunto de pontos positivos. Formalização (Classificação Binária) Objetivo Obter uma função h: X {0,1} que minimize o true error err D (h)= Pr D [ h(x) <> c*(x) ] Conceitos Importantes Erro de Treinamento Fração dos pontos em S que a função h erra err S (h)= x S : h(x) <> c*(x) / S É fácil ter um erro treinamento igual a 0, basta construir uma função h tal que h(x)=c(x) para todo x S. O desafio é conseguir garantir que o true error seja pequeno 1

Conceitos Importantes Conceitos Importantes Overfitting True error bem maio que erro no conjunto de treino baixo poder de generalização Classe de hipóteses (conceitos ou funções) Para lidar com overfitting e tornar o problema de learning computacionalmente tratável restringimos as possibilidades da função h para uma classe de funções H Exemplos de classes: funções booleanas, separadores linerares Teorema 1. Seja H uma classe de hipóteses. Além disso, seja >0 e >0. Se o conjunto S de tamanho n >( ln H + ln(1/ ) ) / é obtido a partir da distribuição de probabilidade D, então com probabilidade 1-, toda hipótese h em H tal que err D (h) satisfaz err S (h)>0. De forma, equivalente com probabilidade maior ou igual a 1-, toda hipótese h em H com err S (h)=0 tem true erro < Prova. Seja h hipótese tal que err D (h). Então a probabilidade dela ter erro no conjunto S de 0 é (1- ) n. Portanto, a probabilidade de existir uma hipótese h em H com err D (h) e err S (h)=0 é limitada por H (1- ) n (union bound) Substituindo n por seu limite inferior concluímos que H (1- ) n < 2

Em palavras Se o conjunto de treino é grande o suficiente é muito improvável que uma hipótese com erro 0 no treino tenha um resultado ruim (erro > ) no conjunto todo. O resultado apresesentado é conhecido na literatura como um PAC bound Em palavras O grande está relacionado com o número de hipóteses possíveis (ln H) já que se existe um número grande de hipóteses, por um efeito do acaso uma pode acabar indo mal no conjunto todo `(erro > ) e muito bem no treino (erro= 0) O grande está relacionado com o erro (1/ ). Se o erro é pequeno, é razoável ter uma hipótese que erre mas que no conjunto todo mas não erre no treino devido a variância. Teorema 2. Seja H uma classe de hipóteses. Além disso, seja >0 e >0. Se o conjunto S tem tamanho n >[ ln H + ln(1/ ) ] / 2 2 é obtido a partir da distribuição D, então com probabilidade 1-, toda hipótese h em H satisfaz err D (h) - err S (h). Em palavras Generalização do primeiro teorema que leva em conta a diferença entre o erro da hipótese no treino e no conjunto todo 3

Classificador de email Escolhermos um conjunto U com d palavras chaves (cialis, viagra, loan,,) Classifcamos um email como spam se pelo menos uma das palavras do subconjunto W de U está presente. Atributo x(i)=1 se palavra i está presente e x(i)=0, caso contrário. O conjunto W deve ser aprendido H: classe das hipóteses {W W U} H tem 2 d hipóteses Classificador de email Segue do Teorema 1 que se encontrarmos uma hipótese com erro 0 em um conjunto de treino de tamanho maior ou igual a (d ln(2) + ln(1/ )) / garantimos uma acurácia de 1-, com prob (1- ) d=50, =0.05 =0.01 precisamos de conjunto de treino de tamanho 800 d=1000, =0.05 =0.01, precisamos de conjunto de treino de tamanho 14000 Learning Disjunctions H: classe de funções expressas como disjunção de variáveis positivas Exemplos: h1: x(1) OR x(3) OR x(4) h2: x(1) OR x(2) Occam Razor Devemos priorizar explicações (modelos) mais simples Classificador que classifica de forma positiva se uma das variáveis está presente no conjunto 4

Occam Razor Occam Razor Conexão com o PAC bound Se temos duas hipóteses com o mesmo erro no conjunto de treino devemos escolher a mais simples (pertence a uma classe com menos de hipóteses) pois teremos uma garantia teórica melhor Termo ln (H) nos Teoremas 1 e 2 Conexão com o PAC bound O método M1 constroi a melhor árvore de decisão dentre aquelas de altura altura 3 O método M2 constroi a melhor árvore de decisão dentre aquelas de altura 5 Assuma que os dois métodos obtiveram árvores de decisão com erro de treino 0. Qual árvore devemos escolher? Occam Razor Para árvore de M1 conseguimos garantir um bound melhor já que M1 é uma classe com menos hipóteses (árvores) que enquanto M2 Isso não quer dizer que M1 é necessariamente melhor que M2 Regularização Forma de penalizar hipóteses mais complexas Minimizamos o erro de treinamento mais uma penalidade 5

Regularização Corolário. Seja L uma linguagem utilizada para representar hipóteses. Seja S um conjunto de treino obtido a partir da distribuição D. Então com probabilidade 1-, toda hipótese h satisfaz Regularização A regularização abaixo é natural onde size(h) é o número de bits necessários para representar a hipótese na linguagem L Uma sequência de exemplos x 1,,x t chega ao longo do tempo Devemos classificar cada exemplo no momento que ele chega. Pagamos um custo c i pela classificação de x i e descobrimos então a classe real do exemplo Aplicação Classificação de email como importante ou não importante Usuário informa se o algoritmo está correto ou não Não é razoável assumir independência neste caso já que muitos emails são resposta de outros ou contruídos a partir de outros 6

Halving Algorithm 1. O algoritmo começa com todas as hipóteses da classe H 2. Ao chegar um novo exemplo x, o algoritmo classifica x a partir de uma votação com base nas hipóteses consistentes. 3. Se um erro ocorre, o algoritmo descarta as hipóteses que erraram Halving Algorithm Se ocorre um erro o novo conjunto de hipóteses consistentes tem no máximo metade do tamanho do conjunto anterior Portanto, se existe uma hipótese com erro 0, o método erra no máximo log H vezes Algoritmo é muito caro computacionalmente Interessante do ponto de vista teórico. Online Perceptron Algoritmo simples e eficiente para encontrar um separador linear em R d A premissa é a existência de um separador linear w* tal que: (i) para todo exemplo positivo x, w*x>=1 (ii) para todo negativo, w*x -1 Online Perceptron Todo ponto x i está a distância de pelo menos 1/ w* do hiperplano w*x=0. A distância de x i ao hiperplano é a projeção de x i na direção w* que é dada por w*x i / w* >=1 Essa distância 1/ w* é a margem do separador 7

Online Perceptron w=0 Para t=1,2,3, 1. Dado um exemplo x t prediz sgn(x tt w) 2. Se a predição não está correta (a) Se x t é positivo, w w + x t (b) Se x t é negativo, w w - x t Teorema (Perceptron). Para qualquer sequência de exemplos x 1 x 2,,x t se existe um vetor w* tal que: (i) w*x 1 para os exemplos positivos (ii) w*x -1 para os exemplos negativos, então o Perceptron comete no máximo w* 2 R 2 erros onde R=max t x t Prova Investigamos a evolução de w T w* e w 2 Ao cometer um erro, w T w* aumenta de pelo menos uma unidade: Se x t é positivo: (w+x t ) T w* = w T w* +x t T w* w T w*+1 Se x t é negativo (similar) Prova Ao cometer um erro, w 2 aumenta de no máximo R 2 x t é positivo: (w+x t ) 2 - w 2 = 2 x t w + x t 2 R 2 onde a desigualdade segue do fato que x t w 0 se erramos um exemplo positivo x t é negativo (similar) 8

Prova 1. Se comentemos M erros: w 2 aumenta de no máximo MR 2 unidades w T w* aumenta pelo menos M unidades 2. Temos também w T w* / w* 2 w projeção de w na direção w* é menor que w, 3. Juntando (1) e (2) estabelecemos o resultado Consequência Se a margem é grande, w* é pequeno e, portanto, cometemos poucos erros Observação O resultado é invariante a escala porque se muitiplicarmos os exemplo por K podemos multiplicar w* por 1/K Perceptron (dados não linearmente separáveis) Assumimos que existe um separador linear w* O que acontece quando não existe w*? Hinge Loss O hinge-loss de w* em um exemplo positivo x t é max{0,1- w* x t } O hinge-loss de w* em um exemplo negativo x t é max{0,1+ w* x t } Defina L Hinge (w*,s) como a soma dos hingeloss dos exemplos de um conjunto S 9

Teorema. Para qualquer sequência de exemplos x 1 x 2,,x t o Perceptron comete no máximo ( w* 2 R 2 + 2L Hinge ) erros onde R=max t x t Classes não linearmente separáveis E se o hinge loss for muito alto? O que acontece com a fronteira abaixo? Classes não linearmente separáveis Criamos novas features x 1 x 2, x 1 2, x 2 2 associadas ao ponto x=(x 1,x 2 ) Representamos x por x = (x 1, x 2, x 1 2, x 1 x 2, x 2 2 ) Logo, brancos e pretos são separados pelo hiperplano w*x 4, onde w*=(0,0,1,0,1). Classes não linearmente separáveis Classes que não são separáveis em dimensão mais baixa podem separadas linearmente quando introduzimos novas features Quais features devem ser incluidas? Como evitar um custo computacional muito alto? Para mapear um ponto (x 1,, x d ) em todos os produtos com grau no máximo k precisamos de um espaço de dimensão d k 10

Kernel Trick Kernel Trick Suponha a existência de uma função K(x,y): R d x R d ->R e uma função :R d -> R N com K(x,y) = (x) (y) Produto interno (x) (y) pode ser calculado usando a função K. Bem mais eficiente se N>>d K com essas propriedas é chamada de Kernel K(x,y) = (1+xy) 2 corresponde a (x) = (1, 2 x 1, 2 x 2, x 1 2, 2 x 1 x 2, x 22 ) (y) = (1, 2 y 1, 2 y 2, y 1 2, 2 y 1 y 2, y 22 ) Em geral, K(x,y) = (1+xy) k corresponde a (x) (y), onde :R d -> R N, com N d k Complexidade de calcular o produto interno é reduzida de O(d k ) para O(d+log k) Kernel Trick Perceptron -Kernelization Seja w*=(-4,0,0,1,0,1). O hiperplano w* (x)=0 no espaço aumentado, corresponde ao círculo x 1 2 + x 22 =4 no espaço original Brancos e pretos são linearmente separáveis no espaço aumentado Online Perceptron (espaço aumentado) w=0 For t=1,2,3, 1. Given an example x t predict sgn( (x tt )w ) 2. If the prediction is not correct (a) If x t is positive, w w + (x t ) (b) If x t is negative, w w - (x t ) 11

Perceptron -Kernelization Percerpton s Kernelization 1. Devemos computar w=w+ (x i ) e sgn(w (x)) 2. Em vez de calcular explicitamente w+ (x i ) guardamos apenas os exemplos que somamos e os que subtraímos 3. Para calcular sgn(w (x)) utilizamos o kernel K Exemplo Se cometemos os seguintes erros na classificação: x 1 =positivo x 3 =negativo e x 6 =positivo, então w= (x 1 )- (x 3 )+ (x 6 ) Para classificar x 7 temos que computar ( (x 1 )- (x 3 )+ (x 6 )) (x 7 ) =K(x 1,x 7 )-K(x 3,x 7 )+K(x 6,x 7 ) Kernels Kernels Obtendo Kernels Teorema. Se K 1 e K 2 são kernels então 1. c K 1 é um kernel 2. K 1 + K 2 é um kernel 3. K 1 x K 2 é um kernel Aplicação. (1+xy) k é um kernel já que: (1+xy) é um kernel correspondente a (x)= (1,x) e (1+xy) k-1 é um kernel por hipótese de indução Kernel gaussiano K(x,x )=e-c ( x-x x-x ) 12

SVM SVM Which of the linear separators is optimal? d k Examples closest to the hyperplane are support vectors. Margin ρ of the separator is the distance between support vectors. r ρ SVM Dados os exemplos (x 1,,x n ), O SVM encontra o separador w que minimize soma ponderada do inverso da margem com erros de classificação SVM Admite kernelization Boas propriedades teóricas Existem implementações eficientes para encontrar separador (SVMLIB) c é usado para priorizar a importância da margem 13

Boosting Definição. Um -weak learner é um algoritmo A com a seguinte propriedade: dado um conjunto de n exemplos, seus rótulos e um peso w(i) associado a cada exemplo x(i), A soma dos pesos dos exemplos classificados corretamente por A é maior ou igual a +(w(1)+ +w(n))/2 É uma classificador ligeiramente melhor que o aleatório Boosting Boosting Boosting Funcionamento Em cada iteração exemplos com classificação errada tem seus pesos aumentados Teorema. Seja A um -weak learner para o conjunto S. Se t 0 Omega(1/ 2 log n), então MAJ(h 1,,h t0 ) tem erro de treino 0. Prova M: número de exemplos classificados de forma incorreta no final weight(t): soma dos pesos no final da iteração t 14

Boosting Teorema. Seja A um -weak learner para o conjunto S. Se t 0 Omega(1/ 2 log n), então MAJ(h 1,,h t0 ) tem erro de treino 0. Prova Como cada um dos M exemplos é classificado errado por pelo menos t 0 /2 classificadores então weight(t(0)) M t(0)/2 (*) Boosting Teorema. Seja A um -weak learner para o conjunto S. Se t 0 Omega(1/ 2 log n), então MAJ(h 1,,h t0 ) tem erro de treino 0. Prova Como no máximo (1/2- ) dos exemplos são classificados errados weight(t+1) (1+2 )weight(t) Como o peso inicial é n então weight(t 0 ) n (1+2 ) t(0) (**) Boosting Boosting Teorema. Seja A um -weak learner para o conjunto S. Se t 0 Omega(1/ 2 log n), então MAJ(h 1,,h t0 ) tem erro de treino 0. Prova Combinando os bounds (*) e (**) concluímos que M<1 CQD É possível relaxar a definição de weak learner 15

Bibliografia Cap 5. Foundations of Data Science, Avrim Blum, John Hopcroft and Ravindran Kannan http://www.cs.cornell.edu/jeh/book.pdf Combining Expert Advice 16