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 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 ) = √ (w12 + ... + 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 X2 – 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) H w |b|/||w|| x r X1 O Hiperplano (H) – Exemplo • H: w ⋅ x + b = 0 H: w1x1 + w2x2 + b = 0 • Aplicando os pontos (5,0) e (0,5) 5w1 + b = 0 5w2 + b = 0 • Isolando b 5w1 = 5w2 (w1 = w2) • Escolhendo arbitrariamente w1 = 1 b = -5 • Norma de w ||w|| = (w12+w22) = 2 • Distância da origem X2 5 H |b| / ||w|| = 5/2 • Distância 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+: 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+ + 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 H1 H2 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|| • 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 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 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 Como separar as duas classes com apenas um ponto? X1 Class 0 +1 1 -1 2 -1 3 +1 Class +1 Class -1 0 1 2 3 4 Exemplo SVM usa uma função não linear sobre os atributos do espaço de características inicial X1 Class 0 +1 1 -1 2 -1 3 +1 Class +1 Class -1 0 1 2 Φ(X1) = (X1, X12) Esta função torna o problema bidimensional 3 4 Exemplo SVM usa uma função não linear sobre os atributos do espaço de características inicial Class +1 X1 X1 2 Class 0 0 +1 1 1 -1 Class -1 10 8 6 2 4 -1 3 9 +1 4 2 0 Φ(X1) = (X1, X12) Esta função torna o problema bidimensional e os dados linearmente separáveis 0 1 2 3 4 Exemplo X1 X12 Class • w ⋅ x + b = +1 0 0 +1 1 1 -1 2 4 -1 3 9 +1 w1x1 + w2x2 + b = +1 0w1 + 0w2 + b = +1 3w1 + 9w2 + b = +1 b=1 w1x1 + w2x2 + b = -1 1w1 + 1w2 + b = -1 2w1 + 4w2 + b = -1 substituindo b e após w1 w1 = -2 - w2 -4 -2w2 + 4w2 + 1 = -1 • w ⋅ x + b = -1 • w⋅x+b=0 w1x1 + w2x2 + b = 0 w2 =1 e w1 = -3 -3x1 + x2 + 1 = 0 Exemplo H: -3x1 + x2 + 1 = 0 Dados de Teste (1.5), (-1), (4) Class +1 Class -1 -1 0 1 2 3 4 3 4 (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] Class -1 10 8 6 (4) mapear para (4,16) -3 . 4 + 16 + 1 = 5 [+1] 4 2 0 0 1 2 Outro Exemplo Como separar as duas classes com apenas uma reta? 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 Outro Exemplo Φ(x1, x2) = (4-x2+|x1-x2|, 4-x1+|x1-x2|), (x12 + x22) > 2 (x1, x2) Esta função mantém o problema bidimensional Outro Exemplo Vetores de Suporte 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 Outro Exemplo H1: w ⋅ x + b = 1 H2: w ⋅ x + b = -1 Vetores de Suporte 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 Equação da reta x1 x2 Class 1 1 -1 2 2 +1 Outro Exemplo Φ(x1, x2) = (4-x2+|x1-x2|, 4-x1+|x1-x2|), (x12 + x22) > 2 (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! (4,4) (5,5) 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+x22)-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