Inteligência Artificial – ACH2016
Aula21 – Support Vector Machines
Norton Trevisan Roman
(norton@usp.br)
27 de maio de 2019
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 1 / 35
Support Vector Machine – SVM
Margem Máxima
Considere o conjunto
linearmente separável ao lado
Fonte: AIMA. R&N
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
Support Vector Machine – SVM
Margem Máxima
Considere o conjunto
linearmente separável ao lado
Temos várias possibilidades de
separação
Fonte: AIMA. R&N
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
Support Vector Machine – SVM
Margem Máxima
Considere o conjunto
linearmente separável ao lado
Temos várias possibilidades de
separação
Qual seria a melhor?
Fonte: AIMA. R&N
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
Support Vector Machine – SVM
Margem Máxima
Considere o conjunto
linearmente separável ao lado
Temos várias possibilidades de
separação
Qual seria a melhor?
Cada linha que separa os dados
é um hiperplano de separação
Fonte: AIMA. R&N
Será nosso limite de decisão → tudo de um lado pertence a
uma classe, e tudo do outro pertence a outra
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
Support Vector Machine – SVM
Margem Máxima
Gostarı́amos de escolher o
separador que estivesse o mais
longe possı́vel dos exemplos
Acomodando, assim, possı́veis erros
de classificação
Fonte: AIMA. R&N
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 3 / 35
Support Vector Machine – SVM
Margem Máxima
Gostarı́amos de escolher o
separador que estivesse o mais
longe possı́vel dos exemplos
Acomodando, assim, possı́veis erros
de classificação
Esse seria então um separador de
margem máxima
margem
Fonte: AIMA. R&N
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 3 / 35
Support Vector Machine – SVM
Margem Máxima
Gostarı́amos de escolher o
separador que estivesse o mais
longe possı́vel dos exemplos
Acomodando, assim, possı́veis erros
de classificação
Esse seria então um separador de
margem máxima
margem
vetores de
suporte
Fonte: AIMA. R&N
Os pontos mais próximos do separador são seus
vetores de suporte
Queremos então maximizar a distância entre esse hiperplano
e seus vetores de suporte
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 3 / 35
Support Vector Machine – SVM
Classificador SVM
Baseia-se na ideia principal do
separador de margem máxima
Quanto mais longe um ponto está
do limite de decisão, mais confiantes
estamos sobre a predição feita
Fonte: AIMA. R&N
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 4 / 35
Support Vector Machine – SVM
Classificador SVM
Baseia-se na ideia principal do
separador de margem máxima
Quanto mais longe um ponto está
do limite de decisão, mais confiantes
estamos sobre a predição feita
Difere dos demais classificadores
em que retorna +1 ou −1 em
sua versão binária
Fonte: AIMA. R&N
Isso acaba facilitando os cálculos...
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 4 / 35
Support Vector Machine – SVM
SVM linear com margens rı́gidas
Define fronteiras lineares a
partir de dados linearmente
separáveis
Não permite pontos nessa fronteira
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 5 / 35
Support Vector Machine – SVM
SVM linear com margens rı́gidas
Define fronteiras lineares a
partir de dados linearmente
separáveis
Não permite pontos nessa fronteira
Fonte: AIMA. R&N
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 5 / 35
Support Vector Machine – SVM
SVM linear com margens rı́gidas
Define fronteiras lineares a
partir de dados linearmente
separáveis
Não permite pontos nessa fronteira
Um classificador linear é aquele
que separa os dados com um
hiperplano do tipo
f (~
x) = ~
ω · ~
x + b
Fonte: AIMA. R&N
A equação separa o espaço de dados X em duas regiões,
~
ω · ~
x + b ≥ 0 e ~
ω · ~
x + b < 0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 5 / 35
SVM Linear com Margens Rı́gidas
Hiperplano Canônico
Usamos então uma função sinal g(~
x) = sgn(f (~
x))
para classificar um ponto ~
x:
g(~
x) = sgn(f (~
x)) =
(
+1, se ~
ω · ~
x + b ≥ 0
−1, se ~
ω · ~
x + b < 0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 6 / 35
SVM Linear com Margens Rı́gidas
Hiperplano Canônico
Usamos então uma função sinal g(~
x) = sgn(f (~
x))
para classificar um ponto ~
x:
g(~
x) = sgn(f (~
x)) =
(
+1, se ~
ω · ~
x + b ≥ 0
−1, se ~
ω · ~
x + b < 0
Hiperplano canônico:
Aquele em que ~
ω e b são escolhidos de forma que os
exemplos mais próximos do hiperplano satisfaçam a equação
|~
ω · ~
x + b| = 1
Define a margem
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 6 / 35
SVM Linear com Margens Rı́gidas
Hiperplano Canônico
Então, temos 2 hiperplanos nas bordas da margem:
(
~
ω · ~
x + b ≥ +1, se yi = +1
~
ω · ~
x + b ≤ −1, se yi = −1
onde yi ∈ Y , Y = {−1, +1} é o rótulo de xi
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 7 / 35
SVM Linear com Margens Rı́gidas
Hiperplano Canônico
Então, temos 2 hiperplanos nas bordas da margem:
(
~
ω · ~
x + b ≥ +1, se yi = +1
~
ω · ~
x + b ≤ −1, se yi = −1
onde yi ∈ Y , Y = {−1, +1} é o rótulo de xi
E aqui vemos a vantagem de se definir as classes
como Y = {−1, +1}
Podemos resumir a expressão acima em uma única equação:
yi (~
ω · ~
x + b) − 1 ≥ 0, ∀(~
xi , yi ) ∈ T
(onde T é o conjunto de treino)
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 7 / 35
SVM Linear com Margens Rı́gidas
Distância entre os Hiperplanos
Queremos, no entanto,
maximizar a margem
Maximizar a distância d
entre os hiperplanos H1 e
H2
Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 8 / 35
SVM Linear com Margens Rı́gidas
Distância entre os Hiperplanos
Queremos, no entanto,
maximizar a margem
Maximizar a distância d
entre os hiperplanos H1 e
H2
Projetamos então o
vetor ~
x1 − ~
x2 na direção
de ~
ω
Onde ~
x1 ∈ H1 e ~
x2 ∈ H2, Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 8 / 35
SVM Linear com Margens Rı́gidas
Distância entre os Hiperplanos
E
~
d = (~
x1 −~
x2)

~
ω
k~
ωk
·
(~
x1 − ~
x2)
k~
x1 − ~
x2k

Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 9 / 35
SVM Linear com Margens Rı́gidas
Distância entre os Hiperplanos
E
~
d = (~
x1 −~
x2)

~
ω
k~
ωk
·
(~
x1 − ~
x2)
k~
x1 − ~
x2k

Uma vez que
~
ω · ~
x1 + b = +1 e ~
ω · ~
x2 + b = −1
Então
~
ω · (~
x1 − ~
x2) = ~
ω · ~
x1 − ~
ω · ~
x2
Fonte: [3]
= (1 − b) − (−1 − b) = 2
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 9 / 35
SVM Linear com Margens Rı́gidas
Distância entre os Hiperplanos
E ~
d =
2(~
x1 − ~
x2)
k~
ωkk~
x1 − ~
x2k
Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 10 / 35
SVM Linear com Margens Rı́gidas
Distância entre os Hiperplanos
E ~
d =
2(~
x1 − ~
x2)
k~
ωkk~
x1 − ~
x2k
Assim, d = k~
dk =
2
k~
ωk
d0
= 1
k~
ωk
é então a distância
mı́nima entre o hiperplano
separador e os dados de
treinamento
Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 10 / 35
SVM Linear com Margens Rı́gidas
Distância entre os Hiperplanos
E ~
d =
2(~
x1 − ~
x2)
k~
ωkk~
x1 − ~
x2k
Assim, d = k~
dk =
2
k~
ωk
d0
= 1
k~
ωk
é então a distância
mı́nima entre o hiperplano
separador e os dados de
treinamento
Fonte: [3]
Queremos maximizar d0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 10 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Maximizar d0
= 1/k~
ωk
corresponde ao problema de
otimização:
f (~
x) = min
~
ω,b

1
2
k~
ωk2

Restrição: yi (~
ω · ~
xi + b) − 1 ≥ 0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Maximizar d0
= 1/k~
ωk
corresponde ao problema de
otimização:
f (~
x) = min
~
ω,b

1
2
k~
ωk2

Restrição: yi (~
ω · ~
xi + b) − 1 ≥ 0
A restrição garante que
não haja dados de treino
entre as margens de
separação das classes
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Maximizar d0
= 1/k~
ωk
corresponde ao problema de
otimização:
f (~
x) = min
~
ω,b

1
2
k~
ωk2

Restrição: yi (~
ω · ~
xi + b) − 1 ≥ 0
Por que isso?
Porque os mesmos ~
ω e b que resolvem um problema
também resolve o outro
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Maximizar d0
= 1/k~
ωk
corresponde ao problema de
otimização:
f (~
x) = min
~
ω,b

1
2
k~
ωk2

Restrição: yi (~
ω · ~
xi + b) − 1 ≥ 0
Por que isso? Fonte: https://brainsnorts.files.
wordpress.com/2014/05/calvin376_2.jpg
Porque os mesmos ~
ω e b que resolvem um problema
também resolve o outro
E alguém já quebrou a cabeça resolvendo um deles
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
A solução desse problema de otimização passa pela
introdução de uma Lagrangiana
L(~
ω, b, ~
α) =
1
2
k~
ωk2
−
n
X
i=1
αi (yi (~
ω · ~
xi + b) − 1)
Onde αi são os chamados multiplicadores de Lagrange
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 12 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
A solução desse problema de otimização passa pela
introdução de uma Lagrangiana
L(~
ω, b, ~
α) =
1
2
k~
ωk2
−
n
X
i=1
αi (yi (~
ω · ~
xi + b) − 1)
Onde αi são os chamados multiplicadores de Lagrange
L(~
ω, b, ~
α) deve então ser minimizada
Para isso, maximizamos αi e minimizamos ~
ω e b
Para ~
ω e b, fazemos
∂L
∂b
= 0 e
∂L
∂~
ω
= 0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 12 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
O que nos leva ao resultado
n
X
i=1
αi yi = 0 e ~
ω =
n
X
i=1
αi yi~
xi
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 13 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
O que nos leva ao resultado
n
X
i=1
αi yi = 0 e ~
ω =
n
X
i=1
αi yi~
xi
Para αi, substituı́mos esse resultado na Lagrangeana
e maximizamos
Queremos então max
~
α
n
X
i=1
αi −
1
2
n
X
i,j=1
αi αj yi yj (~
xi · ~
xj )
Com as restrições





αi ≥ 0, i = 1, . . . , n
n
X
i=1
αi yi = 0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 13 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Formulação conhe-
cida como forma
dual do problema
O que nos leva ao resultado
n
X
i=1
αi yi = 0 e ~
ω =
n
X
i=1
αi yi~
xi
Para αi, substituı́mos esse resultado na Lagrangeana
e maximizamos
Queremos então max
~
α
n
X
i=1
αi −
1
2
n
X
i,j=1
αi αj yi yj (~
xi · ~
xj )
Com as restrições





αi ≥ 0, i = 1, . . . , n
n
X
i=1
αi yi = 0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 13 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Assim, encontrada a solução ~
α da forma dual,
usamos ~
ω =
n
X
i=1
αiyi~
xi para achar a solução ~
ω
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 14 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Assim, encontrada a solução ~
α da forma dual,
usamos ~
ω =
n
X
i=1
αiyi~
xi para achar a solução ~
ω
E b?
Obtido de α e das condições de Kühn-Tucker (teoria de
otimização com restrições)
Para esse problema, temos as restrições
αi (yi (~
ω · ~
xi + b) − 1) = 0, i = 1, . . . , n
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 14 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Vejamos a restrição αi(yi(~
ω · ~
xi + b) − 1) = 0
Temos que αi 6= 0 apenas para pontos sobre H1 e
H2
Os exemplos mais próximos do hiperplano separador
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Vejamos a restrição αi(yi(~
ω · ~
xi + b) − 1) = 0
Temos que αi 6= 0 apenas para pontos sobre H1 e
H2
Os exemplos mais próximos do hiperplano separador
Para os demais deve ser 0. Por que?
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Vejamos a restrição αi(yi(~
ω · ~
xi + b) − 1) = 0
Temos que αi 6= 0 apenas para pontos sobre H1 e
H2
Os exemplos mais próximos do hiperplano separador
Para os demais deve ser 0. Por que?
Se ~
x /
∈ H1 ou H2, então yi (~
ω · ~
x + b) − 1  0
Não está nem na margem, nem no plano
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Vejamos a restrição αi(yi(~
ω · ~
xi + b) − 1) = 0
Temos que αi 6= 0 apenas para pontos sobre H1 e
H2
Os exemplos mais próximos do hiperplano separador
Para os demais deve ser 0. Por que?
Se ~
x /
∈ H1 ou H2, então yi (~
ω · ~
x + b) − 1  0
Não está nem na margem, nem no plano
A única forma de αi (yi (~
ω · ~
xi + b) − 1) ser 0 é se αi = 0
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Os exemplos em que αi  0 são os vetores de
suporte V para o hiperplano separador
Apenas eles participarão da determinação da equação desse
hiperplano
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 16 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Os exemplos em que αi  0 são os vetores de
suporte V para o hiperplano separador
Apenas eles participarão da determinação da equação desse
hiperplano
Mas e b? Calculado de αi(yi(~
ω · ~
xi + b) − 1) = 0
yi (~
ω · ~
xi + b) − 1 = 0
~
ω · ~
xi + b = 1/yi
b = 1/yi − ~
ω · ~
xi
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 16 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Os exemplos em que αi  0 são os vetores de
suporte V para o hiperplano separador
Apenas eles participarão da determinação da equação desse
hiperplano
Mas e b? Calculado de αi(yi(~
ω · ~
xi + b) − 1) = 0
yi (~
ω · ~
xi + b) − 1 = 0
~
ω · ~
xi + b = 1/yi
b = 1/yi − ~
ω · ~
xi
Isso, contudo considerando apenas um vetor de suporte
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 16 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Como temos nV vetores de suporte, b será a média
dentre eles
b =
1
nV
X
xj ∈V
1
yj
− ~
ω · ~
xj
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 17 / 35
SVM Linear com Margens Rı́gidas
Maximizando a distância entre os hiperplanos
Como temos nV vetores de suporte, b será a média
dentre eles
b =
1
nV
X
xj ∈V
1
yj
− ~
ω · ~
xj
E como ~
ω =
n
X
i=1
αiyi~
xi, então
b =
1
nV
X
xj ∈V
1
yj
−
n
X
xi ∈V
αi yi~
xi · ~
xj
!
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 17 / 35
SVM Linear com Margens Rı́gidas
RESUME ISSO POR FAVOR!!!!
Fonte: https://i.imgflip.com/pqcjo.jpg?a432792
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 18 / 35
SVM Linear com Margens Rı́gidas
O classificador SVM
Dado um ponto ~
x, sua classificação será dada por
g(~
x) = sgn(f (~
x)) = sgn(~
ω ·~
x + b) = sgn
X
x
~i ∈V
yi αi~
xi · ~
x + b
!
(com α, ~
ω e b calculados como mostrado)
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 19 / 35
SVM Linear com Margens Rı́gidas
O classificador SVM
Dado um ponto ~
x, sua classificação será dada por
g(~
x) = sgn(f (~
x)) = sgn(~
ω ·~
x + b) = sgn
X
x
~i ∈V
yi αi~
xi · ~
x + b
!
(com α, ~
ω e b calculados como mostrado)
Esse é o classificador SVM
Representando o hiperplano que separa os dados com maior
margem
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 19 / 35
SVM Linear com Margens Suaves
Dados com ruı́do
Em algumas situações,
mesmo sendo linearmente
separáveis, os dados
apresentam ruı́dos
Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 20 / 35
SVM Linear com Margens Suaves
Dados com ruı́do
Em algumas situações,
mesmo sendo linearmente
separáveis, os dados
apresentam ruı́dos
Para esses casos,
relaxamos as restrições do
SVM Fonte: [3]
yi (~
ω · ~
xi + b) ≥ 1 − ξi
onde ξi ≥ 0 é uma variável de folga
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 20 / 35
SVM Linear com Margens Suaves
Dados com ruı́do
O classificador permite
que alguns exemplos
caiam no lado errado do
limite de decisão
Associa, contudo, uma
penalidade proporcional à
distância necessária para
movê-los de volta ao lado
certo Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 21 / 35
SVM Linear com Margens Suaves
Dados com ruı́do
O resultado é a mesma
expressão para o
classificador com margens
rı́gidas
Mas com uma expressão
diferente para αi (e
consequentes ω e b)
Não veremos detalhes aqui Fonte: [3]
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 22 / 35
SVM Não Linear
Espaço de Caracterı́sticas
E se os dados não forem
linearmente separáveis?
Muito embora, nesse
exemplo, talvez bastasse o
uso de coordenadas polares
Fonte: AIMA. RN
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 23 / 35
SVM Não Linear
Espaço de Caracterı́sticas
E se os dados não forem
linearmente separáveis?
Muito embora, nesse
exemplo, talvez bastasse o
uso de coordenadas polares
SVMs lidam com isso
mapeando cada exemplo
para um novo espaço, Fonte: AIMA. RN
de maior dimensão
O espaço de caracterı́sticas (feature space)
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 23 / 35
SVM Não Linear
Espaço de Caracterı́sticas
Por exemplo, vamos
mapear cada vetor de
entrada ~
x = (x1, x2) em
um novo vetor
F(~
x) = (f1, f2, f3), onde:
f1 = x2
1
f2 = x2
2
f3 =
√
2x1x2 Fonte: AIMA. RN
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 24 / 35
SVM Não Linear
Espaço de Caracterı́sticas
Graficando os dados nesse
novo espaço obtemos
Fonte: AIMA. RN
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 25 / 35
SVM Não Linear
Espaço de Caracterı́sticas
Graficando os dados nesse
novo espaço obtemos
E eles são linearmente
separáveis
A escolha apropriada do
mapeamento faz com que os
dados possam ser separados
por uma SVM linear
Fonte: AIMA. RN
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 25 / 35
SVM Não Linear
Espaço de Caracterı́sticas
Se os dados forem
mapeados em um espaço
de dimensões
suficientemente grande,
eles quase sempre serão
linearmente separáveis
Se olharmos a um conjunto
de pontos a partir de direções
suficientes, encontraremos
um modo de alinhá-los
Fonte: AIMA. RN
Com algumas exceções, conjuntos de n pontos serão sempre
separáveis em espaços de n − 1 dimensões ou mais
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 26 / 35
SVM Não Linear
Separador linear
Para encontrar um separador linear no novo espaço
F(~
x), substituı́mos ~
xi · ~
xj por F(~
xi) · F(~
xj) em
max
~
α
n
X
i=1
αi −
1
2
n
X
i,j=1
αi αj yi yj (~
xi · ~
xj )
Obtendo
max
~
α
n
X
i=1
αi −
1
2
n
X
i,j=1
αi αj yi yj (F(~
xi ) · F(~
xj ))
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 27 / 35
SVM Não Linear
Funções de Kernel
Contudo, podemos calcular F(~
xi) · F(~
xj) sem ter de
calcular F para cada ponto
No exemplo dado,
F(~
xi ) · F(~
xj ) = (x2
1i ,
√
2x1i x2i , x2
2i ) · (x2
1j ,
√
2x1j x2j , x2
2j )
= (~
xi · ~
xj )2
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 28 / 35
SVM Não Linear
Funções de Kernel
Contudo, podemos calcular F(~
xi) · F(~
xj) sem ter de
calcular F para cada ponto
No exemplo dado,
F(~
xi ) · F(~
xj ) = (x2
1i ,
√
2x1i x2i , x2
2i ) · (x2
1j ,
√
2x1j x2j , x2
2j )
= (~
xi · ~
xj )2
K(~
xi, ~
xj) = (~
xi · ~
xj)2
é uma Função de Kernel
Uma função K(~
xi , ~
xj ) = F(~
xi ) · F(~
xj ) que recebe 2 pontos ~
xi
e ~
xj do espaço de entradas e calcula seu produto escalar no
espaço de caracterı́sticas
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 28 / 35
SVM Não Linear
Funções de Kernel
Podemos então encontrar separadores lineares em
F(~
x) simplesmente trocando ~
xi · ~
xj pela função de
kernel K(~
xi, ~
xj)
Para aprender em dimensões maiores, calculamos apenas as
funções de kernel, em vez da lista de caracterı́sticas inteira
para cada ponto
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 29 / 35
SVM Não Linear
Funções de Kernel
Podemos então encontrar separadores lineares em
F(~
x) simplesmente trocando ~
xi · ~
xj pela função de
kernel K(~
xi, ~
xj)
Para aprender em dimensões maiores, calculamos apenas as
funções de kernel, em vez da lista de caracterı́sticas inteira
para cada ponto
Assim, simplificamos o cálculo
Empregamos a função de Kernel sem conhecer o
mapeamento F, pois esse é usado implicitamente
Podemos encontrar separadores lineares eficientemente em
espaços de bilhões de dimensões
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 29 / 35
SVM Não Linear
Funções de Kernel
E podemos usar qualquer função como Kernel?
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 30 / 35
SVM Não Linear
Funções de Kernel
E podemos usar qualquer função como Kernel?
Não. Apenas funções que satisfaçam as condições
estabelecidas pelo teorema de Mercer
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 30 / 35
SVM Não Linear
Funções de Kernel
E podemos usar qualquer função como Kernel?
Não. Apenas funções que satisfaçam as condições
estabelecidas pelo teorema de Mercer
Um Kernel que satisfaz as condições de Mercer dá
origem a matrizes positivas semi-definidas [K]
Em que cada elemento Kij é definido como Kij = K(~
xi , ~
xj ),
para i, j = 1, . . . , n
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 30 / 35
SVM Não Linear
Funções de Kernel
Na prática, os Kernels mais usados são
Tipo K(~
xi , ~
xj ) Parâmetros
Linear δ(~
xi · ~
xj ) + κ δ e κ
Polinomial (δ(~
xi · ~
xj ) + κ)d
δ, κ e d
Gaussiano e−σk~
xi −~
xj k2
σ
Sigmoidal tanh(δ(~
xi · ~
xj ) + κ) δ e κ
Note que cada um deles apresenta hiper-parâmetros que
precisam ser determinados na prática
No caso do sigmoidal, as condições de Mercer são satisfeitas
somente para alguns valores de δ
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 31 / 35
Support Vector Machines
Vantagens
Constroem um separador de margem máxima
Um limite de decisão com a maior distância possı́vel dos
exemplos de treino, o que ajuda a generalizar o modelo
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 32 / 35
Support Vector Machines
Vantagens
Constroem um separador de margem máxima
Um limite de decisão com a maior distância possı́vel dos
exemplos de treino, o que ajuda a generalizar o modelo
Criam um plano de separação linear
Tornam isso possı́vel embutindo os dados em um espaços de
mais dimensões (via o uso de Kernels)
Frequentemente, dados não linearmente separáveis no
espaço original se tornam separáveis nesse espaço maior
O separador linear de alta dimensão não é linear no espaço
original → podemos representar hipóteses não lineares
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 32 / 35
Support Vector Machines
Vantagens
São não-paramétricos
Retêm exemplos e potencialmente precisam armazená-los
todos
Na prática, contudo, apenas retêm uma fração pequena
destes
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 33 / 35
Support Vector Machines
Vantagens
São não-paramétricos
Retêm exemplos e potencialmente precisam armazená-los
todos
Na prática, contudo, apenas retêm uma fração pequena
destes
Combinam assim as vantagens dos modelos
não-paramétricos e paramétricos
Possuem a flexibilidade para representar funções complexas
E ainda assim são resistentes a overfitting
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 33 / 35
Support Vector Machines
Desvantagens
Sensı́veis à escolha dos parâmetros
Sensı́veis à escolha do Kernel
Nativamente só tratam de classificação binária
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 34 / 35
Referências
1 Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach.
Prentice Hall. 2a e 3a ed.
2 Harrington, P. (2012): Machine Learning in Action. Manning.
3 Lorena, A.C.; Carvalho A.C.P.L.F. (2007): Uma Introdução às Support
Vector Machines. RITA, 14(2).
4 Haykin, S. (2009): Neural Networks and Learning Machines. Pearson. 3
ed.
5 https://www.analyticsvidhya.com/blog/2017/09/
understaing-support-vector-machine-example-code/
Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 35 / 35

(ACH2044) Inteligência Artificial - Aula 21

  • 1.
    Inteligência Artificial –ACH2016 Aula21 – Support Vector Machines Norton Trevisan Roman (norton@usp.br) 27 de maio de 2019 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 1 / 35
  • 2.
    Support Vector Machine– SVM Margem Máxima Considere o conjunto linearmente separável ao lado Fonte: AIMA. R&N Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
  • 3.
    Support Vector Machine– SVM Margem Máxima Considere o conjunto linearmente separável ao lado Temos várias possibilidades de separação Fonte: AIMA. R&N Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
  • 4.
    Support Vector Machine– SVM Margem Máxima Considere o conjunto linearmente separável ao lado Temos várias possibilidades de separação Qual seria a melhor? Fonte: AIMA. R&N Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
  • 5.
    Support Vector Machine– SVM Margem Máxima Considere o conjunto linearmente separável ao lado Temos várias possibilidades de separação Qual seria a melhor? Cada linha que separa os dados é um hiperplano de separação Fonte: AIMA. R&N Será nosso limite de decisão → tudo de um lado pertence a uma classe, e tudo do outro pertence a outra Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 2 / 35
  • 6.
    Support Vector Machine– SVM Margem Máxima Gostarı́amos de escolher o separador que estivesse o mais longe possı́vel dos exemplos Acomodando, assim, possı́veis erros de classificação Fonte: AIMA. R&N Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 3 / 35
  • 7.
    Support Vector Machine– SVM Margem Máxima Gostarı́amos de escolher o separador que estivesse o mais longe possı́vel dos exemplos Acomodando, assim, possı́veis erros de classificação Esse seria então um separador de margem máxima margem Fonte: AIMA. R&N Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 3 / 35
  • 8.
    Support Vector Machine– SVM Margem Máxima Gostarı́amos de escolher o separador que estivesse o mais longe possı́vel dos exemplos Acomodando, assim, possı́veis erros de classificação Esse seria então um separador de margem máxima margem vetores de suporte Fonte: AIMA. R&N Os pontos mais próximos do separador são seus vetores de suporte Queremos então maximizar a distância entre esse hiperplano e seus vetores de suporte Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 3 / 35
  • 9.
    Support Vector Machine– SVM Classificador SVM Baseia-se na ideia principal do separador de margem máxima Quanto mais longe um ponto está do limite de decisão, mais confiantes estamos sobre a predição feita Fonte: AIMA. R&N Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 4 / 35
  • 10.
    Support Vector Machine– SVM Classificador SVM Baseia-se na ideia principal do separador de margem máxima Quanto mais longe um ponto está do limite de decisão, mais confiantes estamos sobre a predição feita Difere dos demais classificadores em que retorna +1 ou −1 em sua versão binária Fonte: AIMA. R&N Isso acaba facilitando os cálculos... Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 4 / 35
  • 11.
    Support Vector Machine– SVM SVM linear com margens rı́gidas Define fronteiras lineares a partir de dados linearmente separáveis Não permite pontos nessa fronteira Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 5 / 35
  • 12.
    Support Vector Machine– SVM SVM linear com margens rı́gidas Define fronteiras lineares a partir de dados linearmente separáveis Não permite pontos nessa fronteira Fonte: AIMA. R&N Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 5 / 35
  • 13.
    Support Vector Machine– SVM SVM linear com margens rı́gidas Define fronteiras lineares a partir de dados linearmente separáveis Não permite pontos nessa fronteira Um classificador linear é aquele que separa os dados com um hiperplano do tipo f (~ x) = ~ ω · ~ x + b Fonte: AIMA. R&N A equação separa o espaço de dados X em duas regiões, ~ ω · ~ x + b ≥ 0 e ~ ω · ~ x + b < 0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 5 / 35
  • 14.
    SVM Linear comMargens Rı́gidas Hiperplano Canônico Usamos então uma função sinal g(~ x) = sgn(f (~ x)) para classificar um ponto ~ x: g(~ x) = sgn(f (~ x)) = ( +1, se ~ ω · ~ x + b ≥ 0 −1, se ~ ω · ~ x + b < 0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 6 / 35
  • 15.
    SVM Linear comMargens Rı́gidas Hiperplano Canônico Usamos então uma função sinal g(~ x) = sgn(f (~ x)) para classificar um ponto ~ x: g(~ x) = sgn(f (~ x)) = ( +1, se ~ ω · ~ x + b ≥ 0 −1, se ~ ω · ~ x + b < 0 Hiperplano canônico: Aquele em que ~ ω e b são escolhidos de forma que os exemplos mais próximos do hiperplano satisfaçam a equação |~ ω · ~ x + b| = 1 Define a margem Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 6 / 35
  • 16.
    SVM Linear comMargens Rı́gidas Hiperplano Canônico Então, temos 2 hiperplanos nas bordas da margem: ( ~ ω · ~ x + b ≥ +1, se yi = +1 ~ ω · ~ x + b ≤ −1, se yi = −1 onde yi ∈ Y , Y = {−1, +1} é o rótulo de xi Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 7 / 35
  • 17.
    SVM Linear comMargens Rı́gidas Hiperplano Canônico Então, temos 2 hiperplanos nas bordas da margem: ( ~ ω · ~ x + b ≥ +1, se yi = +1 ~ ω · ~ x + b ≤ −1, se yi = −1 onde yi ∈ Y , Y = {−1, +1} é o rótulo de xi E aqui vemos a vantagem de se definir as classes como Y = {−1, +1} Podemos resumir a expressão acima em uma única equação: yi (~ ω · ~ x + b) − 1 ≥ 0, ∀(~ xi , yi ) ∈ T (onde T é o conjunto de treino) Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 7 / 35
  • 18.
    SVM Linear comMargens Rı́gidas Distância entre os Hiperplanos Queremos, no entanto, maximizar a margem Maximizar a distância d entre os hiperplanos H1 e H2 Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 8 / 35
  • 19.
    SVM Linear comMargens Rı́gidas Distância entre os Hiperplanos Queremos, no entanto, maximizar a margem Maximizar a distância d entre os hiperplanos H1 e H2 Projetamos então o vetor ~ x1 − ~ x2 na direção de ~ ω Onde ~ x1 ∈ H1 e ~ x2 ∈ H2, Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 8 / 35
  • 20.
    SVM Linear comMargens Rı́gidas Distância entre os Hiperplanos E ~ d = (~ x1 −~ x2) ~ ω k~ ωk · (~ x1 − ~ x2) k~ x1 − ~ x2k Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 9 / 35
  • 21.
    SVM Linear comMargens Rı́gidas Distância entre os Hiperplanos E ~ d = (~ x1 −~ x2) ~ ω k~ ωk · (~ x1 − ~ x2) k~ x1 − ~ x2k Uma vez que ~ ω · ~ x1 + b = +1 e ~ ω · ~ x2 + b = −1 Então ~ ω · (~ x1 − ~ x2) = ~ ω · ~ x1 − ~ ω · ~ x2 Fonte: [3] = (1 − b) − (−1 − b) = 2 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 9 / 35
  • 22.
    SVM Linear comMargens Rı́gidas Distância entre os Hiperplanos E ~ d = 2(~ x1 − ~ x2) k~ ωkk~ x1 − ~ x2k Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 10 / 35
  • 23.
    SVM Linear comMargens Rı́gidas Distância entre os Hiperplanos E ~ d = 2(~ x1 − ~ x2) k~ ωkk~ x1 − ~ x2k Assim, d = k~ dk = 2 k~ ωk d0 = 1 k~ ωk é então a distância mı́nima entre o hiperplano separador e os dados de treinamento Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 10 / 35
  • 24.
    SVM Linear comMargens Rı́gidas Distância entre os Hiperplanos E ~ d = 2(~ x1 − ~ x2) k~ ωkk~ x1 − ~ x2k Assim, d = k~ dk = 2 k~ ωk d0 = 1 k~ ωk é então a distância mı́nima entre o hiperplano separador e os dados de treinamento Fonte: [3] Queremos maximizar d0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 10 / 35
  • 25.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Maximizar d0 = 1/k~ ωk corresponde ao problema de otimização: f (~ x) = min ~ ω,b 1 2 k~ ωk2 Restrição: yi (~ ω · ~ xi + b) − 1 ≥ 0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
  • 26.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Maximizar d0 = 1/k~ ωk corresponde ao problema de otimização: f (~ x) = min ~ ω,b 1 2 k~ ωk2 Restrição: yi (~ ω · ~ xi + b) − 1 ≥ 0 A restrição garante que não haja dados de treino entre as margens de separação das classes Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
  • 27.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Maximizar d0 = 1/k~ ωk corresponde ao problema de otimização: f (~ x) = min ~ ω,b 1 2 k~ ωk2 Restrição: yi (~ ω · ~ xi + b) − 1 ≥ 0 Por que isso? Porque os mesmos ~ ω e b que resolvem um problema também resolve o outro Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
  • 28.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Maximizar d0 = 1/k~ ωk corresponde ao problema de otimização: f (~ x) = min ~ ω,b 1 2 k~ ωk2 Restrição: yi (~ ω · ~ xi + b) − 1 ≥ 0 Por que isso? Fonte: https://brainsnorts.files. wordpress.com/2014/05/calvin376_2.jpg Porque os mesmos ~ ω e b que resolvem um problema também resolve o outro E alguém já quebrou a cabeça resolvendo um deles Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 11 / 35
  • 29.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos A solução desse problema de otimização passa pela introdução de uma Lagrangiana L(~ ω, b, ~ α) = 1 2 k~ ωk2 − n X i=1 αi (yi (~ ω · ~ xi + b) − 1) Onde αi são os chamados multiplicadores de Lagrange Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 12 / 35
  • 30.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos A solução desse problema de otimização passa pela introdução de uma Lagrangiana L(~ ω, b, ~ α) = 1 2 k~ ωk2 − n X i=1 αi (yi (~ ω · ~ xi + b) − 1) Onde αi são os chamados multiplicadores de Lagrange L(~ ω, b, ~ α) deve então ser minimizada Para isso, maximizamos αi e minimizamos ~ ω e b Para ~ ω e b, fazemos ∂L ∂b = 0 e ∂L ∂~ ω = 0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 12 / 35
  • 31.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos O que nos leva ao resultado n X i=1 αi yi = 0 e ~ ω = n X i=1 αi yi~ xi Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 13 / 35
  • 32.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos O que nos leva ao resultado n X i=1 αi yi = 0 e ~ ω = n X i=1 αi yi~ xi Para αi, substituı́mos esse resultado na Lagrangeana e maximizamos Queremos então max ~ α n X i=1 αi − 1 2 n X i,j=1 αi αj yi yj (~ xi · ~ xj ) Com as restrições      αi ≥ 0, i = 1, . . . , n n X i=1 αi yi = 0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 13 / 35
  • 33.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Formulação conhe- cida como forma dual do problema O que nos leva ao resultado n X i=1 αi yi = 0 e ~ ω = n X i=1 αi yi~ xi Para αi, substituı́mos esse resultado na Lagrangeana e maximizamos Queremos então max ~ α n X i=1 αi − 1 2 n X i,j=1 αi αj yi yj (~ xi · ~ xj ) Com as restrições      αi ≥ 0, i = 1, . . . , n n X i=1 αi yi = 0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 13 / 35
  • 34.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Assim, encontrada a solução ~ α da forma dual, usamos ~ ω = n X i=1 αiyi~ xi para achar a solução ~ ω Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 14 / 35
  • 35.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Assim, encontrada a solução ~ α da forma dual, usamos ~ ω = n X i=1 αiyi~ xi para achar a solução ~ ω E b? Obtido de α e das condições de Kühn-Tucker (teoria de otimização com restrições) Para esse problema, temos as restrições αi (yi (~ ω · ~ xi + b) − 1) = 0, i = 1, . . . , n Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 14 / 35
  • 36.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Vejamos a restrição αi(yi(~ ω · ~ xi + b) − 1) = 0 Temos que αi 6= 0 apenas para pontos sobre H1 e H2 Os exemplos mais próximos do hiperplano separador Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
  • 37.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Vejamos a restrição αi(yi(~ ω · ~ xi + b) − 1) = 0 Temos que αi 6= 0 apenas para pontos sobre H1 e H2 Os exemplos mais próximos do hiperplano separador Para os demais deve ser 0. Por que? Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
  • 38.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Vejamos a restrição αi(yi(~ ω · ~ xi + b) − 1) = 0 Temos que αi 6= 0 apenas para pontos sobre H1 e H2 Os exemplos mais próximos do hiperplano separador Para os demais deve ser 0. Por que? Se ~ x / ∈ H1 ou H2, então yi (~ ω · ~ x + b) − 1 0 Não está nem na margem, nem no plano Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
  • 39.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Vejamos a restrição αi(yi(~ ω · ~ xi + b) − 1) = 0 Temos que αi 6= 0 apenas para pontos sobre H1 e H2 Os exemplos mais próximos do hiperplano separador Para os demais deve ser 0. Por que? Se ~ x / ∈ H1 ou H2, então yi (~ ω · ~ x + b) − 1 0 Não está nem na margem, nem no plano A única forma de αi (yi (~ ω · ~ xi + b) − 1) ser 0 é se αi = 0 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 15 / 35
  • 40.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Os exemplos em que αi 0 são os vetores de suporte V para o hiperplano separador Apenas eles participarão da determinação da equação desse hiperplano Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 16 / 35
  • 41.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Os exemplos em que αi 0 são os vetores de suporte V para o hiperplano separador Apenas eles participarão da determinação da equação desse hiperplano Mas e b? Calculado de αi(yi(~ ω · ~ xi + b) − 1) = 0 yi (~ ω · ~ xi + b) − 1 = 0 ~ ω · ~ xi + b = 1/yi b = 1/yi − ~ ω · ~ xi Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 16 / 35
  • 42.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Os exemplos em que αi 0 são os vetores de suporte V para o hiperplano separador Apenas eles participarão da determinação da equação desse hiperplano Mas e b? Calculado de αi(yi(~ ω · ~ xi + b) − 1) = 0 yi (~ ω · ~ xi + b) − 1 = 0 ~ ω · ~ xi + b = 1/yi b = 1/yi − ~ ω · ~ xi Isso, contudo considerando apenas um vetor de suporte Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 16 / 35
  • 43.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Como temos nV vetores de suporte, b será a média dentre eles b = 1 nV X xj ∈V 1 yj − ~ ω · ~ xj Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 17 / 35
  • 44.
    SVM Linear comMargens Rı́gidas Maximizando a distância entre os hiperplanos Como temos nV vetores de suporte, b será a média dentre eles b = 1 nV X xj ∈V 1 yj − ~ ω · ~ xj E como ~ ω = n X i=1 αiyi~ xi, então b = 1 nV X xj ∈V 1 yj − n X xi ∈V αi yi~ xi · ~ xj ! Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 17 / 35
  • 45.
    SVM Linear comMargens Rı́gidas RESUME ISSO POR FAVOR!!!! Fonte: https://i.imgflip.com/pqcjo.jpg?a432792 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 18 / 35
  • 46.
    SVM Linear comMargens Rı́gidas O classificador SVM Dado um ponto ~ x, sua classificação será dada por g(~ x) = sgn(f (~ x)) = sgn(~ ω ·~ x + b) = sgn X x ~i ∈V yi αi~ xi · ~ x + b ! (com α, ~ ω e b calculados como mostrado) Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 19 / 35
  • 47.
    SVM Linear comMargens Rı́gidas O classificador SVM Dado um ponto ~ x, sua classificação será dada por g(~ x) = sgn(f (~ x)) = sgn(~ ω ·~ x + b) = sgn X x ~i ∈V yi αi~ xi · ~ x + b ! (com α, ~ ω e b calculados como mostrado) Esse é o classificador SVM Representando o hiperplano que separa os dados com maior margem Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 19 / 35
  • 48.
    SVM Linear comMargens Suaves Dados com ruı́do Em algumas situações, mesmo sendo linearmente separáveis, os dados apresentam ruı́dos Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 20 / 35
  • 49.
    SVM Linear comMargens Suaves Dados com ruı́do Em algumas situações, mesmo sendo linearmente separáveis, os dados apresentam ruı́dos Para esses casos, relaxamos as restrições do SVM Fonte: [3] yi (~ ω · ~ xi + b) ≥ 1 − ξi onde ξi ≥ 0 é uma variável de folga Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 20 / 35
  • 50.
    SVM Linear comMargens Suaves Dados com ruı́do O classificador permite que alguns exemplos caiam no lado errado do limite de decisão Associa, contudo, uma penalidade proporcional à distância necessária para movê-los de volta ao lado certo Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 21 / 35
  • 51.
    SVM Linear comMargens Suaves Dados com ruı́do O resultado é a mesma expressão para o classificador com margens rı́gidas Mas com uma expressão diferente para αi (e consequentes ω e b) Não veremos detalhes aqui Fonte: [3] Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 22 / 35
  • 52.
    SVM Não Linear Espaçode Caracterı́sticas E se os dados não forem linearmente separáveis? Muito embora, nesse exemplo, talvez bastasse o uso de coordenadas polares Fonte: AIMA. RN Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 23 / 35
  • 53.
    SVM Não Linear Espaçode Caracterı́sticas E se os dados não forem linearmente separáveis? Muito embora, nesse exemplo, talvez bastasse o uso de coordenadas polares SVMs lidam com isso mapeando cada exemplo para um novo espaço, Fonte: AIMA. RN de maior dimensão O espaço de caracterı́sticas (feature space) Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 23 / 35
  • 54.
    SVM Não Linear Espaçode Caracterı́sticas Por exemplo, vamos mapear cada vetor de entrada ~ x = (x1, x2) em um novo vetor F(~ x) = (f1, f2, f3), onde: f1 = x2 1 f2 = x2 2 f3 = √ 2x1x2 Fonte: AIMA. RN Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 24 / 35
  • 55.
    SVM Não Linear Espaçode Caracterı́sticas Graficando os dados nesse novo espaço obtemos Fonte: AIMA. RN Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 25 / 35
  • 56.
    SVM Não Linear Espaçode Caracterı́sticas Graficando os dados nesse novo espaço obtemos E eles são linearmente separáveis A escolha apropriada do mapeamento faz com que os dados possam ser separados por uma SVM linear Fonte: AIMA. RN Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 25 / 35
  • 57.
    SVM Não Linear Espaçode Caracterı́sticas Se os dados forem mapeados em um espaço de dimensões suficientemente grande, eles quase sempre serão linearmente separáveis Se olharmos a um conjunto de pontos a partir de direções suficientes, encontraremos um modo de alinhá-los Fonte: AIMA. RN Com algumas exceções, conjuntos de n pontos serão sempre separáveis em espaços de n − 1 dimensões ou mais Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 26 / 35
  • 58.
    SVM Não Linear Separadorlinear Para encontrar um separador linear no novo espaço F(~ x), substituı́mos ~ xi · ~ xj por F(~ xi) · F(~ xj) em max ~ α n X i=1 αi − 1 2 n X i,j=1 αi αj yi yj (~ xi · ~ xj ) Obtendo max ~ α n X i=1 αi − 1 2 n X i,j=1 αi αj yi yj (F(~ xi ) · F(~ xj )) Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 27 / 35
  • 59.
    SVM Não Linear Funçõesde Kernel Contudo, podemos calcular F(~ xi) · F(~ xj) sem ter de calcular F para cada ponto No exemplo dado, F(~ xi ) · F(~ xj ) = (x2 1i , √ 2x1i x2i , x2 2i ) · (x2 1j , √ 2x1j x2j , x2 2j ) = (~ xi · ~ xj )2 Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 28 / 35
  • 60.
    SVM Não Linear Funçõesde Kernel Contudo, podemos calcular F(~ xi) · F(~ xj) sem ter de calcular F para cada ponto No exemplo dado, F(~ xi ) · F(~ xj ) = (x2 1i , √ 2x1i x2i , x2 2i ) · (x2 1j , √ 2x1j x2j , x2 2j ) = (~ xi · ~ xj )2 K(~ xi, ~ xj) = (~ xi · ~ xj)2 é uma Função de Kernel Uma função K(~ xi , ~ xj ) = F(~ xi ) · F(~ xj ) que recebe 2 pontos ~ xi e ~ xj do espaço de entradas e calcula seu produto escalar no espaço de caracterı́sticas Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 28 / 35
  • 61.
    SVM Não Linear Funçõesde Kernel Podemos então encontrar separadores lineares em F(~ x) simplesmente trocando ~ xi · ~ xj pela função de kernel K(~ xi, ~ xj) Para aprender em dimensões maiores, calculamos apenas as funções de kernel, em vez da lista de caracterı́sticas inteira para cada ponto Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 29 / 35
  • 62.
    SVM Não Linear Funçõesde Kernel Podemos então encontrar separadores lineares em F(~ x) simplesmente trocando ~ xi · ~ xj pela função de kernel K(~ xi, ~ xj) Para aprender em dimensões maiores, calculamos apenas as funções de kernel, em vez da lista de caracterı́sticas inteira para cada ponto Assim, simplificamos o cálculo Empregamos a função de Kernel sem conhecer o mapeamento F, pois esse é usado implicitamente Podemos encontrar separadores lineares eficientemente em espaços de bilhões de dimensões Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 29 / 35
  • 63.
    SVM Não Linear Funçõesde Kernel E podemos usar qualquer função como Kernel? Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 30 / 35
  • 64.
    SVM Não Linear Funçõesde Kernel E podemos usar qualquer função como Kernel? Não. Apenas funções que satisfaçam as condições estabelecidas pelo teorema de Mercer Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 30 / 35
  • 65.
    SVM Não Linear Funçõesde Kernel E podemos usar qualquer função como Kernel? Não. Apenas funções que satisfaçam as condições estabelecidas pelo teorema de Mercer Um Kernel que satisfaz as condições de Mercer dá origem a matrizes positivas semi-definidas [K] Em que cada elemento Kij é definido como Kij = K(~ xi , ~ xj ), para i, j = 1, . . . , n Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 30 / 35
  • 66.
    SVM Não Linear Funçõesde Kernel Na prática, os Kernels mais usados são Tipo K(~ xi , ~ xj ) Parâmetros Linear δ(~ xi · ~ xj ) + κ δ e κ Polinomial (δ(~ xi · ~ xj ) + κ)d δ, κ e d Gaussiano e−σk~ xi −~ xj k2 σ Sigmoidal tanh(δ(~ xi · ~ xj ) + κ) δ e κ Note que cada um deles apresenta hiper-parâmetros que precisam ser determinados na prática No caso do sigmoidal, as condições de Mercer são satisfeitas somente para alguns valores de δ Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 31 / 35
  • 67.
    Support Vector Machines Vantagens Constroemum separador de margem máxima Um limite de decisão com a maior distância possı́vel dos exemplos de treino, o que ajuda a generalizar o modelo Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 32 / 35
  • 68.
    Support Vector Machines Vantagens Constroemum separador de margem máxima Um limite de decisão com a maior distância possı́vel dos exemplos de treino, o que ajuda a generalizar o modelo Criam um plano de separação linear Tornam isso possı́vel embutindo os dados em um espaços de mais dimensões (via o uso de Kernels) Frequentemente, dados não linearmente separáveis no espaço original se tornam separáveis nesse espaço maior O separador linear de alta dimensão não é linear no espaço original → podemos representar hipóteses não lineares Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 32 / 35
  • 69.
    Support Vector Machines Vantagens Sãonão-paramétricos Retêm exemplos e potencialmente precisam armazená-los todos Na prática, contudo, apenas retêm uma fração pequena destes Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 33 / 35
  • 70.
    Support Vector Machines Vantagens Sãonão-paramétricos Retêm exemplos e potencialmente precisam armazená-los todos Na prática, contudo, apenas retêm uma fração pequena destes Combinam assim as vantagens dos modelos não-paramétricos e paramétricos Possuem a flexibilidade para representar funções complexas E ainda assim são resistentes a overfitting Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 33 / 35
  • 71.
    Support Vector Machines Desvantagens Sensı́veisà escolha dos parâmetros Sensı́veis à escolha do Kernel Nativamente só tratam de classificação binária Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 34 / 35
  • 72.
    Referências 1 Russell, S.;Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice Hall. 2a e 3a ed. 2 Harrington, P. (2012): Machine Learning in Action. Manning. 3 Lorena, A.C.; Carvalho A.C.P.L.F. (2007): Uma Introdução às Support Vector Machines. RITA, 14(2). 4 Haykin, S. (2009): Neural Networks and Learning Machines. Pearson. 3 ed. 5 https://www.analyticsvidhya.com/blog/2017/09/ understaing-support-vector-machine-example-code/ Norton Trevisan Roman(norton@usp.br) 27 de maio de 2019 35 / 35