Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Support Vector Machine (SVM)

Uma máquina de vetores de suporte (SVM) separa classes com o hiperplano de maior margem e usa kernels para limites curvos. Veja como funciona, como ajustar e o código.

Uma máquina de vetores de suporte (SVM) é um algoritmo de aprendizado supervisionado que classifica dados ao encontrar o hiperplano que separa duas classes com a maior margem possível, isto é, o espaço entre a fronteira e os pontos de treinamento mais próximos de cada classe. Esses pontos mais próximos, os vetores de suporte, são os únicos exemplos de treinamento que determinam a fronteira. As funções de kernel permitem que as SVMs aprendam fronteiras curvas, e as variantes lidam com regressão e detecção de valores atípicos. Vladimir Vapnik e colegas desenvolveram o método nos AT&T Bell Labs, com a versão de kernel em 1992 e a formulação de margem flexível usada hoje publicada por Cortes e Vapnik em 1995. Antes do aprendizado profundo, as SVMs estavam entre os classificadores mais precisos para texto, imagens e dados biológicos, e continuam sendo eficazes em conjuntos de dados pequenos a médios com muitos atributos.

Como as SVMs funcionam#

Uma SVM linear prevê a classe pelo sinal de w·x + b, portanto sua fronteira de decisão é o hiperplano w·x + b = 0; com os pesos escalados para que os pontos mais próximos satisfaçam |w·x + b| = 1, a margem tem largura de 2/‖w‖. O treinamento maximiza a margem minimizando ‖w‖² e exigindo que cada ponto de treinamento fique do lado correto dela. As classes reais se sobrepõem, então a SVM de margem flexível permite que os pontos atravessem a margem, a um custo definido pelo parâmetro de regularização C. Sua perda hinge não cobra nada por pontos classificados corretamente além da margem e aplica aos demais uma penalidade que cresce linearmente com a violação. Um C pequeno tolera mais violações e produz uma margem mais ampla e suave, enquanto um C grande se ajusta mais aos dados de treinamento, com maior risco de sobreajuste. No modelo treinado, apenas os pontos sobre a margem ou do lado errado dela têm peso diferente de zero; esses são os vetores de suporte, e mover qualquer outro ponto sem cruzar a margem não altera a fronteira.

O truque do kernel#

Quando nenhum hiperplano separa as classes, mapear os dados para mais dimensões pode torná-las separáveis: dois anéis concêntricos em 2D tornam-se separáveis por um plano reto quando um terceiro atributo, x₁² + x₂², mede a distância de cada ponto ao centro. Na forma dual, o treinamento e a previsão das SVMs usam os dados apenas por meio de produtos escalares entre pares de pontos, de modo que uma função de kernel k(x, x′) pode retornar diretamente o produto escalar no espaço mapeado, sem nunca calcular as coordenadas mapeadas. Esse é o truque do kernel. Os kernels comuns são linear, polinomial e a função de base radial (RBF), exp(−γ‖x − x′‖²), em que γ define o alcance da influência de cada vetor de suporte. Este exemplo ajusta o SVC do scikit-learn com um kernel linear e um kernel RBF em dois anéis concêntricos:

from sklearn.datasets import make_circles
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

# Two concentric rings: no straight line separates the classes
X, y = make_circles(n_samples=500, factor=0.4, noise=0.1, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

for kernel in ("linear", "rbf"):
    clf = SVC(kernel=kernel, C=1.0)
    clf.fit(X_train, y_train)
    print(f"{kernel}: test accuracy {clf.score(X_test, y_test):.2f}, support vectors {clf.n_support_.sum()}")

O kernel linear obtém 0,43 nos pontos de teste, um resultado pior do que um palpite, e mantém 360 dos 375 pontos de treinamento como vetores de suporte. O kernel RBF separa os anéis perfeitamente (1,00) com apenas 42 vetores de suporte.

Como escolher um kernel e hiperparâmetros#

As distâncias e os produtos escalares dependem da escala dos atributos, por isso as entradas da SVM são primeiro padronizadas. O guia prático dos autores do LIBSVM, a biblioteca por trás do SVC do scikit-learn, recomenda escalar os atributos, começar com o kernel RBF e escolher C e γ por busca em grade com validação cruzada. Quando há muito mais atributos do que amostras, como em textos, um kernel linear tem desempenho semelhante e treina muito mais rápido. O tempo de treinamento das SVMs com kernel cresce pelo menos quadraticamente com o número de amostras; por isso, acima de dezenas de milhares de amostras, SVMs lineares ou atributos de kernel aproximados substituem o modelo de kernel exato.

SVMs em visão computacional#

A visão computacional clássica combinava atributos projetados manualmente com SVMs lineares. O detector de pedestres de Dalal e Triggs, de 2005, pontuava histogramas de gradientes orientados (HOG) com uma SVM linear, e o detector de objetos R-CNN de 2014 classificava atributos CNN de cada proposta de região com uma SVM linear por classe, até que o Fast R-CNN as substituiu em 2015 por uma camada softmax treinada junto com a rede. Os detectores modernos aprendem os atributos e o classificador em conjunto, e as SVMs continuam sendo usadas como classificadores rápidos em atributos fixos. Uma SVM linear treinada com os vetores retornados por YOLO26 de model.embed(), um embedding por imagem, é uma sonda linear que adiciona uma nova categoria de imagem sem retreinar a rede.

Aplicações#

  • Classificação de texto: Vetores de contagem de palavras têm dezenas de milhares de dimensões esparsas, nas quais SVMs lineares separam tópicos, spam e sentimento com precisão, uma vantagem demonstrada por Thorsten Joachims na categorização de texto em 1998.
  • Bioinformática: Estudos de expressão gênica classificam tumores a partir de milhares de genes medidos e apenas dezenas ou centenas de pacientes, uma situação em que a margem limita o sobreajuste; kernels de strings comparam sequências de proteínas diretamente.
  • Detecção de anomalias: Uma SVM de uma classe aprende uma fronteira apenas em torno dos dados normais e sinaliza pontos fora dela, o que é adequado para fraudes e monitoramento de máquinas, nos quais as falhas são raras demais para serem rotuladas.
  • Regressão: A regressão por vetores de suporte ajusta uma função dentro de um tubo de largura ε, ignora erros menores que ε e mantém como vetores de suporte apenas os pontos dentro ou fora do tubo.
  • K-vizinhos mais próximos (KNN): Armazena todo o conjunto de treinamento e compara cada novo ponto com seus vizinhos no momento da previsão, enquanto uma SVM mantém apenas os vetores de suporte.
  • Árvores de decisão e florestas aleatórias: Dividem os dados considerando um atributo por vez, não precisam de escala dos atributos e lidam com colunas numéricas e categóricas mistas, enquanto as SVMs precisam de entradas numéricas e escaladas.
  • Redes neurais: Aprendem o mapeamento de atributos a partir dos dados, em vez de fixá-lo com um kernel, o que permite escalar para milhões de imagens, onde as SVMs com kernel ficam lentas demais.
  • Regressão logística: Também aprende uma fronteira linear, mas minimiza a perda logarítmica em todos os pontos de treinamento e produz probabilidades. Uma SVM produz distâncias com sinal em relação à fronteira, e o SVC do scikit-learn gera probabilidades apenas com probability=True, que ajusta a escala de Platt por meio de uma validação cruzada interna de 5 partições.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina