classificador svm support vector machine

33
Classificador SVM Support Vector Machine AULA 12 DATA MINING Sandra de Amo

Upload: haile

Post on 03-Feb-2016

59 views

Category:

Documents


1 download

DESCRIPTION

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 ” ? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Classificador SVM Support Vector Machine

Classificador SVMSupport Vector Machine

AULA 12

DATA MINING

Sandra de Amo

Page 2: Classificador SVM Support Vector Machine

Idéia Geral Margem para B1

B1

Margem para B2

B2

Page 3: Classificador SVM Support Vector Machine

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

Page 4: Classificador SVM Support Vector Machine

Casos a tratar Fronteira é Linear (espaço vetorial)

Dados são “separáveis” Dados não são “separáveis” ??

Ruídos ?

B1 ainda é o melhor separador !

Mas B2 é o que seriaproduzido usando uma técnica própria para dados“separáveis”

Enfoque Soft Margin:Produz fronteira que toleraalgumas “exceções” na separação.

Page 5: Classificador SVM Support Vector Machine

E quando a fronteira não é linear ?

Transformação R2 R2 (não- linear)Transforma a fronteira não – linear numa fronteira linear

Page 6: Classificador SVM Support Vector Machine

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

Page 7: Classificador SVM Support Vector Machine

w . x = (||x||.cosθ) ||w|| = c ||w|| supondo ||w|| = 1

w.x – c = 0 Logo b = - c

c

x

w

k

Fronteira superior w.x = c + k w.x + b = k

Fronteira inferior w.x = c - k w.x + b = - k

Cálculo do deslocamento b

Page 8: Classificador SVM Support Vector Machine

Equações simplificadas das fronteiras

B1

b11

b12

d

ww x + b = 0

w x + bw x + b = 1

= -1

d = 2/ ||w||

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

Page 9: Classificador SVM Support Vector Machine

Cálculo da margem d em função do vetor w

B1

b11

b12

x2

x1

wd = projeção do vetor x1 – x2 sobre o vetor w

d

w. (x1-x2) = (||x1 – x2||.cosθ) ||w|| =d ||w||

Lei dos cossenos

w.x1 + b = 1w. x2 + b = -1

w .(x1 – x2) = 2

Logo : d = 2/||w||

Page 10: Classificador SVM Support Vector Machine

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

Page 11: Classificador SVM Support Vector Machine

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

Page 12: Classificador SVM Support Vector Machine

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 ?

1b se1

1b se1)(classe x

xw

xw

Page 13: Classificador SVM Support Vector Machine

Multiplicadores de Lagrange : Técnica para Solução de Problemas de OtimizaçãoCom Restrições de Igualdade

Problema: Encontrar o mínimo da função

satisfazendo as restrições

Método: Achar o minimo do lagrangiano associado

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

0=

Page 14: Classificador SVM Support Vector Machine

Exemplo

Encontre o mínimo da função satisfazendo a restrição

Solução: Solução das equações:

Caso 1:

Caso 2:

Portanto: a função f atinge seu valor mínimo para

Page 15: Classificador SVM Support Vector Machine

Multiplicadores de Lagrange : Técnica para Solução de Problemas de OtimizaçãoCom 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)

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),

≤ 0

Logo: valores de x que minimizam L = valores de x que minimizam f

Page 16: Classificador SVM Support Vector Machine

Dual de Wolfe (Fletcher 1987)Minimizar L(x,λ1,…,λq) =

sujeito às restrições λ1≥ 0 …, λq ≥ 0

com respeito às variáveis x1,…,xq

= 0 para i = 1,…q

Maximizar L(x,λ1,…,λq) =

sujeito às restrições λ1≥ 0 …, λq ≥ 0

com respeito às variáveis λ1,…, λq

∂L

∂xi = 0 para i = 1,…q

Problema dual de Wolfe

∂L

∂λi

Page 17: Classificador SVM Support Vector Machine

Função convexa

Conjunto convexo

PROBLEMAS DE OTIMIZAÇÃO CONVEXOS

Um problema de otimização é convexo se:

A função objetivo é convexa As restrições determinam um conjunto convexo

Conjunto não-convexo

Page 18: Classificador SVM Support Vector Machine

As restrições de Karush-Kuhn-Tucker(Fletcher 1987)

Maximizar L(x,λ1,…,λq) =

sujeito às restrições λ1≥ 0 …, λq ≥ 0

com respeito às variáveis λ1,…, λq

∂L

∂xi = 0 para i = 1,…q

Se o problema de otimização é convexo então as seguintes condições sãonecessárias e suficientes para x1,…,xq, λ1, …, λq serem soluções do problema DW

Problema Dual de Wolfe (DW)

Restrições de Karush-Kuhn-Tucker (KTT)

Page 19: Classificador SVM Support Vector Machine

ExemploEncontre o mínimo da função sujeito às restrições

Solução: Maximizar o Lagrangiano dual de Wolfe com respeito a λ1, λ2

f(x,y) = (x – 1) + (y – 3) 2 2

