support vector machines (svm) eduardo borges gabriel simões

34
Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Upload: internet

Post on 17-Apr-2015

127 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Support Vector Machines (SVM)

Eduardo BorgesGabriel Simões

Page 2: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Roteiro

• Introdução– O que é SVM?– Motivação– Exemplo simples

• SVM– Dados linearmente separáveis– Dados linearmente inseparáveis

• Exemplo

Page 3: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Introdução

• Método supervisionado de aprendizado de máquina

• Classificação em dois grupos– Classificação de múltiplas classes não é uma

limitação, pois pode-se construir uma SVM para cada classe

• Apresenta resultados melhores que muitos métodos populares de classificação

Page 4: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Introdução

• 1968: base matemática– Teoria de Lagrange

• [Vapnik et al, 1992] Primeiro artigo• [Vapnik et al, 1998] Definição detalhada• Última década– Série de artigos com aplicações de SVM– Série de artigos com otimizações de SVM• SMO, por exemplo

Page 5: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Introdução

• SVM são utilizadas em diversas áreas:– Bioinformática– Reconhecimento de assinaturas– Classificação de texto e imagens– Identificação de spams– Reconhecimento de padrões diversos– Identificação de dados replicados

Page 6: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Motivação da SVM

Como separar as duas classes? Como separar as duas classes?

Page 7: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Motivação da SVM

Reta / Plano / Hiperplano ?

Qual o hiperplano ótimo?Menor erro de classificação

Page 8: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Conceitos de SVM

• Qual o hiperplano ótimo?– Menor erro de classificação– Maior margem• Distância entre vetores de suporte e o hiperplano

Page 9: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Conceitos de SVM

• Qual o hiperplano ótimo?– Menor erro de classificação– Maior margem• Distância entre vetores de suporte e o hiperplano

Page 10: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Como funciona para dados linearmente separáveis?

• Dados de treinamento– Tuplas no formato (X1, X2, ..., Xn, Y)

• Atributos Xi • Classe Y (+1, -1)

• Conjunto dito linearmente separável, se existir um hiperplano H (no espaço de entrada) que separe as tuplas de classes diferentes

• Determinar os vetores de suporte• Encontrar o hiperplano ótimo– Com maior margem

Page 11: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

O Hiperplano (H)• Pontos que pertencem a H satisfazem a equação

w x + b = 0⋅• w: vetor normal a H w = w1, w2, ..., wn

• ||w|| é a norma euclidiana de w√ (w w ) = √ (w⋅ 1

2 + ... + wn2 )

• |b|/||w|| é a distância perpendicular de H até a origem• A distância r entre um ponto x e o hiperplano H é

r = g(x) / ||w||r = ( w x + b ) / ||w||⋅

• Orientação de w– Define o lado do plano em que os pontos

pertencem a classe +1• b > 0 (origem no lado positivo)• b < 0 (origem no lado negativo)• b = 0 (origem pertence ao plano)

X1

X2

r|b|/||w|| w x

H

Page 12: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

O Hiperplano (H) – Exemplo• H: w x + b = 0⋅

H: w1x1 + w2x2 + b = 0• Aplicando os pontos (5,0) e (0,5)

5w1 + b = 05w2 + b = 0

• Isolando b5w1 = 5w2 (w1 = w2)

• Escolhendo arbitrariamente w1 = 1b = -5

• Norma de w||w|| = (w1

2+w22) = 2

• Distância da origem|b| / ||w|| = 5/2

• Distância de um ponto x = (5,2) até Hr = ( w x + b ) / ||w||⋅r = (5w1 + 2w2 -5 ) / 2r = (5+2-5) / 2r = 2 X1

X2

5/ 2

wx = (5,2)

H

5

5

2

Page 13: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Hiperplano ótimo• r+: distância entre H e o ponto positivo mais próximo• r-: distância entre H e o ponto negativo mais próximo• margem: r+ + r-

• Objetivo da SVM é encontrar w0 e b0 para a maior margem

• H0: w0 x + b⋅ 0 = 0• H1: w0 x⋅ i + b0 = 1• H2: w0 x⋅ i + b0 = -1

r+ = ( w x + b ) / ||w||⋅r+ = 1 / ||w||

