Compartilhamento de tecnologia

[Aprendizado de Máquina] 12. Explicação do princípio do algoritmo da Support Vector Machine (SVM - Support Vector Machine), um dos dez principais algoritmos

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1·Resumo

Insira a descrição da imagem aqui

A máquina de vetores de suporte (SVM) é um algoritmo eficiente de aprendizado supervisionado amplamente utilizado em problemas de classificação e regressão. Ele distingue diferentes categorias de pontos de dados, encontrando um hiperplano ideal no espaço de características. O objetivo é maximizar o intervalo entre dois tipos de pontos de dados, melhorando assim a capacidade de generalização do modelo. Os principais conceitos do SVM incluem hiperplanos, intervalos, vetores de suporte e funções do kernel. A função do kernel permite que o SVM lide com problemas não lineares e encontre hiperplanos linearmente separáveis, mapeando dados para um espaço de dimensão superior. Além disso, técnicas de margem suave e regularização são usadas para lidar com a separabilidade linear não completa dos dados, ao mesmo tempo que controlam a complexidade do modelo e evitam o sobreajuste. A implementação do SVM envolve a seleção de uma função de kernel apropriada, a construção e resolução de um problema de programação quadrática convexa e a avaliação e aplicação do modelo treinado. Suas vantagens são que o modelo é simples, fácil de implementar e tem boa capacidade de generalização, mas possui alta complexidade computacional, é sensível à função do kernel e à seleção de parâmetros e pode encontrar gargalos de desempenho ao processar conjuntos de dados em grande escala.

2. Introdução pessoal

🏘️🏘️个人主页:Usando montanhas e rios como presente
🎖️🎖️:Criador Rising Star na área de Python, certificação CSDN Rising Star, parceiro de conteúdo CSDN, blogueiro especialista da comunidade Alibaba Cloud, mentor do programa Rising Star e analista de dados no trabalho.

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

Insira a descrição da imagem aqui

🐘 希望大家能持续支持,共同向前迈进!😁
Se você acha que o artigo é valioso,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐

3. Conceitos básicos

Support Vector Machine (SVM) é um poderoso algoritmo de aprendizado de máquina usado principalmente para resolver problemas de classificação e regressão. Baseia-se no princípio de minimização de risco estrutural na teoria da aprendizagem estatística e distingue diferentes categorias de dados, encontrando um limite de decisão ideal, ou seja, um hiperplano, no espaço de recursos. A escolha deste hiperplano visa maximizar a menor distância dos pontos de dados ao hiperplano, que é chamada de margem. Quanto maior o intervalo, melhor é geralmente a capacidade de generalização do modelo.

O núcleo do SVM é o vetor de suporte, que é um conjunto de pontos de dados críticos para determinar a posição e direção do hiperplano. Eles são os pontos mais próximos do hiperplano. Se os dados não forem linearmente separáveis, o SVM mapeia os dados originais para um espaço de dimensão superior introduzindo uma função de kernel e encontra um hiperplano linearmente separável neste novo espaço. As funções de kernel comumente usadas incluem kernels lineares, kernels polinomiais, kernels de função de base radial (RBF), etc.

Para lidar com ruídos e valores discrepantes nos dados, o SVM introduz o conceito de margem suave, que permite que alguns pontos de dados sejam classificados incorretamente em troca de um melhor desempenho de generalização. Ao mesmo tempo, a complexidade do modelo é controlada através de termos de regularização para evitar overfitting. O processo de treinamento do SVM geralmente envolve a resolução de um problema de programação quadrática convexa para encontrar os parâmetros ideais do hiperplano.

Veja a figura abaixo Em um ambiente bidimensional, os pontos R, S, G e outros pontos próximos à linha preta central podem ser considerados vetores de suporte. Eles podem determinar os parâmetros específicos do classificador, ou seja, o preto. linha.
Insira a descrição da imagem aqui

4. Vetores de suporte e hiperplanos

Vetores de suporte e hiperplanos são conceitos centrais no algoritmo da máquina de vetores de suporte (SVM). Abaixo explicarei esses dois conceitos em detalhes:

4.1 Hiperplano

Em matemática, um hiperplano é um subespaço linear que possui uma dimensão inferior ao espaço em que reside. Por exemplo, no espaço bidimensional, um hiperplano é uma linha reta no espaço tridimensional, é um plano no espaço de dimensão superior, ainda é um limite linear, mas pode ser difícil de entender intuitivamente;

No SVM, o hiperplano é usado para classificar os dados em diferentes categorias. Para um espaço bidimensional, você pode imaginar um hiperplano como uma linha reta que divide o espaço em duas partes, cada parte contendo uma categoria de pontos de dados. Para espaços de dimensões superiores, um hiperplano é um limite linear de dimensão superior que também separa pontos de dados.

4.2 Vetores de Suporte

Vetores de suporte são os pontos de dados localizados mais próximos do hiperplano. Eles são os principais pontos de dados usados ​​pelo SVM durante o treinamento para determinar a localização do hiperplano. Se você remover qualquer um desses pontos, a posição e a orientação do hiperplano serão alteradas.

Os vetores de suporte são importantes porque definem os limites (ou seja, intervalos) entre os pontos de dados. O objetivo do SVM é encontrar um hiperplano que maximize a distância (intervalo) entre os vetores de suporte mais próximos (ou seja, os pontos de dados mais próximos do hiperplano) e o hiperplano. O tamanho deste intervalo é um importante indicador da capacidade de generalização do modelo.

