Вы находитесь на странице: 1из 34

Support Vector Machines (SVM)

Eduardo Borges Gabriel Simes

Roteiro
Introduo
O que SVM? Motivao Exemplo simples

SVM
Dados linearmente separveis Dados linearmente inseparveis

Exemplo

Introduo
Mtodo supervisionado de aprendizado de mquina Classificao em dois grupos
Classificao de mltiplas classes no uma limitao, pois pode-se construir uma SVM para cada classe

Apresenta resultados melhores que muitos mtodos populares de classificao

Introduo
1968: base matemtica
Teoria de Lagrange

[Vapnik et al, 1992] Primeiro artigo [Vapnik et al, 1998] Definio detalhada ltima dcada
Srie de artigos com aplicaes de SVM Srie de artigos com otimizaes de SVM
SMO, por exemplo

Introduo
SVM so utilizadas em diversas reas:
Bioinformtica Reconhecimento de assinaturas Classificao de texto e imagens Identificao de spams Reconhecimento de padres diversos Identificao de dados replicados

Motivao da SVM
Como separar as duas classes? Como separar as duas classes?

Motivao da SVM
Reta / Plano / Hiperplano ?

Qual o hiperplano timo? Menor erro de classificao

Conceitos de SVM
Qual o hiperplano timo?
Menor erro de classificao Maior margem
Distncia entre vetores de suporte e o hiperplano

Conceitos de SVM
Qual o hiperplano timo?
Menor erro de classificao Maior margem
Distncia entre vetores de suporte e o hiperplano

Como funciona para dados linearmente separveis?


Dados de treinamento
Tuplas no formato (X1, X2, ..., Xn, Y)
Atributos Xi Classe Y (+1, -1)

Conjunto dito linearmente separvel, se existir um hiperplano H (no espao de entrada) que separe as tuplas de classes diferentes Determinar os vetores de suporte Encontrar o hiperplano timo
Com maior margem

O Hiperplano (H)
Pontos que pertencem a H satisfazem a equao
wx+b= 0
w: vetor normal a H w = w1, w2, ..., wn ||w|| a norma euclidiana de w (w w ) = (w12 + ... + wn2 ) |b|/||w|| a distncia perpendicular de H at a origem

A distncia r entre um ponto x e o hiperplano H


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

Orientao de w b > 0 (origem no lado positivo) b < 0 (origem no lado negativo) b = 0 (origem pertence ao plano)

X2
H w |b|/||w|| r x

Define o lado do plano em que os pontos pertencem a classe +1

X1

O Hiperplano (H) Exemplo


H: w x + b = 0 Aplicando os pontos (5,0) e (0,5) Isolando b
5w1 + b = 0 5w2 + b = 0 5w1 = 5w2 (w1 = w2) b = -5 H: w1x1 + w2x2 + b = 0

Escolhendo arbitrariamente w1 = 1

Norma de w
||w|| = (w12+w22) |b| / ||w|| = 5/2

= 2

X2
5 H

Distncia da origem Distncia de um ponto x = (5,2) at H


r = ( w x + b ) / ||w|| r = (5w1 + 2w2 -5 ) / 2 r = (5+2-5) / 2 r = 2

w 5/ 2 x = (5,2) 2 5 X1

Hiperplano timo
r+: distncia entre H e o ponto positivo mais prximo r-: distncia entre H e o ponto negativo mais prximo margem: r+ + rObjetivo da SVM encontrar w0 e b0 para a maior margem

H0: w0 x + b0 = 0 H1: w0 xi + b0 = 1 H2: w0 xi + b0 = -1


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

X2
H2

H1 H0 r+

r-

w0

Para o hiperplano timo, r+ = rr- = 1 / ||w|| Margem = 2 / ||w||


X1

Hiperplano timo
margem = 2 / ||w||

aquele que possui maior margem aquele que possui menor ||w|| Determinao do hiperplano
Problema de otimizao restrita Minimizar uma funo de custo (produto interno) sujeito a restries Multiplicadores de Lagrange
Fora do escopo Exemplo Prtico

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

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

H1: w x + b = 1 H2: w x + b = -1 w1x1 + w2x2 + b = -1 1w1 + 0w2 + b = -1 b = -1 - w1 w1x1 + w2x2 + b = 1 3w1 -1w2 + b = 1 w2 = 3w1 -1 -w1 -1 w2 = 2w1 -2 3w1 +1w2 + b = 1 3w1 + 2w1 -2 -1 -w1 = 1 w1 = 1 b = -2 w2 = 0 (1, 0) x - 2 = 0 X1 = 2

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

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