• Para o hiperplano ótimo, r+ = r-

r- = 1 / ||w||Margem = 2 / ||w|| X1

X2

w0

H0

H1

H2 r+

r-

Page 14: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Hiperplano ótimomargem = 2 / ||w||

• É aquele que possui maior margem• É aquele que possui menor ||w||

• Determinação do hiperplano– Problema de otimização restrita– Minimizar uma função de custo (produto interno)

sujeito a restrições– Multiplicadores de Lagrange • Fora do escopo• Exemplo Prático

Page 15: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Exemplo

• -1, 0, -1• 0, -1, -1• 0, 1, -1• 1, 0, -1• 3, -1, +1• 3, 1, +1• 6, -1, +1• 6, 1, +1

Page 16: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Exemplo

• -1, 0, -1• 0, -1, -1• 0, 1, -1• 1, 0, -1• 3, -1, +1• 3, 1, +1• 6, -1, +1• 6, 1, +1

Page 17: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

ExemploH1: w x + b = 1⋅H2: w x + b = -1⋅

w1x1 + w2x2 + b = -11w1 + 0w2 + b = -1 b = -1 - w1

w1x1 + w2x2 + b = 13w1 -1w2 + b = 1 w2 = 3w1 -1 -w1 -1 w2 = 2w1 -23w1 +1w2 + b = 1 3w1 + 2w1 -2 -1 -w1 = 1 w1 = 1 b = -2 w2 = 0

(1, 0) x - 2 = 0⋅X1 = 2

(1, 0) -1(3, -1) +1(3, 1) +1

Page 18: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

ExemploH: (1, 0) x - 2 = 0⋅H: x1 - 2 = 0

Dados de Teste(4, 2), (1.5, 0.5), (0, -2)

4 - 2 = 2 [+1]

1.5 - 2 = -0.5 [-1]

0 - 2 = -2 [-1]

Page 19: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Como funciona para dados linearmente inseparáveis?

• Mapeamento do espaço de características de D dimensões para HD, onde HD > D

• Vetores de entrada são mapeados de forma não linear

• Após transformado, o novo espaço de características deve ser passível de separação linear

Page 20: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Exemplo

X1 Class

0 +1

1 -1

2 -1

3 +1

Como separar as duas classes com apenas um ponto?

0 1 2 3 4

Class +1

Class -1

Page 21: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Exemplo

X1 Class

0 +1

1 -1

2 -1

3 +1

SVM usa uma função não linear sobre os atributos do espaço de características inicial

Φ(X1) = (X1, X12)

Esta função torna o problema bidimensional

0 1 2 3 4

Class +1

Class -1

Page 22: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

0

2

4

6

8

10

0 1 2 3 4

Class +1

Class -1

Exemplo

X1 X12 Class

0 0 +1

1 1 -1

2 4 -1

3 9 +1

SVM usa uma função não linear sobre os atributos do espaço de características inicial

Φ(X1) = (X1, X12)

Esta função torna o problema bidimensional e os dados linearmente separáveis

Page 23: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Exemplo

• w ⋅ x + b = +1w1x1 + w2x2 + b = +10w1 + 0w2 + b = +1 b = 13w1 + 9w2 + b = +1

• w ⋅ x + b = -1w1x1 + w2x2 + b = -1 substituindo b e após w1

1w1 + 1w2 + b = -1 w1 = -2 - w2

2w1 + 4w2 + b = -1 -4 -2w2 + 4w2 + 1 = -1

• w ⋅ x + b = 0 w2 =1 e w1 = -3w1x1 + w2x2 + b = 0 -3x1 + x2 + 1 = 0

X1 X12 Class

0 0 +1

1 1 -1

2 4 -1

3 9 +1

Page 24: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

ExemploH: -3x1 + x2 + 1 = 0Dados de Teste (1.5), (-1), (4)

(1.5) mapear para (1.5, 2.25)-3 . 1.5 + 2.25 + 1 = - 1.15 [-1]

(-1) mapear para (-1,1)-3 . -1 + 1 + 1 = 5 [+1]

(4) mapear para (4,16)-3 . 4 + 16 + 1 = 5 [+1]

