Connect with us

IA 101

O que são Máquinas de Vetor de Suporte?

mm

O que são Máquinas de Vetor de Suporte?

Máquinas de vetor de suporte são um tipo de classificador de aprendizado de máquina, possivelmente um dos tipos mais populares de classificadores. Máquinas de vetor de suporte são especialmente úteis para tarefas de previsão numérica, classificação e reconhecimento de padrões.

Máquinas de vetor de suporte operam desenhando limites de decisão entre pontos de dados, visando o limite de decisão que melhor separa os pontos de dados em classes (ou é o mais generalizável). O objetivo ao usar uma máquina de vetor de suporte é que o limite de decisão entre os pontos seja o maior possível, de modo que a distância entre qualquer ponto de dados e a linha de limite seja maximizada. Essa é uma explicação rápida de como máquinas de vetor de suporte (SVMs) operam, mas vamos dedicar algum tempo para entender melhor como as SVMs operam e compreender a lógica por trás de sua operação.

Objetivo das Máquinas de Vetor de Suporte

Imagine um gráfico com vários pontos de dados, com base em recursos especificados pelos eixos X e Y. Os pontos de dados no gráfico podem ser divididos grosseiramente em dois clusters diferentes, e o cluster ao qual um ponto de dados pertence indica a classe do ponto de dados. Agora, suponha que queremos desenhar uma linha no gráfico que separe as duas classes uma da outra, com todos os pontos de dados de uma classe encontrados em um lado da linha e todos os pontos de dados pertencentes a outra classe encontrados no outro lado da linha. Essa linha de separação é conhecida como hiperplano.

Você pode pensar em uma máquina de vetor de suporte como criando “ruas” em uma cidade, separando a cidade em distritos de um ou de outro lado da rua. Todos os prédios (pontos de dados) que estão em um lado da rua pertencem a um distrito.

O objetivo de uma máquina de vetor de suporte não é apenas desenhar hiperplanos e dividir pontos de dados, mas desenhar o hiperplano que separa os pontos de dados com a maior margem, ou com o mais espaço entre a linha de divisão e qualquer ponto de dados. Voltando à metáfora das “ruas”, se um planejador urbano desenha planos para uma rodovia, ele não quer que a rodovia fique muito perto de casas ou outros prédios. Quanto maior a margem entre a rodovia e os prédios de um ou de outro lado, melhor. Quanto maior essa margem, mais “confiante” o classificador pode ser sobre suas previsões. No caso de classificação binária, desenhar o hiperplano correto significa escolher um hiperplano que esteja exatamente no meio das duas classes diferentes. Se o limite de decisão/hiperplano estiver mais longe de uma classe, estará mais perto de outra. Portanto, o hiperplano deve equilibrar a margem entre as duas classes.

Calculando o Hiperplano de Separação

Como uma máquina de vetor de suporte determina o melhor hiperplano de separação/limite de decisão? Isso é realizado calculando hiperplanos possíveis usando uma fórmula matemática. Não vamos cobrir a fórmula para calcular hiperplanos em detalhes extremos, mas a linha é calculada com a famosa fórmula de inclinação/linha:

Y = ax + b

Enquanto as linhas são feitas de pontos, o que significa que qualquer hiperplano pode ser descrito como: o conjunto de pontos que correm paralelos ao hiperplano proposto, conforme determinado pelos pesos do modelo vezes o conjunto de recursos modificados por um deslocamento/bias (“d”) especificado.

SVMs desenham muitos hiperplanos. Por exemplo, a linha de limite é um hiperplano, mas os pontos de dados que o classificador considera também estão em hiperplanos. Os valores para x são determinados com base nos recursos no conjunto de dados. Por exemplo, se você tivesse um conjunto de dados com as alturas e pesos de muitas pessoas, os recursos “altura” e “peso” seriam os recursos usados para calcular o “X”. As margens entre o hiperplano proposto e os vários “vetores de suporte” (pontos de dados) encontrados em um ou em outro lado do hiperplano de divisão são calculadas com a seguinte fórmula:

W * X – b

Embora você possa ler mais sobre a matemática por trás das SVMs, se você está procurando por uma compreensão mais intuitiva delas, basta saber que o objetivo é maximizar a distância entre o hiperplano de separação proposto/limite de decisão e os outros hiperplanos que correm paralelos a ele (e nos quais os pontos de dados são encontrados).

Foto: ZackWeinberg via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Classificação Multiclasse

O processo descrito até agora se aplica a tarefas de classificação binária. No entanto, classificadores SVM também podem ser usados para tarefas de classificação não binárias. Quando se faz classificação SVM em um conjunto de dados com três ou mais classes, mais linhas de limite são usadas. Por exemplo, se uma tarefa de classificação tiver três classes em vez de duas, duas linhas de divisão serão usadas para dividir os pontos de dados em classes e a região que compõe uma única classe cairá entre duas linhas de divisão em vez de uma. Em vez de calcular apenas a distância entre duas classes e um limite de decisão, o classificador deve considerar agora as margens entre os limites de decisão e as múltiplas classes dentro do conjunto de dados.

Separações Não Lineares

O processo descrito acima se aplica a casos em que os dados são linearmente separáveis. Note que, na realidade, conjuntos de dados quase nunca são completamente linearmente separáveis, o que significa que, ao usar um classificador SVM, você frequentemente precisará usar duas técnicas diferentes: margem suave e truques de kernel. Considere uma situação em que pontos de dados de classes diferentes estão misturados, com algumas instâncias pertencentes a uma classe no “cluster” de outra classe. Como você poderia ter o classificador lidar com essas instâncias?

Uma tática que pode ser usada para lidar com conjuntos de dados não linearmente separáveis é a aplicação de um classificador SVM de “margem suave”. Um classificador de margem suave opera aceitando alguns pontos de dados mal classificados. Ele tentará desenhar uma linha que melhor separe os clusters de pontos de dados uns dos outros, pois eles contêm a maioria das instâncias pertencentes às suas respectivas classes. O classificador SVM de margem suave tenta criar uma linha de divisão que equilibre as duas demandas do classificador: precisão e margem. Ele tentará minimizar a classificação errada, enquanto também maximiza a margem.

A tolerância do SVM ao erro pode ser ajustada por meio da manipulação de um hiperparâmetro chamado “C”. O valor de C controla quantos vetores de suporte o classificador considera ao desenhar limites de decisão. O valor de C é uma penalidade aplicada às classificações erradas, significando que quanto maior o valor de C, menos vetores de suporte o classificador leva em consideração e mais estreita a margem.

O truque do kernel transforma os dados de forma não linear. Foto: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

O Truque do Kernel opera aplicando transformações não lineares aos recursos no conjunto de dados. O Truque do Kernel pega os recursos existentes no conjunto de dados e cria novos recursos por meio da aplicação de funções matemáticas não lineares. O que resulta da aplicação dessas transformações não lineares é um limite de decisão não linear. Como o classificador SVM não está mais restrito a desenhar limites de decisão lineares, ele pode começar a desenhar limites de decisão curvos que melhor encapsulam a distribuição real dos vetores de suporte e minimizam as classificações erradas. Dois dos kernels não lineares SVM mais populares são a Função de Base Radial e o Polinômio. A função polinômica cria combinações polinomiais de todos os recursos existentes, enquanto a Função de Base Radial gera novos recursos medindo a distância entre um ponto central/pontos para todos os outros pontos.

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tópicos. Daniel espera ajudar os outros a usar o poder da IA para o bem social.