4.3 Truque do Kernel

Em aplicações reais, os dados podem não ser linearmente separáveis. Neste momento, o SVM pode usar técnicas de kernel para lidar com problemas não lineares. A função kernel pode mapear os dados originais para um espaço de dimensão superior e encontrar um hiperplano linearmente separável no novo espaço. As funções de kernel comumente usadas incluem kernels lineares, kernels polinomiais, kernels de função de base radial (RBF), etc.

4.4 Margem suave e regularização

Ao lidar com dados reais, pode não ser possível encontrar um hiperplano perfeito que separe completamente todos os pontos de dados. Neste momento, o SVM introduziu o conceito de margem suave, permitindo que alguns pontos de dados fossem classificados incorretamente em troca de melhores capacidades de generalização. Ao mesmo tempo, a complexidade do modelo é controlada através do termo de regularização (geralmente a norma do vetor normal) para evitar overfitting.

Insira a descrição da imagem aqui

5. Princípio do algoritmo SVM

5.1 Fórmula de distância do ponto ao hiperplano

A fórmula da distância ponto-hiperplano é usada para calcular a distância mais curta de um ponto a um determinado hiperplano. O hiperplano pode ser expresso pela seguinte equação no espaço n-dimensional:
Insira a descrição da imagem aqui
em:
w é um vetor normal n-dimensional, perpendicular ao hiperplano.
x é um ponto n-dimensional localizado no espaço.
b é o termo de polarização do hiperplano.
A distância vertical d do ponto x a este hiperplano pode ser calculada pela seguinte fórmula:
Insira a descrição da imagem aqui
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Modelo de otimização de intervalo máximo

Modelo de otimização em caso linearmente separável
Quando os dados são linearmente separáveis, ou seja, existe um hiperplano que pode separar perfeitamente diferentes categorias de pontos de dados, o objetivo do SVM é encontrar um hiperplano tal que os dois pontos de dados mais próximos (isto é, vetores de suporte) estejam no hiperplano. Maximize a distância. Essa distância é chamada de margem.
O hiperplano pode ser expresso como:
Insira a descrição da imagem aqui
Problema de otimização de margem máxima
A função objetivo do SVM é maximizar o intervalo, que pode ser expresso como:
Insira a descrição da imagem aqui
Insira a descrição da imagem aquiApresentando multiplicadores de Lagrange
Insira a descrição da imagem aqui
problema duplo
Insira a descrição da imagem aqui

6. Variáveis ​​de folga

Nas máquinas de vetores de suporte (SVM), variáveis ​​de folga (Slack Variables) são um mecanismo introduzido para lidar com situações separáveis ​​não lineares em conjuntos de dados. Em uma situação ideal, se os dados forem linearmente separáveis, o SVM poderá encontrar um hiperplano que separe completamente diferentes classes de pontos de dados enquanto maximiza a margem. No entanto, no mundo real, muitos conjuntos de dados não são completamente separáveis ​​linearmente, o que requer o uso de variáveis ​​de folga para permitir que alguns pontos de dados sejam classificados incorretamente, melhorando assim a capacidade de generalização do modelo.Insira a descrição da imagem aqui

6.1 Definição de variáveis ​​de folga

Insira a descrição da imagem aqui

6.2 Modificação do modelo de otimização

Insira a descrição da imagem aqui
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Margens suaves e margens duras

  • Margem rígida: SVM que não introduz variáveis ​​de folga exige que todos os pontos de dados estejam fora ou no limite da margem, ou seja, nenhuma classificação incorreta é permitida.
  • Margem Suave: SVM introduz variáveis ​​de folga, permitindo que alguns pontos de dados fiquem dentro do limite da margem, ou seja, permitindo um certo grau de classificação incorreta. Truques de kernel e variáveis ​​de folga.

6.4 Truques do kernel e variáveis ​​de folga

Mesmo no caso de separabilidade não linear, usando o truque do kernel para mapear os dados em um espaço de alta dimensão, combinado com variáveis ​​de folga, o SVM ainda pode encontrar o hiperplano com a margem máxima.

7. Função do kernel

A função Kernel é uma ferramenta importante na máquina de vetores de suporte (SVM), que permite ao SVM lidar efetivamente com problemas não lineares em espaços de alta dimensão. A ideia básica da função kernel é mapear os dados originais de um espaço de baixa dimensão para um espaço de alta dimensão por meio do mapeamento e encontrar a separabilidade linear dos dados neste espaço de alta dimensão.
Insira a descrição da imagem aqui

7.1 Conceitos básicos da função kernel

Insira a descrição da imagem aqui

7.2 Funções de kernel comumente usadas

Insira a descrição da imagem aqui

7.3 O papel da função kernel

  1. Lidar com problemas não lineares: Ao mapear para o espaço de alta dimensão, a função do kernel torna os dados que são originalmente linearmente inseparáveis ​​no espaço de baixa dimensão linearmente separáveis ​​no espaço de alta dimensão.
  2. Melhorar a capacidade expressiva do modelo: Diferentes funções do kernel podem capturar diferentes características dos dados e melhorar a capacidade expressiva do modelo.
  3. Reduza a complexidade computacional: O uso de funções do kernel pode evitar cálculos diretos em espaços de alta dimensão, reduzindo assim a complexidade computacional.