Noyau linéaire et non linéaire pour la machine à vecteurs de support?

45

Lors de l'utilisation de la machine à vecteurs de support, existe-t-il des instructions sur le choix du noyau linéaire par rapport au noyau non linéaire, comme le RBF? J'ai déjà entendu dire que le noyau non linéaire avait tendance à ne pas bien fonctionner lorsque le nombre de fonctionnalités était important. Y a-t-il des références sur cette question?

utilisateur3269
la source
1
Pour ma sagesse, cela est basé sur le problème et il est dangereux d'utiliser de tels thumbrules dans la pratique.
htrahdis

Réponses:

66

Habituellement, la décision consiste à utiliser un noyau linéaire ou un noyau RBF (ou gaussien). Il y a deux facteurs principaux à considérer:

  1. La résolution du problème d'optimisation d'un noyau linéaire est beaucoup plus rapide, voir par exemple LIBLINEAR.
  2. En règle générale, la meilleure performance prédictive possible est meilleure pour un noyau non linéaire (ou du moins aussi bon que le noyau linéaire).

Il a été démontré que le noyau linéaire est une version dégénérée de RBF . Le noyau linéaire n’est donc jamais plus précis qu’un noyau RBF correctement réglé. En citant le résumé de l'article que j'ai lié:

L'analyse indique également que si la sélection complète du modèle à l'aide du noyau gaussien a été effectuée, il n'est pas nécessaire de prendre en compte la SVM linéaire.

Une règle de base est brièvement décrite dans le guide pratique de la NTU pour la classification des vecteurs (Annexe C).

Si le nombre d'entités est grand, il n'est peut-être pas nécessaire de mapper les données vers un espace dimensionnel supérieur. En d'autres termes, le mappage non linéaire n'améliore pas les performances. Utiliser le noyau linéaire est suffisant, et on ne cherche que le paramètre C.

Votre conclusion est plus ou moins juste, mais l'argument est inversé. En pratique, le noyau linéaire a tendance à très bien fonctionner lorsque le nombre d'entités est grand (par exemple, il n'est pas nécessaire de mapper vers un espace d'entités dimensionnel encore plus grand). Un exemple typique est la classification de documents, avec des milliers de dimensions dans l’espace de saisie.

Dans ces cas, les noyaux non linéaires ne sont pas nécessairement plus précis que les noyaux linéaires. Cela signifie essentiellement que les noyaux non linéaires perdent leur attrait: ils ont besoin de beaucoup plus de ressources pour s'entraîner avec un gain de performance prédictif faible, voire nul, alors pourquoi s'embêter.

TL; DR

Toujours essayer d'abord linéaire, car il est beaucoup plus rapide de s'entraîner (AND test). Si la précision suffit, félicitez-vous pour un travail bien fait et passez au problème suivant. Sinon, essayez un noyau non linéaire.

Marc Claesen
la source
1
J'ai cette explication pour l'astuce du noyau: stats.stackexchange.com/questions/131138/…
37

Andrew Ng donne une bonne explication de base dans cette vidéo qui commence à 14h46, bien que toute la vidéo mérite d'être visionnée.

Points clés

  • Utilisez un noyau linéaire lorsque le nombre d'entités est supérieur au nombre d'observations.
  • Utilisez le noyau gaussien lorsque le nombre d'observations est supérieur au nombre d'entités.
  • Si le nombre d'observations est supérieur à 50 000, la vitesse peut être problématique lors de l'utilisation du noyau gaussien; par conséquent, on peut vouloir utiliser un noyau linéaire.
Akavall
la source
convenu ................
datmannz
1
le lien est mort: je pense que c'est la même vidéo: youtube.com/watch?v=hDh7jmEGoY0
ihebiheb