Partage de technologie

[Machine Learning] 12. Explication du principe de l'algorithme de Support Vector Machine (SVM - Support Vector Machine), l'un des dix principaux algorithmes

2024-07-12

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

1·Résumé

Insérer la description de l'image ici

La machine à vecteurs de support (SVM) est un algorithme d'apprentissage supervisé efficace largement utilisé dans les problèmes de classification et de régression. Il distingue différentes catégories de points de données en trouvant un hyperplan optimal dans l'espace des fonctionnalités. L'objectif est de maximiser l'intervalle entre deux types de points de données, améliorant ainsi la capacité de généralisation du modèle. Les concepts clés de SVM incluent les hyperplans, les intervalles, les vecteurs de support et les fonctions du noyau. La fonction du noyau permet à SVM de gérer des problèmes non linéaires et de trouver des hyperplans linéairement séparables en mappant les données sur un espace de dimension supérieure. De plus, des techniques de marge souple et de régularisation sont utilisées pour gérer la séparabilité linéaire incomplète des données, tout en contrôlant la complexité du modèle et en empêchant le surajustement. La mise en œuvre de SVM implique la sélection d'une fonction de noyau appropriée, la construction et la résolution d'un problème de programmation quadratique convexe, ainsi que l'évaluation et l'application du modèle formé. Ses avantages sont que le modèle est simple, facile à mettre en œuvre et possède une bonne capacité de généralisation, mais il présente une complexité de calcul élevée, est sensible à la fonction du noyau et à la sélection des paramètres et peut rencontrer des goulots d'étranglement en termes de performances lors du traitement d'ensembles de données à grande échelle.

2. Présentation personnelle

🏘️🏘️个人主页:Utiliser les montagnes et les rivières comme cadeau
🎖️🎖️:Créateur étoile montante dans le domaine Python, certification CSDN Rising Star, partenaire de contenu CSDN, blogueur expert de la communauté Alibaba Cloud, mentor du programme Rising Star et analyste de données sur le terrain.

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

Insérer la description de l'image ici

🐘 希望大家能持续支持,共同向前迈进!😁
Si vous pensez que l'article est utile,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐

3. Notions de base

Support Vector Machine (SVM) est un puissant algorithme d'apprentissage automatique principalement utilisé pour résoudre des problèmes de classification et de régression. Il est basé sur le principe structurel de minimisation des risques dans la théorie de l'apprentissage statistique et distingue différentes catégories de données en trouvant une limite de décision optimale, c'est-à-dire un hyperplan, dans l'espace des fonctionnalités. Le choix de cet hyperplan vise à maximiser la distance la plus courte entre les points de données et l'hyperplan, appelée marge. Plus l’intervalle est grand, meilleure est généralement la capacité de généralisation du modèle.

Le cœur de SVM est le vecteur de support, qui est un ensemble de points de données essentiels pour déterminer la position et la direction de l'hyperplan. Ce sont les points les plus proches de l'hyperplan. Si les données ne sont pas linéairement séparables, SVM mappe les données d'origine sur un espace de dimension supérieure en introduisant une fonction noyau et trouve un hyperplan linéairement séparable dans ce nouvel espace. Les fonctions de noyau couramment utilisées incluent les noyaux linéaires, les noyaux polynomiaux, les noyaux de fonction de base radiale (RBF), etc.

Afin de gérer le bruit et les valeurs aberrantes dans les données, SVM introduit le concept de marge souple, qui permet de mal classer certains points de données en échange de meilleures performances de généralisation. Dans le même temps, la complexité du modèle est contrôlée via des termes de régularisation pour éviter le surajustement. Le processus de formation de SVM implique généralement la résolution d’un problème de programmation quadratique convexe pour trouver les paramètres hyperplan optimaux.

Voir la figure ci-dessous. Dans un environnement bidimensionnel, les points R, S, G et autres points proches de la ligne noire médiane peuvent être considérés comme des vecteurs de support. Ils peuvent déterminer les paramètres spécifiques du classificateur, c'est-à-dire le noir. doubler.
Insérer la description de l'image ici

4. Vecteurs de support et hyperplans

Les vecteurs de support et les hyperplans sont des concepts fondamentaux de l'algorithme de machine à vecteurs de support (SVM). Ci-dessous, j'expliquerai ces deux concepts en détail :

4.1 Hyperplan

En mathématiques, un hyperplan est un sous-espace linéaire qui a une dimension inférieure à l'espace dans lequel il réside. Par exemple, dans un espace à deux dimensions, un hyperplan est une ligne droite ; dans un espace à trois dimensions, c'est un plan ; dans un espace de dimension supérieure, il s'agit toujours d'une frontière linéaire, mais cela peut être difficile à comprendre intuitivement.

Dans SVM, l'hyperplan est utilisé pour classer les données en différentes catégories. Pour un espace bidimensionnel, vous pouvez imaginer un hyperplan comme une ligne droite divisant l'espace en deux parties, chaque partie contenant une catégorie de points de données. Pour les espaces de dimension supérieure, un hyperplan est une limite linéaire de dimension supérieure qui sépare également les points de données.

4.2 Vecteurs de support

Les vecteurs de support sont les points de données situés les plus proches de l'hyperplan. Ce sont les points de données clés utilisés par SVM lors de l'entraînement pour déterminer l'emplacement de l'hyperplan. Si vous supprimez l'un de ces points, cela modifie la position et l'orientation de l'hyperplan.

