Pourquoi les réseaux de neurones de convolution n’utilisent-ils pas une machine à vecteurs de support pour la classification?

46

Au cours des dernières années, les réseaux de neurones convolutifs (CNN) sont devenus le nec plus ultra en matière de reconnaissance d’objets en vision par ordinateur. En règle générale, un CNN se compose de plusieurs couches convolutives, suivies de deux couches entièrement connectées. L'intuition derrière cela est que les couches convolutives apprennent une meilleure représentation des données d'entrée et que les couches entièrement connectées apprennent ensuite à classer cette représentation en un ensemble d'étiquettes.

Cependant, avant que les CNN ne commencent à dominer, les machines à vecteurs de support (SVM) étaient à la pointe de la technologie. Il semble donc raisonnable de dire qu'un SVM est toujours un classificateur plus puissant qu'un réseau neuronal entièrement connecté à deux couches. Par conséquent, je me demande pourquoi les CNN à la pointe de la technologie ont tendance à utiliser les couches entièrement connectées pour la classification plutôt qu'un SVM? De cette façon, vous auriez le meilleur des deux mondes: une représentation de fonctionnalité forte et un classifieur puissant, plutôt qu'une représentation de fonctionnalité puissante mais uniquement un classificateur faible ...

Des idées?

Karnivaurus
la source

Réponses:

54

Ça peut être fait; Un article de l'atelier ICML, Deep Learning utilisant des machines à vecteur de support linéaire , Tang (2013) , a fait exactement cela et a trouvé des améliorations mineures mais cohérentes. Il est également parfois utilisé pour former les CNN de la manière habituelle, mais considérons ensuite la sortie d'une couche tardive comme "fonctionnalités" et entraînons un SVM séparé à ce sujet.

Notez, cependant, qu'ils utilisaient des SVM linéaires , et en réalité, la différence entre un SVM linéaire et une régression logistique (ce qui équivaut à une seule couche à sortie binaire avec activation sigmoïde) est assez petite. La couche supplémentaire du réseau, en supposant que vous disposiez de suffisamment de données pour l'apprendre, rend les deux dernières couches plus solides qu'un SVM linéaire - bien que vous puissiez bien sûr créer une couche sigmoïde ou ReLU entièrement connectée, puis placer une couche SVM en dernier.

De plus, pour les sorties multiclass, les activations de softmax sont plus naturelles que les SVM multiclass, et je pense que l'approche SVM de cet article nécessite un peu plus de calculs. Les gens ne pensent donc généralement pas que cela en vaut la peine.

Dougal
la source
0

Autant que je sache, il y a au moins deux différences:

  1. Les CNN sont conçus pour fonctionner avec des données d'image, alors que SVM est un classificateur plus générique.
  2. CNN extrait des entités alors que SVM mappe simplement ses entrées dans un espace de grande dimension où (espérons-le) les différences entre les classes peuvent être révélées;
  3. Semblables à 2., les CNN sont des architectures profondes tandis que les SVM sont peu profondes;
  4. Les objectifs d'apprentissage sont différents: les SVM cherchent à maximiser la marge, tandis que les CNN ne le sont pas (aimeraient en savoir plus)

Ceci étant dit, les SVM peuvent fonctionner aussi bien que les CNN à condition que de bonnes fonctionnalités soient utilisées avec une bonne fonction du noyau.

Vladislavs Dovgalecs
la source
4
Je pense que vous avez peut-être mal compris la question. il s'agit d'utiliser une "couche SVM" à la fin du CNN.
Dougal
4
Je comprends la différence entre un CNN et un SVM, mais comme @Dougal le dit, je demande plus d'informations sur la dernière couche d'un CNN. En général, il s’agit d’un réseau de neurones entièrement connecté, mais je ne suis pas sûr de savoir pourquoi les SVM ne sont pas utilisés ici, car ils ont tendance à être plus puissants qu’un réseau de neurones à deux couches.
Karnivaurus
6
@Karnivaurus Désolé de mal interpréter votre question. L'idée n'est pas nouvelle. En règle générale, la dernière couche est jetée et la sortie de la dernière couche est utilisée comme fonctionnalité dans d'autres algorithmes de classification. Pourquoi ce n'est pas fait systématiquement et partout? Les caractéristiques de la dernière couche sont généralement tellement discriminantes qu’il n’est pas besoin d’une boîte noire sophistiquée comme SVM, une simple régression logistique fait le travail. Ceci est ma vision des choses.
Vladislavs Dovgalecs