1 / 34

Support Vector Machines (SVM)

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

lumina
Télécharger la présentation

Support Vector Machines (SVM)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Roteiro • Introdução • O que é SVM? • Motivação • Exemplo simples • SVM • Dados linearmente separáveis • Dados linearmente inseparáveis • Exemplo

  3. 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

  4. 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

  5. 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

  6. Motivação da SVM Como separar as duas classes? Como separar as duas classes?

  7. Motivação da SVM Reta / Plano / Hiperplano ? Qual o hiperplano ótimo? Menor erro de classificação

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

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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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]

  19. 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

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

  21. 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

  22. 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

  23. 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

  24. 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]

  25. Outro Exemplo Como separar as duas classes com apenas uma reta?

  26. 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

  27. Outro Exemplo Vetores de Suporte

  28. 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

  29. 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)

  30. Outro Exemplo • Função de mapeamento não é ideal

  31. 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!

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

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

  34. 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

More Related