O documento descreve o algoritmo de máquina de vetor de suporte (SVM), explicando como ele busca encontrar o hiperplano separador de margem máxima entre os dados de treinamento de duas classes. O SVM define fronteiras lineares ótimas para dados linearmente separáveis, maximizando a distância entre o hiperplano separador e os exemplos de treinamento mais próximos, chamados de vetores de suporte. O problema é formulado como um problema de otimização para encontrar os parâmetros ω e b que maximizam essa distância de separação.
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 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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
31. 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
32. 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
33. 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
34. 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
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
36. 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
37. 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
38. 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
39. 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
40. 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
41. 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
42. 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
43. 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
44. 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
45. 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
46. 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
47. 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
48. 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
49. 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
50. 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
51. 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
52. 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
53. 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
54. 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
55. 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
56. 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
57. 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
58. 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
59. 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
60. 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
61. 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
62. 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
63. 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
64. 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
65. 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
66. 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
67. 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
68. 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
69. 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
70. 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
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