SVM – Entendendo sua matemática – Parte 1 – A Margem

On 14 de agosto de 2015 by Ricardo Câmara

Este é o primeiro post de uma série de 3 posts falando sobre a matemática por trás do SVM. O SVM é uma técnica de grande utilidade para várias áreas da computação, por exemplo: reconhecimento de padrões, mineração de dados, entre outras…

O SVM é uma técnica de classificação baseada em aprendizado de máquina na qual é utilizado o aprendizado supervisionado. Isso quer dizer que para seu treinamento deve se possuir uma base na qual as instâncias de cada classe estejam previamente classificadas. Este primeiro post falaremos sobre a margem de separação das classes.

 

Introdução ao SVM

Este é o primeiro artigo de uma série de artigos que eu estarei escrevendo sobre a matemática por trás do SVM. Há muito sobre o que falar e um bom entendimento matemático é necessário. De qualquer modo eu tentarei manter um ritmo lento e não dar explicações profundas, assim tudo ficará bem claro até para iniciantes.

 

Qual é o objetivo de um SVM(Support Vector Machine)?

O objetivo de um SVM é encontrar o hiperplano de separação ideal o qual maximiza a margem da base de treinamento.

A primeira coisa que notamos nesta definição, é que o SVM precisa de uma base de treinamento. O que quer dizer que é um algoritmo de aprendizado supervisionado.

Também é importante saber que o SVM é um algoritmo de classificação. Isso quer dizer que iremos usá-lo para predizer se algo pertence a uma classe particular.

Por exemplo, nos podemos ter a base de treinamento abaixo:

Figura 1

Figura 1

Nós temos na imagem a altura e o peso de algumas pessoas, e também há como distinguir entre homem e mulher.

Com essa base de dados, um SVM irá nos permitir responder a seguinte questão:

Dado um ponto(altura e peso) em particular, a pessoa é homem ou mulher?

Por exemplo: Se alguém medir 175 cm e pesar 80 kg, é um homem ou uma mulher?

 

O que é um hiperplano de separação?

Olhando o desenho nós podemos ver que é possível separar os dados. Por exemplo, nós podemos traçar uma linha e todos os pontos que represantam homens ficarão abaixo da linha, e todos os pontos que representam mulheres ficaram acima da linha.

Tal linha é chamada hiperplano de separação e é retratada abaixo.

Figura 2

Figura 2

Se é somente uma linha porque a chamamos de hiperplano?
Apesar de usarmos um exemplo muito simples com os pontos em duas dimensões o SVM pode trabalhar com qualquer número de dimensões.

Um hiperplano é a generalização de um plano.
– com uma dimensão, um hiplerplano é chamado de ponto
– com duas dimensões, é uma linha
– com três dimensões, é um plano
– com mais dimensões você pode chamar de hiperplano

Figura3: O ponto L está separando o hiperplano em uma dimensão

Figura3: O ponto L está separando o hiperplano em uma dimensão

 

O que é um hiperplano de separação ideal?

O fato é que você pode encontrar um hiperplano de separação, mas não quer dizer que é o melhor! No exemplo abaixo há vários hiperplanos de separação. Cada um deles são válidos e separam nosso conjunto de dados em homens de um lado e mulheres de outro lado.

Figura 4: Podem haver vários hiperplanos de separação

Figura 4: Podem haver vários hiperplanos de separação

Imagina que nós selecionamos o hiperplano verde a vamos utilizá-los para classifica dados da vida real.

Figura 5: Este hiperplano não generaliza bem

Figura 5: Este hiperplano não generaliza bem

Desta vez ele cometeu alguns erros classificando três mulheres de maneira errada. Intuitivamente, nós podemos ver que se nós escolhermos um hiperplano o qual é próximo aos ponto de uma dada classe, então isso pode não generalizar bem.

Então nós tentaremos selecionar um hiperplano que é tão longe quanto possível dos pontos de cada categoria:

Figura 6

Figura 6

Este parecer melhor. Quando o usamos para dados da vide real, podemos ver que o hiperplano continua fazendo a classificação perfeita.

Figura 7: O hiperplano classifica com mais acurácia que o hiperplano verde

Figura 7: O hiperplano classifica com mais acurácia que o hiperplano verde

Por isso que o objetivo do SVM é encontrar o hiperplano de separação ideal:
– por que ele classifica os dados de maneira correta
– e por que ele é o qual generaliza melhor com dados não usados no treinamento

 

O que é a margem e como isto ajuda a escola do hiperplano ideal?

Figura 8

Figura 8: A margem do nosso hiperplano ideal

Dado um hiperplano em particular, nós podemos computar a distância entre o hiperplano é o ponto mais próximo. Uma vez que temos este valor, se nós o dobrarmos teremos o que pe chamado de margem.

Basicamente a margem é uma “terra de ninguém”. Nunca haverá um ponto dentro da margem. (Obs: isto pode causar problemas quando há ruídos nos dados, e por isso que classificador de “margem suave” será apresentado depois)

De outro hiperplano, considere esta margem:

Figura 9

Figura 9

Como você pode ver, a margem B é menor que a margem A.

Nós podemos fazer as seguintes observações:
– se um hiperplano é muito próximo de um ponto, a sua margem será pequena.
– quanto mais um hiperplano for proveniente de um dado, maior será sua margem.

Está é a razão que o objetivo do SVM: encontrar um hiperplano de separação ideal o qual maximiza a margem da base de treinamento.

Isto conclui o post de introdução da matemática por trás do SVM. Não houve tantas fórmulas mas, no próximo post  colocaremos alguns números e tentaremos entender a visão matemática disso usando geometria e vetores.

 

Referencia:

svm-tutorial.

Trackbacks & Pings

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *