350 likes | 524 Views
Classificador SVM Support Vector Machine. AULA 12 DATA MINING Sandra de Amo. Idéia Geral. Margem para B2. Margem para B1. B1. B2. Problema a resolver. Qual o melhor “ hiperplano separador ” ?
E N D
Classificador SVMSupport Vector Machine AULA 12 DATA MINING Sandra de Amo
Idéia Geral Margem para B2 Margem para B1 B1 B2
Problema a resolver • Qual o melhor “hiperplano separador” ? • Margem estreita: mínimas perturbações no hiperplano podem produzir um hiperplano não-separador. • Margem grande: a propriedade de “separação” de classes é preservada por pequenas perturbações no hiperplano. • Conclusão:Melhor hiperplano separador é o que apresenta a maior margem. • Encontrar o melhor hiperplano separador = Problema de Otimização com restrições
Casos a tratar • Fronteira é Linear (espaço vetorial) • Dados são “separáveis” • Dados não são “separáveis” ?? B1 ainda é o melhor separador ! Mas B2 é o que seria produzido usando uma técnica própria para dados “separáveis” Enfoque Soft Margin: Produz fronteira que tolera algumas “exceções” na separação. Ruídos ?
E quando a fronteira não é linear ? Transformação R2 R2 (não- linear) Transforma a fronteira não – linear numa fronteira linear
Dados são separáveis • Hiperplano = subespaço vetorial de dimensão n-1 Conjunto dos vetores x w.x + b = 0 b = deslocamento do hiperplano a partir da origem w = vetor ortogonal ao hiperplano
Cálculo do deslocamento b w . x = (||x||.cosθ) ||w|| = c ||w|| supondo ||w|| = 1 w.x – c = 0 Logo b = - c k Fronteira superior w.x = c + kw.x + b = k w c Fronteira inferior w.x = c - k w.x + b = - k x
Equações simplificadas das fronteiras = 1 = 0 w x x w w x w = -1 + b + b + b Obs: Para tornar as equações das fronteiras mais simples multiplica-se w pelo escalar 1/k de modo que o lado direito é 1 ou -1 d d = 2/ ||w||
Cálculo da margem d em função do vetor w w d = projeção do vetor x1 – x2 sobre o vetor w d x1 x2 Lei dos cossenos w. (x1-x2) = (||x1 – x2||.cosθ) ||w|| = d ||w|| w.x1 + b = 1 w. x2 + b = -1 w .(x1 – x2) = 2 Logo : d = 2/||w||
Problema • Dado um conjunto de k amostras (x1, c1),…(xk,ck), onde xi são vetores de n dimensões e ci é a classe (1 ou -1) das amostras • Encontrar o hiperplano determinado pelo vetor w e o escalar b tal que: • Qualquer amostra xi da classe ci = 1 satisfaça • w. xi + b >= 1 • Qualquer amostra xi da classe ci = -1 satisfaça • w.xi + b <= -1 • Margem d = 2/||w|| é maximal • Ou equivalentemente: 2/||w|| é maximal • Ou equivalentemente: f(w) = ||w|| /2 é minimal 2 2
Problema de Otimização com restrições de desigualdade • Dados (x1,c1), …, (xN,cN) determinar w e b de tal modo • F(w) = ||w|| / 2 seja mínimo • as N desigualdades abaixo sejam satisfeitas ci (w. xi + b) >= 1 2
Classificador SVM • Consiste no vetor w e no escalar b que caracterizam o melhor hiperplano separador. • Como usar o classificador SVM para classificar uma amostra x ? + ³ ì w x 1 se b 1 = classe ( ) í w x - + £ - 1 se b 1 î x
Multiplicadores de Lagrange : Técnica para Solução de Problemas de Otimização Com Restrições de Igualdade Problema: Encontrar o mínimo da função satisfazendo as restrições Método: Achar o minimo do lagrangiano associado = 0 1. Defina o Lagrangiano λi = multiplicadores de Lagrange 2. Encontre as derivadas parciais de L com respeito aos xj e λi e iguale a zero. 3. Resolva as d+p equações e encontre os valores de x1,...,xd e λ1,..., λp
Solução das equações: Caso 1: Caso 2: Portanto: a função f atinge seu valor mínimo para Exemplo Encontre o mínimo da função satisfazendo a restrição Solução:
Multiplicadores de Lagrange : Técnica para Solução de Problemas de Otimização Com Restrições de Desigualdade Problema: Encontrar o mínimo da função satisfazendo as restrições Equivalente a minimizar o Lagrangiano associado a f(x) ≤ 0 L(x,λ1,…,λq) = Sujeito às restrições λ1≥ 0 …, λq ≥ 0 Repare que: L(x,λ1,…,λq) ≤ f(x) para quaisquer valores de x = (x1,…,xq), Logo: valores de x que minimizam L = valores de x que minimizam f
Dual de Wolfe (Fletcher 1987) com respeito às variáveis x1,…,xq L(x,λ1,…,λq) = Minimizar sujeito às restrições λ1≥ 0 …, λq ≥ 0 ∂L = 0 para i = 1,…q ∂λi Problema dual de Wolfe com respeito às variáveis λ1,…, λq Maximizar L(x,λ1,…,λq) = sujeito às restrições λ1≥ 0 …, λq ≥ 0 ∂L = 0 para i = 1,…q ∂xi
PROBLEMAS DE OTIMIZAÇÃO CONVEXOS Conjunto convexo Função convexa Conjunto não-convexo Um problema de otimização é convexo se: • A função objetivo é convexa • As restrições determinam um conjunto convexo
As restrições de Karush-Kuhn-Tucker(Fletcher 1987) Problema Dual de Wolfe (DW) com respeito às variáveis λ1,…, λq Maximizar L(x,λ1,…,λq) = sujeito às restrições λ1≥ 0 …, λq ≥ 0 = 0 para i = 1,…q Se o problema de otimização é convexo então as seguintescondiçõessão necessárias e suficientespara x1,…,xq, λ1, …, λq seremsoluções do problema DW ∂L Restrições de Karush-Kuhn-Tucker (KTT) ∂xi
Exemplo sujeito às restrições Encontre o mínimo da função 2 2 f(x,y) = (x – 1) + (y – 3) Solução: Maximizar o Lagrangiano dual de Wolfe com respeito a λ1, λ2 2 2 Lagrangiano: L(x,y,λ1,λ2) = (x-1) + (y-3) + λ1(x+y-2) + λ2(x-y) sujeito às restrições KTT: Estudar todos os possíveis casos para estas equações
Caso 1:λ1 = 0 e λ2 = 0 x-1= 0 e y-3 = 0 x = 1 e y =3 Viola a restrição x + y ≤ 2 Caso 2:λ1 = 0 e λ2 > 0 x – y = 0 , 2(x-1) + λ2 = 0, 2(y-3) - λ2 =0 Caso 3:λ2 = 0 e λ1 > 0 Solução: x = 1, y = 3, λ2 = -2 x + y – 2 = 0 , 2(x-1) + λ1 = 0, 2(y - 3) + λ1 =0 Viola as restrições x + y ≤ 2 e λ2 > 0 Solução: x = 0, y = 2, λ1 = 2 Solução possível ! Caso 4:λ1 > 0 e λ2 > 0 x + y – 2 = 0 , 2(x-1) + λ1 + λ2 = 0, 2(y - 3) + λ1 – λ2 = 0 Solução: x = 1, y = 1, λ1 = 2, λ2 = - 2 Viola a restrição λ2 > 0
Obervação: • Transformar o problema de otimização original no problema de otimização do • Lagrangiano simplica as equações. • Resolver o problema de otimização do Lagrangiano nem sempre • é simples, e envolve a aplicação de métodos numéricos sofisticados. • Diversos softwares estão disponíveis (ex. MATLAB) Referências Teóricas: R. Fletcher. Practical Methods of Optimization. John Wiley and Sons, Inc., 2nd Edition, 1987
Voltando ao nosso problema SVM 2 Minimizar f(w) = ||w|| /2 Restrições: yi (w. xi + b) ≥ 1 , i = 1,…,N N = número de amostras Exercício: Mostrar que o Problema de Otimização SVM é Convexo. Logo podemos utilizar as restrições KTT para auxiliar em sua solução.
Voltando ao nosso problema SVM Restrições KTT (1) Problema Equivalente: Dual de Wolfe MAXIMIZAR LP Com relação às variáveis λ1, …, λN (2) (3) (4) (5) Resolve-se as equações (1), (2), (3), (4) e (5) , começando por (5), considerando-se os 4 casos em que a expressão (5) é nula.
Outra maneira de solucionar Lp Exercicio: 1) Substituir as restrições (1) e (2) na fórmula do Lagrangiano LP (1) (2) Resultado: Lagrangiano “Dual” 2) Mostrar que a nova formulação das restrições KTT (3) e (5) é dada por (3) (Σλj yi yj xj . xi) + yi b ≥ 1 (5) λi [Σλj yi yj xj . xi) + yi b – 1] = 0 j j
Problema de Otimização mais simples : LD Achar o máximo da Função (nas variáveis λ1,…, λN) Satisfazendo as restrições λ1 ≥ 0,….λN ≥ 0 • Lagrangiano dual LD é mais simples : • Um númeromenor de variáveisλ1,…, λN • Considera-se as derivadasparciais de LD com relação a λi e iguala-se a zero. • Considera-se somente as soluçõessatisfazendo as duasrestriçõesdadas.
Método para achar a solução de LP a partir das soluções de LD Para obter o vetor w: Para obter o deslocamento b usa-se a equação (restrição KTT) Para classificar uma nova amostra z = (z1,...,zm) Ou equivalentemente o sinal de : Testa o sinal de w.z + b
Vetores de suporte (Support Vectors) Ou λi = 0 ou λi ≠ 0 amostra xi pertence a umas das margens Tais amostras são chamadas : Vetores de Suporte Hiperplano separador (determinado por w e b) só depende dos vetores suporte
Exercício Vetores de suporte (Support Vectors) • Pede-se: • Encontre o hiperplano separador • Plote as amostras e o hiperplano separador num plano • Classifique a nova instância (0.45, 0.29), sem plotá-la no plano, usando • o classificador.
Resposta Vetores Suporte
Vantagens e Desvantagens Vantagens • Flexibilidade: Técnica aplicada a outras tarefas: detecção de novidades, anomalias, previsão • Muitas aplicações bem sucedidas: bioinformática, reconhecimento de face, visão computacional, reconhecimento de escrita manual, • Intuição geométrica, elegância matemática • Poucos parâmetros, resultado final é estável, reproduzível, não depende de ajuste de parâmetros (como redes neurais, por exemplo). • Existem vários algoritmos de otimização robustos • Método é simples de usar Desvantagens • Interpretabilidade ? • Resultados podem ser afetados pela técnica usada para normalizar os dados
Referências Surveys • Kristin P. Bennett, Colin Campbell : Support Vector Machines: Hype or Hallelujah? SIGKDD Explorations. Volume 2, Issue 2, pp. 1-13. 2000 • Christopher Burges. A Tutorial on Support Vector Machine for Pattern Recognition. Data Mining and Knowledge Discovery 2(2): 121-167, 1998. Livros • Vapnik, V. Statistical Learning Theory. Wiley, 1998. • Vapnik, V. The Nature of Statistical Learning Theory. Springer, New York, 1995. • Cristianini N. and Shawe-Taylor J. An Introduction to Support Vector Machines and other Kernel-based Learning Methods. Cambridge University Press, 2000. www.support-vector.net • B. Scholkopf, A.J. Smola. Learning with Kernels: Support Vector Machines, Regularization, Optimization and Beyond. MIT Press, 2001 Software SVMLight (livre) http://svmlight.joachims.org/
Como utilizar classificadores binários para classificar dados multi-classes ? Método “um contra todos” C = {C1, C2, ..., Ck} : conjunto de k classes • Constrói-se k modelos do classificador binário • pos = C1 , neg = {C2,...,Ck} ---------> Modelo M1 • pos = C2, neg = {C1,C3,...,Ck} ---------> Modelo M2 • ... • Pos = {Ck}, neg = {C1,C2,...,Ck-1} ---------> Modelo Mk • Para classificar uma nova amostra X : • Classifica X usando cada um dos modelos M1, ... , Mn • Verifica qual classe teve o maior número de votos entre os classificadores. • Esta será a classe escolhida para classificar X
Exemplo • C = {C1, C2, C3, C4} • X : nova amostra VOTOS RECEBIDOS POR CADA CLASSE Classe C1 é a mais votada para classificar X Logo X é classificada na classe C1