Uma máquina de vetores de suporte (SVM) é um algoritmo supervisionado de aprendizado de máquina que classifica dados encontrando uma linha ou hiperplano ótimo que maximiza a distância entre cada classe em um espaço N-dimensional.
As SVMs foram desenvolvidas na década de 1990 por Vladimir N. Vapnik e seus colegas, e eles publicaram esse trabalho em um artigo intitulado "Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing"1 em 1995.
As SVMs são comumente usadas em problemas de classificação. Eles distinguem duas classes encontrando o hiperplano ideal que maximiza a margem entre os pontos de dados mais próximos de classes opostas. O número de atributos dos dados de entrada determina se o hiperplano é uma linha em um espaço 2D ou um plano em um espaço n-dimensional. Como vários hiperplanos podem ser encontrados para diferenciar as classes, maximizar a margem entre os pontos permite que o algoritmo encontre o melhor limite de decisão entre as classes. Isso, por sua vez, permite uma boa generalização dos novos dados e a realização de previsões de classificação precisas. As linhas adjacentes ao hiperplano ideal são conhecidas como vetores de suporte, pois esses vetores percorrem os pontos de dados que determinam a margem máxima.
O algoritmo SVM é amplamente utilizado no aprendizado de máquina, pois pode lidar com tarefas de classificação linear e não linear. No entanto, quando os dados não são linearmente separáveis, funções de kernel são usadas para transformar os dados em um espaço de maior dimensão, permitindo a separação linear. Essa aplicação de funções de kernel é conhecida como o "truque do kernel", e a escolha da função de kernel, como kernels lineares, kernels polinomiais, kernels de função base radial (RBF) ou kernels sigmoides, depende das características dos dados e do caso de uso específico.
As SVMs lineares são usadas com dados linearmente separáveis, o que significa que os dados não precisam passar por transformações para serem separados em diferentes classes. O limite de decisão e os vetores de suporte formam a aparência de uma rua, e o professor Patrick Winston, do MIT, usa a analogia do "ajuste da rua mais larga possível"2 (link fora de ibm.com) para descrever esse problema de otimização quadrática. Matematicamente, esse hiperplano separador pode ser representado como:
wx + b = 0
em que w é o vetor de peso, x é o vetor de entrada e b é o termo de viés.
Há duas abordagens para calcular a margem, ou a distância máxima entre as classes, que são a classificação com margem rígida e a classificação com margem flexível. Se usarmos uma SVM de margem rígida, os pontos de dados serão perfeitamente separados fora dos vetores de suporte, ou "fora da rua" segundo a analogia do professor Hinton. Isso é representado pela fórmula,
(wxj + b) yj ≥ a,
E, em seguida, a margem é maximizada, o que é representado como: max ɣ = a / ||w||, onde é a margem projetada sobre w.
A classificação de margem flexível, como o próprio nome diz, é mais flexível, permitindo alguns erros de classificação por meio do uso de variáveis de folga ('ξ'). O hiperparâmetro, C, ajusta a margem; um valor C maior estreita a margem para a classificação incorreta mínima, enquanto um valor C menor a amplia, permitindo a classificação incorreta de mais dados3.
Grande parte dos dados em cenários do mundo real não são separáveis de forma linear, e é aí que as SVMs não lineares entram em ação. A fim de tornar os dados separáveis de forma linear, métodos de pré-processamento são aplicados aos dados de treinamento para transformá-los em um espaço de atributos de maior dimensão. Dito isso, os espaços dimensionais superiores são capazes de criar mais complexidade, aumentando o risco de sobreajuste dos dados e aumentando a exigência computacional. O "truque do kernel" ajuda a reduzir parte dessa complexidade, tornando a computação mais eficiente, e faz isso substituindo os cálculos de produto escalar por uma função de kernel equivalente4.
Existem diversos tipos de kernels que podem ser aplicados para classificar dados. Algumas funções de kernel populares incluem:
Kernel polinomial
Kernel de função de base radial (também conhecido como kernel gaussiano ou RBF)
Kernel Sigmoide
A regressão por vetores de suporte (SVR) é uma extensão das SVMs, aplicada a problemas de regressão (ou seja, o resultado é contínuo). De modo semelhante às SVMs lineares, o SVR encontra um hiperplano com a margem máxima entre os pontos de dados e é normalmente usado para a previsão de séries temporais.
O SVR difere da regressão linear porque é necessário especificar a relação que se deseja entender entre as variáveis independentes e dependentes. Compreender as relações entre variáveis e suas direções é valioso ao usar a regressão linear. Isso não é necessário para os SVRs, pois eles determinam essas relações automaticamente.
Nesta seção, discutiremos o processo de desenvolvimento de um classificador SVM, como ele se compara a outros algoritmos de aprendizado supervisionado e suas aplicações no setor atualmente.
Como em outros modelos de aprendizado de máquina, comece dividindo seus dados em um conjunto de treinamento e um conjunto de teste. Observação: pressupõe-se que você já tenha realizado uma análise exploratória em seus dados. Embora isso não seja tecnicamente necessário para criar um classificador SVM, é uma boa prática antes de usar qualquer modelo de aprendizado de máquina, pois isso ajudará na compreensão de quaisquer dados ausentes ou valores discrepantes.
Importe um módulo SVM da biblioteca de sua escolha, como scikit-learn (link fora de ibm.com). Treine suas amostras de treinamento no classificador e preveja a resposta. Você pode avaliar o desempenho comparando a precisão do conjunto de testes com os valores previstos. É recomendável usar outras métricas de avaliação, como f1-score, precisão ou recall.
Os hiperparâmetros podem ser ajustados para melhorar o desempenho de um modelo SVM. Os hiperparâmetros ideais podem ser encontrados usando métodos de pesquisa de grade e validação cruzada, que irão iterar diferentes valores de kernel, regularização (C) e gama para encontrar a melhor combinação.
Diferentes classificadores de aprendizado de máquina podem ser usados para o mesmo caso de uso. É importante testar e avaliar diferentes modelos para entender quais funcionam melhor. Dito isso, pode ser útil entender os pontos fortes e fracos de cada um para avaliar sua aplicação em seu caso de uso.
Os classificadores Naive Bayes e SVM são comumente usados em tarefas de classificação de texto. As SVMs tendem a ter um desempenho melhor do que o Naive Bayes quando os dados não são separáveis de forma linear. Dito isso, as SVMs precisam se ajustar a diferentes hiperparâmetros e podem ser mais custosas em termos computacionais.
As SVMs geralmente têm um desempenho melhor com conjuntos de dados de alta dimensão e não estruturados, como dados de imagem e texto, em comparação com a regressão logística. As SVMs também são menos sensíveis ao overfitting e mais fáceis de interpretar. Dito isso, elas podem ser mais custosas em termos computacionais.
As SVMs têm melhor desempenho com dados de alta dimensão e são menos propensas a sobreajustes em comparação às árvores de decisão. Dito isso, as árvores de decisão geralmente são mais rápidas de treinar, principalmente com conjuntos de dados menores, e geralmente são mais fáceis de interpretar.
Semelhante a outras comparações de modelos, as SVMs são mais caras computacionalmente para treinar e menos propensas ao sobreajuste, mas as redes neurais são consideradas mais flexíveis e escaláveis.
Embora as SVMs possam ser aplicadas a diversas tarefas, estas são algumas das aplicações mais populares das SVMs em diferentes setores.
A SVMs são comumente usadas em processamento de linguagem natural (NLP) para tarefas como análise de sentimento, detecção de spam e modelagem de tópicos. Elas se adequam bem a esses dados porque têm um bom desempenho com dados de alta dimensão.
As SVMs são aplicadas em tarefas de classificação de imagens, como detecção de objetos e recuperação de imagens. Também podem ser úteis em domínios de segurança, classificando uma imagem como adulterada, por exemplo.
As SVMs também são usadas na classificação de proteínas, análise de expressão gênica e diagnóstico de doenças. As SVMs são frequentemente aplicadas na pesquisa de câncer (link fora de ibm.com) porque podem detectar tendências sutis em conjuntos de dados complexos.
As SVMs podem analisar estruturas geofísicas em camadas no subsolo, filtrando o "ruído" dos dados eletromagnéticos. Eles também ajudaram a prever o potencial de liquefação sísmica do solo, o que é relevante para o campo da engenharia civil.
O IBM® Granite é nossa família de modelos de IA abertos, de alto desempenho e confiáveis, personalizados para a empresa e otimizados para escalar suas aplicações de IA. Explore as opções de linguagem, código, séries temporais e proteções.
Entrevistamos duas mil organizações a respeito de suas iniciativas de IA para descobrir o que está funcionando, o que não está e como se preparar.
Explore abordagens de aprendizado supervisionado, como máquinas de vetores de suporte e classificadores probabilísticos.
Aprenda conceitos fundamentais e desenvolva suas habilidades com laboratórios práticos, cursos, projetos guiados, avaliações e muito mais.
Saiba como selecionar o modelo de base de IA mais adequado para seu caso de uso.
Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.
Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.
Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.
Todos os links levam para fora do site ibm.com
2 Palestra 16; notas sobre máquinas de vetores de suporte, Patrick Winston, MIT, 2010
3 Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002
4 Support vector machines, Sontag, David, Universidade de Nova York