Exemplo

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]

Como funciona para dados linearmente inseparveis?


Mapeamento do espao de caractersticas de D dimenses para HD, onde HD > D Vetores de entrada so mapeados de forma no linear Aps transformado, o novo espao de caractersticas deve ser passvel de separao linear

Exemplo
Como separar as duas classes com apenas um ponto?
X1 Class 0 1 2 3 +1 -1 -1 +1
0 1 2 3 4

Class +1 Class -1

Exemplo
SVM usa uma funo no linear sobre os atributos do espao de caractersticas inicial
X1 Class 0 1 2 3 +1 -1 -1 +1
0 1 2 3 4 Class +1 Class -1

(X1) = (X1, X12) Esta funo torna o problema bidimensional

Exemplo
SVM usa uma funo no linear sobre os atributos do espao de caractersticas inicial
Class +1

X1 X1 0 1 2 3 0 1 4 9

Class +1 -1 -1 +1

Class -1

10 8 6 4 2 0
0 1 2 3 4

(X1) = (X1, X12) Esta funo torna o problema bidimensional e os dados linearmente separveis

Exemplo
w x + b = +1
w1x1 + w2x2 + b = +1 0w1 + 0w2 + b = +1 3w1 + 9w2 + b = +1
w1x1 + w2x2 + b = -1 1w1 + 1w2 + b = -1 2w1 + 4w2 + b = -1 w1x1 + w2x2 + b = 0 b=1
X1 X12 Class 0 0 +1

1
2 3

1
4 9

-1
-1 +1

w x + b = -1

wx+b=0

substituindo b e aps w1 w1 = -2 - w2 -4 -2w2 + 4w2 + 1 = -1

w2 =1 e w1 = -3

-3x1 + x2 + 1 = 0

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

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


Class +1

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

Class -1

10 8 6 4 2 0
0 1 2 3 4

Outro Exemplo
Como separar as duas classes com apenas uma reta?
X1 X2 Class 1 1 -1

-1
1 -1 2 -2 2 -2

1
-1 -1 2 2 -2 -2

-1
-1 -1 +1 +1 +1 +1

Outro Exemplo
(x1, x2) =
(4-x2+|x1-x2|, 4-x1+|x1-x2|), (x1, x2) (x12 + x22) > 2

Esta funo mantm o problema bidimensional

Outro Exemplo
Vetores de Suporte
x1 1 x2 1 Class -1

-1
1 -1 2 6 10 6

1
-1 -1 2 6 6 10

-1
-1 -1 +1 +1 +1 +1

H1: w x + b = 1 H2: w x + b = -1 w1x1 + w2x2 + b = -1 1w1 + 1w2 + b = -1 w1 = -1 -b -w2 w1x1 + w2x2 + b = 1 2(-1 -b -w2) + 2w2 + b = 1 -2 -2b -2w2 +2w2 + b = 1 b = -3 (2-1) x2 = (2-1) x1 2x2 - x2 = 2x1 - x1 x2 = x 1 w1 = w2 = 1 H0: (1,1) x -3 = 0 x1 + x2 -3 = 0

Outro Exemplo
Vetores de Suporte
x1
1 2

x2
1 2

Class
-1 +1

Equao da reta

Outro Exemplo
(x1, x2) = (4-x2+|x1-x2|, 4-x1+|x1-x2|), (x12 + x22) > 2

(x1, x2)

Esta funo realmente separa o espao original de forma linear? Dados de teste (5,5) (5,5) = (-1, -1) Dados de teste (4,4) (4,4) = (0, 0) Erros de classificao!

(4,4)

(5,5)

Outro Exemplo
Funo de mapeamento no ideal

Problema
Como escolher a funo (x) tal que o espao de caractersticas transformado seja eficiente para classificao e no possua custo computacional alto demais?

Funes de Ncleo (kernel)


Polinomial Gaussiano Sigmoid

Sempre aumentam o nmero de dimenses


Algumas vezes aumentam bastante!

Outro Exemplo
[x1,x2] = [x1, x2, ((x12+x22)-5)/3 ]

LibSVM
http://www.csie.ntu.edu.tw/~cjlin/libsvm/ Disponvel em Java e C++ Applet para brincar

Bibliografia
Burges, J. A tutorial on support vector machines for pattern recognition. Data Mining Knowledge Discovering, 1998, pp. 121167. Han, J.; Kamber, M. Data Mining: Concepts and Techniques. 2nd edition, Morgan Kaufmann, 2006. Hearst, M.; Schlkopf, 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 137142. 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

Вам также может понравиться