Lagrangiano: L(x,y,λ1,λ2) = (x-1) + (y-3) + λ1(x+y-2) + λ2(x-y)22

sujeito às restrições KTT:

Estudar todos os possíveiscasos para estas equações

Page 20: Classificador SVM Support Vector Machine

Caso 1: λ1 = 0 e λ2 = 0

x = 1 e y =3

x-1= 0 e y-3 = 0

Viola a restrição x + y ≤ 2

Caso 2: λ1 = 0 e λ2 > 0

Solução: x = 1, y = 3, λ2 = -2

x – y = 0 , 2(x-1) + λ2 = 0, 2(y-3) - λ2 =0

Viola as restrições x + y ≤ 2 e λ2 > 0

Caso 3: λ2 = 0 e λ1 > 0

Solução: x = 0, y = 2, λ1 = 2

x + y – 2 = 0 , 2(x-1) + λ1 = 0, 2(y - 3) + λ1 =0

Solução possível !

Caso 4: λ1 > 0 e λ2 > 0

Solução: x = 1, y = 1, λ1 = 2, λ2 = - 2

x + y – 2 = 0 , 2(x-1) + λ1 + λ2 = 0, 2(y - 3) + λ1 – λ2 = 0

Viola a restrição λ2 > 0

Page 21: Classificador SVM Support Vector Machine

Referências Teóricas:

R. Fletcher. Practical Methods of Optimization. John Wiley and Sons, Inc., 2nd Edition, 1987

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)

Page 22: Classificador SVM Support Vector Machine

Voltando ao nosso problema SVMMinimizar 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.

2

Page 23: Classificador SVM Support Vector Machine

Voltando ao nosso problema SVMProblema Equivalente: Dual de Wolfe

MAXIMIZAR LP

Com relação às variáveis λ1, …, λN

Restrições KTT

(1)

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

Page 24: Classificador SVM Support Vector Machine

Outra maneira de solucionar LpExercicio: 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 j

(5) λi [Σ λj yi yj xj . xi) + yi b – 1] = 0 j

Page 25: Classificador SVM Support Vector Machine

Problema de Otimização mais simples : LD

Lagrangiano dual LD é mais simples :

• Um número menor de variáveis λ1,…, λN

• Considera-se as derivadas parciais de LD com relação a λi e iguala-se a zero.

• Considera-se somente as soluções satisfazendo as duas restrições dadas.

Achar o máximo da Função (nas variáveis λ1,…, λN)

Satisfazendo as restrições

λ1 ≥ 0,….λN ≥ 0

Page 26: Classificador SVM Support Vector Machine

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)

Testa o sinal de w.z + bOu equivalentemente o sinal de :

Page 27: Classificador SVM Support Vector Machine

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

Page 28: Classificador SVM Support Vector Machine

Exercício

Vetores de suporte

(Support Vectors)

Pede-se: 1) Encontre o hiperplano separador2) Plote as amostras e o hiperplano separador num plano3) Classifique a nova instância (0.45, 0.29), sem plotá-la no plano, usando o classificador.

Page 29: Classificador SVM Support Vector Machine

Resposta

VetoresSuporte

Page 30: Classificador SVM Support Vector Machine

Vantagens e DesvantagensVantagensFlexibilidade: Técnica aplicada a outras tarefas: detecção de novidades, anomalias, previsãoMuitas aplicações bem sucedidas: bioinformática, reconhecimento de face, visão computacional, reconhecimento de escrita manual,Intuição geométrica, elegância matemáticaPoucos 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 robustosMétodo é simples de usar

DesvantagensInterpretabilidade ?Resultados podem ser afetados pela técnica usada para normalizar os dados

Page 31: Classificador SVM Support Vector Machine

ReferênciasSurveys 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.

LivrosVapnik, 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.netB. Scholkopf, A.J. Smola. Learning with Kernels: Support Vector Machines, Regularization, Optimization and Beyond. MIT Press, 2001

Software SVMLight (livre)

http://svmlight.joachims.org/

Page 32: Classificador SVM Support Vector Machine

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 1) pos = C1 , neg = {C2,...,Ck} ---------> Modelo M12) pos = C2, neg = {C1,C3,...,Ck} ---------> Modelo M23) ...k) Pos = {Ck}, neg = {C1,C2,...,Ck-1} ---------> Modelo Mk

Para classificar uma nova amostra X :1) Classifica X usando cada um dos modelos M1, ... , Mn2) Verifica qual classe teve o maior número de votos entre os

classificadores.3) Esta será a classe escolhida para classificar X

Page 33: Classificador SVM Support Vector Machine

Exemplo

C = {C1, C2, C3, C4} X : nova amostra

C1 C2 C3 C4 X

M1 + - - - +M2 - + - - -M3 - - + - -M4 - - - + -

VOTOS RECEBIDOS POR CADA CLASSE

C1 C2 C3 C4

M1 1 0 0 0M2 1 0 1 1M3 1 1 0 1M4 1 1 1 0

Classe C1 é a mais votada para classificar XLogo X é classificada na classe C1