• Nenhum resultado encontrado

FERRAMENTAS MATEMÁTICAS E COM PUTACIONAIS

3.3.3 Support Vector Machine (SVM)

Support Vector Machines (SVM) são algoritmos de aprendizagem de máquinas utilizados para classificação de padrões que vem apresentando melhores resultados em relação a outros métodos de classificação.

O SVM é baseado no princípio da Minimização do Risco Estrutural, o que permite desenvolver máquinas de aprendizado com maior capacidade de generalização e superar problemas de overfitting na classificação dos dados (ALMEIDA, 2002).

Principais características

Os primeiros trabalhos foram apresentados por Boser, Guyon e Vapnik (1992) e Vapnik (1998), este último com uma definição mais detalhada. O algoritmo tinha como objetivo maximizar a margem entre duas classes de amostras, utilizando um hiperplano de separação, gerado a partir de vetores suporte, os quais seriam os mais importantes para o posicionamento deste hiperplano.

Inicialmente, os algoritmos eram capazes de classificar duas classes com dados line- armente separáveis, chamados de SVM com margem rígida (hard margins). Posteriormente o algoritmo foi sendo aprimorado, e estratégias para classificação de dados não-linearmente separáveis passaram a ser implementadas, como a implementação de erros mínimos de classificação (GUYON, 1999), chamado de SVM com margens flexíveis ou suaves (soft

margins). Ademais, foi implementado a utilização do conceito de função kernel, para este

tipo de aplicação.

SVM com margens rígidas

Considerando amostras linearmente separáveis, cada amostra denominada x(i) com n atributos, sendo (x1, x2, ..., xn), correspondentes as classes y, com y {+1, -1}, determina-

se o hiperplano que separa as amostras. Para minimização do erro de generalização, deve-se maximizar a margem T, a distância mínima entre um hiperplano de separação de duas classes e os dados de entrada de cada classe que estejam mais próximas a esse hiperplano

(BENNETT; CAMPBELL, 2000). A figura 17 apresenta o modo de posicionamento do hiperplano em relação as amostras e a margem T a ser maximizada.

Figura 17: Hiperplanos de separação de classes (a) Possível hiperplano (b) Hiperplano de separação com margem maximizada.

Fonte: Elaborada pelo autor.

Considerando um hiperplano H, temos que os pontos que pertencem a ele é dado pela equação 3.14, onde b é o vetor de limiar ou bias, e w é o vetor normal ao hiperplano H.

w.x + b = 0 (3.14)

A equação 3.15 corresponde a distância perpendicular do hiperplano H até a origem. |b|

||w|| (3.15)

Pode-se definir então uma função empregada na decisão de classificação do tipo sinal, conforme mostra a equação 3.16.

g(x) = sinal(w.x + b) =      +1, sew.x + b > 0 −1, sew.x + b < 0 (3.16)

Define-se adicionalmente dois hiperplanos canônicos formados por vetores suporte contendo as amostras de cada classe mais próximas do hiperplano de separação H. Os vetores suporte são de suma importância no posicionamento do hiperplano de separação, caso algum vetor suporte seja retirado o hiperplano muda de local. Caso algum vetor que não seja suporte, seja retirado, o hiperplano se mantém. Estes hiperplanos são apresentados na equação 3.17.      w.x + b = 1 w.x + b = −1 (3.17)

66 Capítulo 3 Ferramentas Matemáticas e Computacionais

A margem total T então necessita ser maximizada. Assim, defini-se a equação 3.18, como a distância mínima entre o hiperplano e as amostras de treinamento.

T = |b|

||w|| (3.18)

A partir destas considerações, verifica-se que a maximização da margem de separa- ção pode ser obtida pela minimização de ||w||, com as restrições de se manter a separação de amostras corretamente, implicando em um problema de otimização restrita com a função custo dada pela equação 3.19, com restrições dadas pela equação 3.20.

1/2||w||2 = 1/2wTw (3.19)

yi(w.xi+ b) ≥ 1 (3.20)

Aplicando-se então a teoria dos multiplicadores de Lagrange, podem-se realizar os desenvolvimentos com a finalidade de se encontrar um ótimo para a função objetivo

L(w, b) que representa um problema primal de otimização restrita, ou seja, minimizar:

L(w, b) = 1/2(wTw) − n X i=1 αi(yi(w.xi+ b) − 1) (3.21) Sujeito a Pn i=1αi.yi = 0, com αi > 0.

A solução do problema acima consiste em obter os multiplicadores de Lagrange αi,

