Glossário

Máquina de vetor de suporte (SVM)

Descobre o poder das Máquinas de Vectores de Suporte (SVMs) para classificação, regressão e deteção de valores atípicos, com aplicações e conhecimentos do mundo real.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A Máquina de Vectores de Suporte (SVM) é um algoritmo de Aprendizagem Automática (ML) supervisionado popular e poderoso, utilizado principalmente para tarefas de classificação, embora também seja eficaz para regressão (Regressão de Vectores de Suporte - SVR) e deteção de outlier. Desenvolvidos na década de 1990, os SVMs funcionam encontrando um limite ótimo, denominado hiperplano, que melhor separa os pontos de dados pertencentes a diferentes classes num espaço de elevada dimensão. A ideia principal é maximizar a margem - a distância entre o hiperplano e os pontos de dados mais próximos (vectores de apoio) de cada classe - o que conduz frequentemente a um bom desempenho de generalização em dados não vistos.

Como funciona o Svm

O princípio fundamental do SVM consiste em encontrar o hiperplano ideal para dividir um conjunto de dados. Para os dados que podem ser separados por uma linha reta ou um plano (dados linearmente separáveis), o SVM identifica o hiperplano que cria o maior intervalo possível entre as classes. Os pontos de dados mais próximos deste hiperplano, que são críticos na definição da sua posição e orientação, são conhecidos como vectores de apoio. Esta concentração nos pontos mais difíceis perto do limite torna as SVMs eficientes em termos de memória, uma vez que apenas estes vectores de apoio são necessários para definir o modelo após o treino.

Para conjuntos de dados em que as classes não podem ser separadas por uma fronteira linear (dados não linearmente separáveis), as SVMs utilizam uma técnica designada por truque do kernel. Este método inteligente permite às SVMs mapear os dados originais para um espaço de dimensão superior, onde uma separação linear pode ser possível, sem calcular explicitamente as coordenadas neste novo espaço. As funções de kernel comuns incluem:

  • Kernel linear: Utilizado para dados linearmente separáveis.
  • Kernel polinomial: Mapeia os dados para um espaço polinomial de grau superior.
  • Kernel de função de base radial (RBF): Uma escolha popular que pode lidar com relações complexas, mapeando dados em um espaço infinito-dimensional.
  • Kernel Sigmoide: Semelhante à função de ativação utilizada nas redes neuronais.

A escolha do kernel e dos seus parâmetros é crucial e requer frequentemente uma afinação cuidadosa dos hiperparâmetros.

Relevância e aplicações

As SVMs continuam a ser relevantes apesar da ascensão da Aprendizagem Profunda (AP), particularmente em cenários com dados de elevada dimensão (muitas caraterísticas) mas com amostras de treino limitadas. São conhecidas pelas suas garantias teóricas e robustez, especialmente quando existe uma clara margem de separação. Historicamente, os SVMs combinados com extractores de caraterísticas como o Histograma de Gradientes Orientados (HOG) eram os mais avançados para tarefas como a deteção de objectos, tal como referido na evolução da deteção de objectos.

As aplicações mais comuns incluem:

  • Classificação de imagens: Classifica imagens em categorias predefinidas, como a identificação de dígitos manuscritos ou a distinção entre diferentes tipos de objectos. Por exemplo, um SVM pode ser treinado para classificar imagens médicas como contendo tumores ou não, com base em caraterísticas extraídas.
  • Categorização de texto: Classifica documentos em tópicos, análise de sentimentos (críticas positivas/negativas) e deteção de spam. Por exemplo, classificar artigos de notícias em categorias como "desporto", "política" ou "tecnologia".
  • Deteção de rostos: Identifica rostos em imagens, muitas vezes como um passo preliminar antes do reconhecimento.
  • Bioinformática: Classifica proteínas, genes ou amostras de pacientes com base em dados biológicos complexos.
  • Reconhecimento de escrita à mão: Utilizado em sistemas para reconhecer caracteres manuscritos.

Vantagens e limitações

Vantagens:

  • Eficaz em espaços de elevada dimensão, mesmo quando o número de dimensões excede o número de amostras.
  • São eficientes em termos de memória, uma vez que utilizam apenas um subconjunto de pontos de treino (vectores de apoio) na função de decisão.
  • Versátil devido às diferentes funções do núcleo que permitem a adaptação a vários tipos de dados.
  • Obtém geralmente uma elevada precisão quando as classes estão bem separadas.

Limitações:

  • Pode ser computacionalmente dispendioso e lento para treinar em conjuntos de dados muito grandes.
  • O desempenho depende em grande medida da escolha da função kernel e dos hiperparâmetros.
  • Menos eficaz em conjuntos de dados ruidosos em que as classes se sobrepõem significativamente.
  • As SVMs não fornecem diretamente estimativas de probabilidade; estas requerem um processamento adicional (por exemplo, escalonamento Platt).

Svm Vs. Outros Algoritmos

Em comparação com algoritmos mais simples, como a Regressão Logística, os SVMs visam maximizar a margem em vez de apenas encontrar um limite de separação, o que pode levar a uma melhor generalização. Ao contrário das Árvores de Decisão ou das Florestas Aleatórias, as SVMs constroem um único hiperplano ótimo. Enquanto os modelos modernos de aprendizagem profunda, como o Ultralytics YOLO são excelentes na extração automática de caraterísticas a partir de dados brutos (como pixéis na visão computacional), as SVMs requerem frequentemente uma engenharia cuidadosa das caraterísticas, mas podem ter um bom desempenho em conjuntos de dados mais pequenos ou em tipos específicos de dados estruturados. Implementações populares incluem LibSVM e o módulo SVM no scikit-learn. O treino e a gestão destes modelos podem ser simplificados utilizando plataformas como o Ultralytics HUB.

Lê tudo