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 outliers. Desenvolvidos na década de 1990, os SVMs, detalhados na Wikipédia, 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 suporte) 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 é encontrar o hiperplano ideal para dividir um conjunto de dados. Para 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 dos dados de treino 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. Este enfoque 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:

  • Linear: Para dados linearmente separáveis.
  • Polinomial: Mapeia dados para dimensões superiores utilizando funções polinomiais.
  • Função de base radial (RBF): Uma escolha popular para relações complexas e não lineares.
  • Sigmoide: Semelhante à função de ativação utilizada nas redes neuronais (NN).

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: Categoriza imagens com base no seu conteúdo (por exemplo, distinguir entre diferentes tipos de flores ou animais). Os SVMs podem ser eficazes quando utilizados com caraterísticas artesanais extraídas de imagens, particularmente em conjuntos de dados de tamanho moderado.
  • Categorização de texto: Classifica documentos de texto em categorias predefinidas, como a deteção de e-mails de spam ou a análise de sentimentos de comentários de clientes. As SVMs lidam bem com dados de texto de alta dimensão (como caraterísticas TF).
  • Bioinformática: Utilizado para tarefas como a classificação de proteínas ou o diagnóstico de cancro com base em dados de expressão genética, em que o número de caraterísticas pode ser muito grande em comparação com o número de amostras.
  • Reconhecimento facial: Identifica ou verifica indivíduos com base em caraterísticas faciais, muitas vezes como parte de um sistema maior.

Vantagens e limitações

Vantagens:

  • Eficaz em dimensões elevadas: Tem um bom desempenho mesmo quando o número de caraterísticas é maior do que o número de amostras.
  • Eficiente em termos de memória: Usa apenas um subconjunto de pontos de treinamento (vetores de suporte) na função de decisão.
  • Versátil: Podem ser especificadas diferentes funções de kernel para a função de decisão, permitindo flexibilidade no tratamento de vários tipos de dados.
  • Boa generalização: O objetivo de maximização da margem conduz frequentemente a modelos com boa precisão em dados não vistos.

Limitações:

  • Computacionalmente intensivo: O treino pode ser lento em conjuntos de dados muito grandes.
  • Sensibilidade do kernel e dos parâmetros: O desempenho depende fortemente da escolha do kernel e dos seus parâmetros (por exemplo, C, gama), exigindo uma afinação cuidadosa.
  • Desempenho fraco com classes sobrepostas: Não é ideal se as classes de dados se sobrepuserem significativamente.
  • Não há estimativas diretas de probabilidade: As SVMs padrão produzem atribuições de classes, mas não pontuações de probabilidade diretas. São necessárias técnicas como o escalonamento Platt para calibrar os resultados da SVM em probabilidades.

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 dos métodos baseados em árvores, como as Árvores de Decisão ou as Florestas Aleatórias, as SVMs constroem um único hiperplano ótimo (possivelmente num espaço de elevada dimensão). Embora 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 por computador (CV)), as SVM requerem frequentemente uma engenharia cuidadosa das caraterísticas, mas podem ter um desempenho excecional em conjuntos de dados mais pequenos ou em tipos específicos de dados estruturados em que as caraterísticas estão bem definidas. As implementações mais populares incluem a LibSVM e o módulo SVM do scikit-learn. O treino e a gestão destes modelos, juntamente com vários outros, podem ser optimizados utilizando plataformas como o Ultralytics HUB, que simplifica o ciclo de vida dos MLOps.

Lê tudo