os quais podem ser calculados por meio do método Sequential Quadratic Programming (SQP) e deve atender às condições de otimalidade de Karush-Kuhn-Tucker (KKT).

A partir da solução deste problema de otimização obtém-se a função de decisão do classificador com margem maximizada. A função de decisão pode ser dada pela equação 3.22. D(z) = sinal[ m X j=1 αiyi(xi.z) + b] (3.22)

SVM com margens flexíveis

As amostras utilizadas no desenvolvimento das SVMs podem conter ruídos, amostras rotuladas incorretamente, outliers que podem comprometer a capacidade de generalização do sistema. O conceito de margens flexíveis ou suaves (soft margins) pode contribuir para reduzir os efeitos destes ruídos.

Para isso, se insere uma folga i ≥ 0, relaxando restrições impostas pelo problema

de otimização primal (LORENA; CARVALHO, 2007). A equação 19 mostra a adaptação.

yi(w.xi + b) ≥ 1 − i (3.23)

Assim, ocorre a suavização das margens do hiperplano H criado pelo algoritmo SVM com margem rígida, de maneira que algumas amostras permaneçam entre os limites impostos pelos vetores de suporte, inclusive a ocorrência de alguns erros de classificação. Desta maneira a função custo é reformulada para minimizar a equação 3.24.

1/2wTw + C

n

X

i=1

i (3.24)

Sujeito a yi(w.xi+ b) ≥ 1 − i, onde i > 0, com i = 1, ...n.

O parâmetro C, denominado de constante de margem suave ou fator de suavização, pode ser visto como uma maneira de controlar o overfitting, ou seja, controla a importância relativa de maximizar a margem a fim de se ajustar os dados de treinamento à “Soft Margin”. Quanto menor o fator de suavização, maior quantidade de pontos são ignorados próximos a margem, aumenta assim a margem de folga. Neste caso, o problema de otimização deve maximizar a margem e permitir que alguns vetores estejam dentro da margem, minimizando efeitos de alguns dados extremos no posicionamento do hiperplano (LIBONI, 2017). O problema primal passa a ter dois multiplicadores de Lagrange, αi e ri, com a

seguinte função objetivo L(w, b, α, ):

L(w, b, α, ) = 1/2(wTw) + C n X i=1 in X i=1 αi(yi(w.xi+ b) − 1 + i) − n X i=1 )rii (3.25) Sujeito aPn

i=1αi.yi = 0, com αi ≥ 0eri ≥ 0. Utilização de função kernel

Para problemas não linearmente separáveis utilizando-se SVM de margens rígidas, a representação dos dados deve ser mapeada em um novo espaço de maior dimensão, de maneira que o novo problema passe a ser linearmente separável, com uma dimensão adicional (LIBONI, 2017). Para esta operação utiliza-se funções kernel, que criam uma outra dimensão para as amostras. Existem inúmeras funções kernel que podem ser empregadas, como a função polinomial, Gaussiana, sigmoidal, etc. A tabela 3 apresenta mais detalhes destas funções.

O kernel Gaussiano possui apenas um parâmetro de ajuste. Neste caso, quando γ é elevado, a separação dos padrões fica similar a separação sem utilização da função kernel. Para valores pequenos de γ, o classificador é muito restrito, e não alcança generalização

68 Capítulo 3 Ferramentas Matemáticas e Computacionais

Tabela 3: Algumas funções kernel utilizadas em SVM.

Kernel Função Parâmetros

Polinomial (δ(xi.yj) + k)d δ, k, d Gaussiano exp (−γ||xi− yj||2) γ

Sigmoidal tanh(δ.(xi.yj) + k) δ, k Fonte: Elaborada pelo autor.

satisfatória. A figura 18 apresenta um exemplo de aplicação de função kernel, com fator de suavização fixo, utilizando banco de dados IRIS disponível no MATLAB.

Figura 18: Interferência do parâmetro γ no kernel Gaussiano. Banco de Dados de IRIS do MATLAB.

γ=0.01 Acurácia: 66.38% γ=0.1 Acurácia: 90.95% γ=1 Acurácia: 90.09%

γ=10 Acurácia: 97.41% γ=100 Acurácia: 87.50%

Fonte: Elaborada pelo autor.

Nesta tese foi utilizado SVM com margens flexíveis e o kernel gaussiano na imple- mentação do classificador. A implementação do algoritmo é realizada a partir da utilização de uma toolbox do software MATLAB denominada fitcsvm.

Documentos relacionados