Les vecteurs de support sont importants car ils définissent les limites (c'est-à-dire les intervalles) entre les points de données. Le but de SVM est de trouver un hyperplan qui maximise la distance (intervalle) entre les vecteurs de support les plus proches (c'est-à-dire les points de données les plus proches de l'hyperplan) et l'hyperplan. La taille de cet intervalle est un indicateur important de la capacité de généralisation du modèle.

4.3 Astuce du noyau

Dans les applications pratiques, les données peuvent ne pas être linéairement séparables. À l'heure actuelle, SVM peut utiliser des techniques de noyau pour résoudre des problèmes non linéaires. La fonction noyau peut mapper les données d'origine vers un espace de dimension supérieure et trouver un hyperplan linéairement séparable dans le nouvel espace. Les fonctions de noyau couramment utilisées incluent les noyaux linéaires, les noyaux polynomiaux, les noyaux de fonction de base radiale (RBF), etc.

4.4 Marge souple et régularisation

Lorsqu’il s’agit de données réelles, il n’est peut-être pas possible de trouver un hyperplan parfait qui sépare complètement tous les points de données. À cette époque, SVM a introduit le concept de marge souple, permettant une mauvaise classification de certains points de données en échange de meilleures capacités de généralisation. Dans le même temps, la complexité du modèle est contrôlée via le terme de régularisation (généralement la norme du vecteur normal) pour éviter le surajustement.

Insérer la description de l'image ici

5. Principe de l'algorithme SVM

5.1 Formule de distance du point à l'hyperplan

La formule de distance point à hyperplan est utilisée pour calculer la distance la plus courte entre un point et un hyperplan donné. L'hyperplan peut être exprimé par l'équation suivante dans un espace à n dimensions :
Insérer la description de l'image ici
dans:
w est un vecteur normal à n dimensions, perpendiculaire à l'hyperplan.
x est un point à n dimensions situé dans l'espace.
b est le terme de biais de l'hyperplan.
La distance verticale d du point x à cet hyperplan peut être calculée par la formule suivante :
Insérer la description de l'image ici
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Modèle d'optimisation de l'intervalle maximum

Modèle d'optimisation dans le cas linéairement séparable
Lorsque les données sont linéairement séparables, c'est-à-dire qu'il existe un hyperplan qui peut parfaitement séparer différentes catégories de points de données, le but de SVM est de trouver un hyperplan tel que les deux points de données les plus proches (c'est-à-dire les vecteurs de support) se trouvent à l'hyperplan. Maximisez la distance. Cette distance est appelée marge.
L'hyperplan peut être exprimé comme suit :
Insérer la description de l'image ici
Problème d'optimisation de la marge maximale
La fonction objective de SVM est de maximiser l’intervalle, qui peut être exprimé comme suit :
Insérer la description de l'image ici
Insérer la description de l'image iciPrésentation des multiplicateurs de Lagrange
Insérer la description de l'image ici
double problème
Insérer la description de l'image ici

6. Variables Slack

Dans les machines à vecteurs de support (SVM), les variables Slack (Slack Variables) sont un mécanisme introduit pour traiter les situations séparables non linéaires dans les ensembles de données. Dans une situation idéale, si les données sont linéairement séparables, SVM peut trouver un hyperplan qui sépare complètement les différentes classes de points de données tout en maximisant la marge. Cependant, dans le monde réel, de nombreux ensembles de données ne sont pas complètement séparables de manière linéaire, ce qui nécessite l'utilisation de variables slack pour permettre une mauvaise classification de certains points de données, améliorant ainsi la capacité de généralisation du modèle.Insérer la description de l'image ici

6.1 Définition des variables de slack

Insérer la description de l'image ici

6.2 Modification du modèle d'optimisation

Insérer la description de l'image ici
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Marges souples et marges fermes

  • Marge dure : SVM qui n'introduit pas de variables slack nécessite que tous les points de données soient à l'extérieur ou sur la limite de la marge, c'est-à-dire qu'aucune erreur de classification n'est autorisée.
  • Marge souple : SVM introduit des variables slack, permettant à certains points de données de se trouver à l'intérieur de la limite de marge, c'est-à-dire permettant un certain degré d'erreur de classification. Astuces du noyau et variables Slack.

6.4 Astuces du noyau et variables Slack

Même dans le cas d'une séparabilité non linéaire, en utilisant l'astuce du noyau pour mapper les données dans un espace de grande dimension, combiné avec des variables slack, SVM peut toujours trouver l'hyperplan avec la marge maximale.

7. Fonction noyau

La fonction noyau est un outil important dans la machine à vecteurs de support (SVM), qui permet à SVM de gérer efficacement des problèmes non linéaires dans un espace de grande dimension. L'idée de base de la fonction noyau est de mapper les données originales d'un espace de basse dimension à un espace de haute dimension via le mappage, et de trouver la séparabilité linéaire des données dans cet espace de haute dimension.
Insérer la description de l'image ici

7.1 Concepts de base de la fonction noyau

Insérer la description de l'image ici

7.2 Fonctions du noyau couramment utilisées

Insérer la description de l'image ici

7.3 Rôle de la fonction noyau

  1. Gérer les problèmes non linéaires : en mappant sur un espace de grande dimension, la fonction du noyau rend les données qui sont à l'origine linéairement inséparables dans un espace de basse dimension, linéairement séparables dans un espace de haute dimension.
  2. Améliorer la capacité d'expression du modèle : différentes fonctions du noyau peuvent capturer différentes caractéristiques des données et améliorer la capacité d'expression du modèle.
  3. Réduire la complexité des calculs : l'utilisation des fonctions du noyau peut éviter les calculs directs dans un espace de grande dimension, réduisant ainsi la complexité des calculs.