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

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

Transcript of Classificador SVM Support Vector Machine AULA 12 DATA MINING Sandra de Amo.

Page 1: Classificador SVM Support Vector Machine AULA 12 DATA MINING Sandra de Amo.

Classificador SVMSupport Vector Machine

AULA 12

DATA MINING

Sandra de Amo

Page 2: Classificador SVM Support Vector Machine AULA 12 DATA MINING Sandra de Amo.

Idéia Geral Margem para B1

B1

Margem para B2

B2

Page 3: Classificador SVM Support Vector Machine AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

Resposta

VetoresSuporte

Page 30: Classificador SVM Support Vector Machine AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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 AULA 12 DATA MINING Sandra de Amo.

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