SVM à une classe vs SVM exemplaire


16

Je comprends que les SVM à une classe (OSVM) ont été proposés en l'absence de données négatives et qu'ils cherchent à trouver des limites de décision qui séparent un ensemble positif et un point d'ancrage négatif, par exemple l'origine.

Un travail en 2011 propose des SVM exemplaires (ESVM) qui forment un "classificateur unique par catégorie" qui prétend être différent des OSVM, en ce sens que les ESVM ne "nécessitent pas de mapper les exemplaires dans un espace de fonctionnalités commun sur lequel un noyau de similarité peut être calculé ". Je ne comprends pas très bien ce que cela signifie et comment les ESVM diffèrent des OSVM. Et alors, comment diffèrent-ils? Et comment ce calcul de noyau de similitude est-il évité dans les ESVM?

Réponses:


20

(Vous voudrez peut-être d'abord consulter le "tableau" ci-dessous)

Commençons par les machines à vecteurs de support "classiques". Ceux-ci apprennent à distinguer entre deux catégories. Vous collectez quelques exemples de catégorie A, certains de catégorie B et les transmettez tous les deux à l'algorithme de formation SVM, qui trouve la ligne / avion / hyperplan qui sépare le mieux A de B. Cela fonctionne - et cela fonctionne souvent très bien - lorsque vous voulez faire la distinction entre des classes bien définies et des classes qui s'excluent mutuellement: les hommes contre les femmes, les lettres de l'alphabet, etc.

Supposons toutefois que vous souhaitiez plutôt identifier les «A». Vous pouvez traiter cela comme un problème de classification: comment distinguer les «A» des «non-A». Il est assez facile de rassembler un ensemble d'entraînement composé de photos de chiens, mais que devrait contenir votre ensemble d'entraînement de non-chiens? Puisqu'il y a un nombre infini de choses qui ne sont pas des chiens, vous pourriez avoir du mal à construire un ensemble d'entraînement complet et pourtant représentatif de toutes les choses non canines. Au lieu de cela, vous pourriez envisager d'utiliser un classificateur à une classe. Le classificateur traditionnel à deux classes trouve un (hyper) plan qui sépare A de B. Le SVM à une classe trouve à la place la ligne / le plan / l'hyperplan qui sépare tous les points de la classe (les "A") de l'origine ;

Le "système" Ensemble SVM est en fait une collection de nombreuses "sous-unités" SVM à deux classes. Chaque sous-unité est formée à l'aide d'un seulexemple positif pour une classe et une énorme collection d'exemples négatifs pour l'autre. Ainsi, au lieu de discriminer les chiens par rapport aux exemples non-chiens (SVM standard à deux classes) ou les chiens par rapport à l'origine (SVM à une classe), chaque sous-unité fait la distinction entre un chien spécifique (par exemple, "Rex") et de nombreux non-chiens exemples. Les SVM de sous-unités individuelles sont formés pour chaque exemple de la classe positive, vous auriez donc un SVM pour Rex, un autre pour Fido, encore un autre pour le chien de votre voisin qui aboie à 6 heures du matin, etc. Les sorties de ces sous-unités SVM sont calibrées et combinées pour déterminer si un chien, et pas seulement l'un des exemples spécifiques, apparaît dans les données de test. Je suppose que vous pouvez également considérer les sous-unités individuelles comme des SVM à une classe, où l'espace de coordonnées est décalé de sorte que l'exemple positif unique se trouve à l'origine.

En résumé, les principales différences sont les suivantes:

Données d'entraînement

  • SVM à deux classes: exemples positifs et négatifs
  • SVM à une classe: exemples positifs uniquement
  • Ensemble "système" SVM: exemples positifs et négatifs. Chaque sous-unité est formée sur un seul exemple positif et de nombreux exemples négatifs.

Nombre de machines

  • SVM à deux classes: une
  • Une classe SVM: une
  • Ensemble "système" SVM: plusieurs (une sous-unité par exemple positif)

Exemples par classe (par machine)

  • SVM à deux classes: plusieurs / plusieurs
  • SVM une classe: plusieurs / un (fixe à l'origine)
  • Ensemble "système" SVM: plusieurs / plusieurs
  • Ensemble "sous-unité" SVM: un / plusieurs

Post-traitement

  • SVM à deux classes: pas nécessaire
  • SVM une classe: Pas nécessaire
  • Ensemble SVM: nécessaire pour fusionner la sortie de chaque SVM dans une prédiction au niveau de la classe.

Postscript: Vous aviez demandé ce qu'ils entendaient par «[d'autres approches] nécessitent de mapper les exemples dans un espace de fonctionnalités commun sur lequel un noyau de similarité peut être calculé. Je pense qu'ils signifient qu'un SVM traditionnel à deux classes fonctionne en supposant que tous les membres de la classe sont en quelque sorte similaires, et donc vous voulez trouver un noyau qui place les grands danois et les teckels près les uns des autres, mais loin de tout le reste. En revanche, le système SVM d'ensemble contourne cela en appelant quelque chose un chien s'il est suffisamment grand comme un danois OU comme un dachsund OU comme un caniche, sans se soucier de la relation entre ces exemplaires.


Merci pour la grande et complète réponse. Juste pour être clair, dans certains endroits, vous voulez vraiment dire "Ensemble" de SVM exemplaires, mais dans d'autres, juste des SVM "exemplaires"? Je pense que pour être juste, il devrait y avoir une comparaison avec (1) un SEUL OSVM avec un SEVM ESVM, ou (2) ENSEMBLE des OSVM avec ENSEMBLE des ESVM.
bjou

J'espère que ce n'est pas trop hors sujet de se demander dans quelle mesure cela se généralise à plusieurs classes? Si j'ai des chats, des chiens et des oiseaux, est-ce que l'esvm nécessite un SVM "élément" pour fido vs chaque chat ET un SVM "élément" pour fido vs chaque oiseau? Si j'avais 10 points de données pour chacune des 3 catégories, cela signifierait-il que j'ai 20 éléments SVM par "chien" ou un ensemble composé de 200 éléments? Et si j'ai 300 points de données et 20 dimensions, ou 50 000 points de données et 50 000 dimensions. Si je faisais une forêt aléatoire de SVM, alors pourrais-je utiliser des sous-ensembles aléatoires pour réduire l'impact de la "malédiction de la dimensionnalité"?
EngrStudent

@bjou, j'étais un peu bâclé avec la terminologie ESVM, donc je suis retourné et l'ai nettoyé. Je suppose que vous pourriez penser à une "sous-unité" du système ESVM comme étant comme un OSVM, sauf que le système de coordonnées a été recentré de sorte que l'exemple positif se trouve à l'origine.
Matt Krause

1
@EngrStudent, il se généralise vraiment très bien. Dans l'article, ils utilisent la tâche Pascal VOC, qui comprend environ 20 catégories. Pour étendre notre exemple animal, vous auriez une sous-unité pour "Fido" contre (tous les oiseaux, chats et poissons), une autre sous-unité pour "Rex" contre tous les non-chiens, et ainsi de suite pour chaque chien. Pour les oiseaux, vous entraîneriez "Tweety" contre (tous les chats, chiens, poissons), "Polly" contre tous les non-oiseaux, etc. Il y aurait également une sous-unité pour chaque exemple de chat et de poisson, formée contre tous les non-chats et les non-poissons, respectivement. Vous vous retrouvez avec 1 SVM par exemple étiqueté, quel que soit le nombre de classes.
Matt Krause

Cela ressemble à un cousin de boosting (dans le sens d'arbres boostés par gradient). L'ensemble est-il pondéré en fonction des erreurs de sortie ou uniformément pondéré?
EngrStudent

2

En bref, le modèle ESVM est un ensemble de SVM formés pour distinguer chaque élément de l'ensemble d'apprentissage unique de tous les autres, tandis que l'OSVM est un ensemble de SVM formés pour distinguer chaque sous-ensemble d'éléments d'apprentissage qui appartiennent à une classe. Donc, si vous avez 300 exemples de chats et 300 chiens dans l'ensemble de formation, l'ESVM fera 600 SVM, chacun pour un animal tandis que l'OSVM fera deux SVM (d'abord pour tous les chats, deuxième pour tous les chiens).

De cette façon, ESVM n'a pas besoin de trouver un espace dans lequel l'ensemble de la classe est regroupé, mais plutôt un espace dans lequel cet élément unique est une valeur aberrante, ce qui est probablement plus simple et conduit à une haute précision. Le rappel serait assuré par l'ensemble.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.