0

2

4

6

8

10

0 1 2 3 4

Class +1

Class -1

0 1 2 3 4

Class +1

Class -1

-1

Page 25: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Outro Exemplo

X1 X2 Class

1 1 -1

-1 1 -1

1 -1 -1

-1 -1 -1

2 2 +1

-2 2 +1

2 -2 +1

-2 -2 +1

Como separar as duas classes com apenas uma reta?

Page 26: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Outro Exemplo (4-x2+|x1-x2|, 4-x1+|x1-x2|), (x1

2 + x22) > 2

Φ(x1, x2) = (x1, x2)

Esta função mantém o problema bidimensional

Page 27: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Outro Exemplo

x1 x2 Class

1 1 -1

-1 1 -1

1 -1 -1

-1 -1 -1

2 2 +1

6 6 +1

10 6 +1

6 10 +1

Vetores de Suporte

Page 28: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Outro Exemplox1 x2 Class

1 1 -1

2 2 +1

Vetores de SuporteH1: w x + b = 1⋅H2: w x + b = -1⋅

w1x1 + w2x2 + b = -11w1 + 1w2 + b = -1 w1 = -1 -b -w2

w1x1 + w2x2 + b = 12(-1 -b -w2) + 2w2 + b = 1-2 -2b -2w2 +2w2 + b = 1 b = -3

(2-1) x2 = (2-1) x1 Equação da reta 2x2 - x2 = 2x1 - x1

x2 = x1

w1 = w2 = 1

H0: (1,1) x -3 = 0⋅x1 + x2 -3 = 0

Page 29: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Outro Exemplo (4-x2+|x1-x2|, 4-x1+|x1-x2|), (x1

2 + x22) > 2

Φ(x1, x2) = (x1, x2)

Esta função realmente separa o espaço original de forma linear?Dados de teste (5,5) Φ(5,5) = (-1, -1)Dados de teste (4,4) Φ(4,4) = (0, 0) Erros de classificação!

(5,5) (4,4)

Page 30: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Outro Exemplo

• Função de mapeamento não é ideal

Page 31: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Problema• Como escolher a função Φ(x) tal que o espaço de

características transformado seja eficiente para classificação e não possua custo computacional alto demais?

• Funções de Núcleo (kernel)• Polinomial• Gaussiano• Sigmoid

– Sempre aumentam o número de dimensões• Algumas vezes aumentam bastante!

Page 32: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Outro Exemplo

• Φ[x1,x2] = [x1, x2, ((x12+x2

2)-5)/3 ]

Page 33: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

LibSVM

• http://www.csie.ntu.edu.tw/~cjlin/libsvm/• Disponível em Java e C++• Applet para brincar

Page 34: Support Vector Machines (SVM) Eduardo Borges Gabriel Simões

Bibliografia• Burges, J. A tutorial on support vector machines for pattern recognition. Data

Mining Knowledge Discovering, 1998, pp. 121–167.• Han, J.; Kamber, M. Data Mining: Concepts and Techniques. 2nd edition,

Morgan Kaufmann, 2006.• Hearst, M.; Schölkopf, B.; Dumais, S.; Osuna, E.; Platt, J. Trends and

controversies-support vector machines. IEEE Intelligent Systems 13: 18-28, 1998.

• Joachims, T. Text categorization with Support Vector Machines: Learning with many relevant features. Proceedings of ECML-98, 10th European conference on machine learning, 1998, pp 137–142.

• Kumar, V ; Tan, P.; Steinbach, M. Introduction to Data Mining. Addison-Wesley, 2005.

• Lin, T.; Ngo, T. Clustering High Dimensional Data Using SVM. Rough Sets, Fuzzy Sets, Data Mining and Granular Computing. Lecture Notes in Computer Science, Springer, 2007.

• Mangasarian, O. Data mining via support vector machines. System Modeling and Optimization, Kluwer Academic Publishers, Boston, 2003, 91-112.

• Vapnik, V. Statistical LearningTheory. Wiley, 1998.• Ventura, D. A (not finished) tutorial example for linear and non-linear SVMs.

Available at http://axon.cs.byu.edu/~dan/478/misc/SVM.example.pdf