340 likes | 557 Views
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
E N D
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 • 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) X2 H x w |b|/||w|| 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 |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 X2 H 5 w x = (5,2) 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+ + r- • Objetivo da SVM é encontrar w0 e b0para a maior margem • H0: w0 ⋅ x + b0 = 0 • H1: w0 ⋅ xi + b0 = 1 • H2: w0 ⋅ xi + b0 = -1 r+ = ( w ⋅ x + b ) / ||w|| r+ = 1 / ||w|| • Para o hiperplano ótimo, r+ = r- r- = 1 / ||w|| Margem = 2 / ||w|| X2 H1 H0 H2 r+ r- w0 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
Exemplo 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 (1, 0) -1 (3, -1) +1 (3, 1) +1
Exemplo H: (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
Class +1 Class -1 0 1 2 3 4 Exemplo Como separar as duas classes com apenas um ponto?
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) = (X1, X12) Esta função torna o problema bidimensional
Class +1 Class -1 10 8 6 4 2 0 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) = (X1, X12) Esta função torna o problema bidimensional e os dados linearmente separáveis
Exemplo • w ⋅ x + b = +1 w1x1 + w2x2 + b = +1 0w1 + 0w2 + b = +1 b = 1 3w1 + 9w2 + b = +1 • w ⋅ x + b = -1 w1x1 + 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 = -3 w1x1 + w2x2 + b = 0 -3x1 + x2 + 1 = 0
Class +1 Class -1 Class +1 10 Class -1 8 6 -1 0 1 2 3 4 4 2 0 0 1 2 3 4 Exemplo H: -3x1 + x2 + 1 = 0 Dados 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]
Outro Exemplo Como separar as duas classes com apenas uma reta?
Outro Exemplo (4-x2+|x1-x2|, 4-x1+|x1-x2|), (x12 + x22) > 2 Φ(x1, x2) = (x1, x2) Esta função mantém o problema bidimensional
Outro Exemplo Vetores de Suporte
Outro Exemplo 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 Equação da reta 2x2 - x2 = 2x1 - x1 x2 = x1 w1 = w2 = 1 H0: (1,1) ⋅ x -3 = 0 x1 + x2 -3 = 0 Vetores de Suporte
Outro Exemplo (4-x2+|x1-x2|, 4-x1+|x1-x2|), (x12 + 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+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 onsupportvector machines for patternrecognition. Data MiningKnowledgeDiscovering, 1998, pp. 121–167. • Han, J.; Kamber, M. Data Mining: ConceptsandTechniques. 2nd edition, Morgan Kaufmann, 2006. • Hearst, M.; Schölkopf, B.; Dumais, S.; Osuna, E.; Platt, J. Trendsandcontroversies-supportvector machines. IEEE Intelligent Systems 13: 18-28, 1998. • Joachims, T. TextcategorizationwithSupportVector Machines: Learningwithmanyrelevantfeatures. Proceedingsof ECML-98, 10th Europeanconferenceon machine learning, 1998, pp 137–142. • Kumar, V ; Tan, P.; Steinbach, M. Introduction to Data Mining. Addison-Wesley, 2005. • Lin, T.; Ngo, T. ClusteringHigh Dimensional Data Using SVM. Rough Sets, Fuzzy Sets, Data Miningand Granular Computing. Lecture Notes in ComputerScience, Springer, 2007. • Mangasarian, O. Data mining via supportvector machines. System ModelingandOptimization, KluwerAcademicPublishers, Boston, 2003, 91-112. • Vapnik, V. StatisticalLearningTheory. Wiley, 1998. • Ventura, D. A (notfinished) tutorial example for linear andnon-linearSVMs. Availableat http://axon.cs.byu.edu/~dan/478/misc/SVM.example.pdf