support vector machines (svm) eduardo borges gabriel simões
TRANSCRIPT
Support Vector Machines (SVM)
Eduardo BorgesGabriel Simões
Roteiro
• Introdução– O que é SVM?– Motivação– Exemplo simples
• SVM– Dados linearmente separáveis– Dados linearmente inseparáveis
• Exemplo
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
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
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
Motivação da SVM
Como separar as duas classes? Como separar as duas classes?
Motivação da SVM
Reta / Plano / Hiperplano ?
Qual o hiperplano ótimo?Menor erro de classificação
Conceitos de SVM
• Qual o hiperplano ótimo?– Menor erro de classificação– Maior margem• Distância entre vetores de suporte e o hiperplano
Conceitos de SVM
• Qual o hiperplano ótimo?– Menor erro de classificação– Maior margem• Distância entre vetores de suporte e o hiperplano
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
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
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
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-
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
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
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
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]
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
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
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
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
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
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
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?
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
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
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
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)
Outro Exemplo
• Função de mapeamento não é ideal
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!
Outro Exemplo
• Φ[x1,x2] = [x1, x2, ((x12+x2
2)-5)/3 ]
LibSVM
• http://www.csie.ntu.edu.tw/~cjlin/libsvm/• Disponível 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. 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