Le noyau est une manière de calculer le produit scalaire de deux vecteurs et dans un espace de fonctions (éventuellement de très grande dimension), raison pour laquelle les fonctions du noyau sont parfois appelées "produit scalaire généralisé".xy
Supposons que nous ayons un mappage qui amène nos vecteurs dans vers un espace de fonctions . Alors le produit scalaire de et dans cet espace est . Un noyau est une fonction qui correspond à ce produit scalaire, c'est-à-dire .φ:Rn→RmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)
Pourquoi est-ce utile? Les noyaux permettent de calculer les produits scalaires dans certains espaces sans même savoir ce qu'est cet espace et ce qu'est .φ
Par exemple, considérons un simple noyau polynomial avec . Cela ne semble pas correspondre à une fonction de mappage , c'est juste une fonction qui retourne un nombre réel. En supposant que et , développons cette expression:k(x,y)=(1+xTy)2x,y∈R2φx=(x1,x2)y=(y1,y2)
k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x21y21+x22y22+2x1y1+2x2y2+2x1x2y1y2
Notez que ce n’est rien d’autre qu’un produit scalaire entre deux vecteurs et , et . Ainsi, le noyau calcule un produit scalaire dans Espace à 6 dimensions sans visiter explicitement cet espace.(1,x21,x22,2–√x1,2–√x2,2–√x1x2)(1,y21,y22,2–√y1,2–√y2,2–√y1y2)φ(x)=φ(x1,x2)=(1,x21,x22,2–√x1,2–√x2,2–√x1x2)k(x,y)=(1+xTy)2=φ(x)Tφ(y)
Un autre exemple est le noyau gaussien . Si nous développons cette fonction de Taylor, nous verrons qu'elle correspond à une codomaine de dimension infinie de .k(x,y)=exp(−γ∥x−y∥2)φ
Enfin, je recommanderais un cours en ligne "Learning from Data" du professeur Yaser Abu-Mostafa, qui constitue une bonne introduction aux méthodes basées sur le noyau. En particulier, les conférences "Machines à vecteurs de support" , "Méthodes du noyau" et "Fonctions de base radiales" concernent les noyaux.
Une façon très simple et intuitive de penser aux noyaux (du moins pour les SVM) est une fonction de similarité. Avec deux objets, le noyau génère un score de similarité. Les objets peuvent être n'importe quoi à partir de deux entiers, deux vecteurs à valeurs réelles, des arbres, à condition que la fonction du noyau sache les comparer.
L'exemple le plus simple sans doute est le noyau linéaire, également appelé produit à points. Étant donné deux vecteurs, la similarité est la longueur de la projection d'un vecteur sur un autre.
Un autre exemple de noyau intéressant est le noyau gaussien. Étant donné deux vecteurs, la similarité diminuera avec le rayon de . La distance entre deux objets est "repondérée" par ce paramètre de rayon.σ
Le succès de l'apprentissage avec les noyaux (encore une fois, du moins pour les SVM), dépend très fortement du choix du noyau. Vous pouvez voir un noyau comme une représentation compacte de la connaissance de votre problème de classification. C'est très souvent un problème spécifique.
Je n'appellerais pas un noyau une fonction de décision puisque le noyau est utilisé dans la fonction de décision. Si un point de données est à classer, la fonction de décision utilise le noyau en comparant ce point de données à un certain nombre de vecteurs de support pondérés par les paramètres appris . Les vecteurs de support sont dans le domaine de ce point de données et, le long des paramètres appris, est trouvé par l'algorithme d'apprentissage.α α
la source
Un exemple visuel d'aide à l'intuition
Considérez le jeu de données suivant où les points jaune et bleu ne sont clairement pas séparables linéairement dans deux dimensions.
Si nous pouvions trouver un espace de dimension supérieure dans lequel ces points étaient séparables linéairement , nous pourrions alors procéder comme suit:
Il existe de nombreux espaces de dimension supérieure dans lesquels ces points sont séparables linéairement. Voici un exemple
C'est ici que l'astuce du noyau entre en jeu. Citer les bonnes réponses ci-dessus
Si nous pouvions trouver une fonction du noyau équivalente à la carte des fonctionnalités ci-dessus, nous pourrions alors brancher la fonction du noyau dans le SVM linéaire et effectuer les calculs de manière très efficace.
Noyau polynomial
Il s’avère que la carte de caractéristiques ci-dessus correspond au noyau polynomial bien connu : . Soit et on obtientK(x,x′)=(xTx′)d d=2 x=(x1,x2)T
Visualiser la carte de caractéristiques et la ligne de démarcation résultante
La source
la source
Très simplement (mais avec précision) un noyau est un facteur de pondération entre deux séquences de données. Ce facteur de pondération peut affecter plus de poids à un " point de données " à un " moment donné " que l'autre " point de données ", ou attribuer un poids égal ou attribuer plus de poids à l'autre " point de données ", etc.
De cette façon, la corrélation ( produit scalaire ) peut attribuer plus "d'importance" à certains points que d'autres et ainsi gérer les non-linéarités (par exemple, les espaces non plats ), les informations supplémentaires, le lissage des données , etc.
Encore une autre manière, un noyau est un moyen de changer les dimensions relatives (ou unités de dimension ) de deux séquences de données afin de faire face aux choses mentionnées ci-dessus.
Troisièmement (apparenté aux deux précédents), un kernal est un moyen de mapper ou de projeter une séquence de données sur l’autre de manière individuelle en prenant en compte des informations ou des critères donnés (par exemple, espace courbe, données manquantes, etc.). ré-commande et ainsi de suite). Ainsi , par exemple un noyau donné peut étirer ou rétrécir ou culture ou plier une séquence de données afin d'adapter ou carte 1 à 1 sur l'autre.
Un noyau peut agir comme un Procrustes afin de " s'adapter au mieux "
la source