Warum verwenden Convolutional Neural Networks keine Support Vector Machine zur Klassifizierung?


46

In den letzten Jahren sind Convolutional Neural Networks (CNNs) zum Stand der Technik für die Objekterkennung in der Computersicht geworden. Typischerweise besteht ein CNN aus mehreren Faltungsschichten, gefolgt von zwei vollständig verbundenen Schichten. Eine Intuition dahinter ist, dass die Faltungsschichten eine bessere Darstellung der Eingabedaten lernen und die vollständig verbundenen Schichten dann lernen, diese Darstellung basierend auf einer Reihe von Beschriftungen zu klassifizieren.

Bevor jedoch CNNs zu dominieren begannen, waren Support Vector Machines (SVMs) Stand der Technik. Es erscheint daher sinnvoll zu sagen, dass eine SVM immer noch ein stärkerer Klassifikator ist als ein vollständig verbundenes neuronales Netzwerk mit zwei Schichten. Daher frage ich mich, warum CNNs nach dem neuesten Stand der Technik die vollständig verbundenen Schichten eher für die Klassifizierung als für eine SVM verwenden. Auf diese Weise hätten Sie das Beste aus beiden Welten: eine starke Feature-Repräsentation und einen starken Klassifikator anstelle einer starken Feature-Repräsentation, aber nur einen schwachen Klassifikator ...

Irgendwelche Ideen?

Antworten:


54

Es kann getan werden; Ein ICML-Workshoppapier, Deep Learning using Linear Support Vector Machines , Tang (2013) , hat genau dies durchgeführt und kleine, aber beständige Verbesserungen festgestellt. Es wird auch manchmal gemacht, CNNs auf die typische Weise zu trainieren, aber dann die Ausgabe einer späten Schicht als "Features" zu nehmen und eine separate SVM zu trainieren.

Beachten Sie jedoch, dass sie lineare SVMs verwendeten, und tatsächlich ist der Unterschied zwischen einer linearen SVM und einer logistischen Regression (die einer einzelnen Binärausgangsschicht mit Sigmoid-Aktivierung entspricht) recht gering. Die zusätzliche Ebene des Netzes, vorausgesetzt, Sie haben genug Daten, um es zu lernen, macht die letzten beiden Ebenen tatsächlich stärker als eine lineare SVM - obwohl Sie natürlich auch eine vollständig verbundene Sigmoid- oder ReLU-Ebene erstellen und dann eine SVM-Ebene als letzte einfügen könnten.

Außerdem sind Softmax-Aktivierungen für Mehrfachklassenausgaben natürlicher als SVMs für Mehrfachklassen, und ich denke, der SVM-Ansatz dieses Dokuments ist etwas rechenintensiver. Die Leute denken normalerweise einfach nicht, dass es sich lohnt.


0

Soweit ich sehen kann, gibt es zumindest einige Unterschiede:

  1. CNNs arbeiten mit Bilddaten, während SVM ein allgemeinerer Klassifikator ist.
  2. CNNs extrahieren Features, während SVM seine Eingabe einfach einem hochdimensionalen Raum zuordnet, in dem (hoffentlich) die Unterschiede zwischen den Klassen sichtbar werden.
  3. Ähnlich wie bei 2. sind CNNs tiefe Architekturen, während SVMs flach sind.
  4. Die Lernziele sind unterschiedlich: SVMs versuchen, die Marge zu maximieren, CNNs hingegen nicht (würden gerne mehr darüber erfahren).

Davon abgesehen können SVMs so gut wie CNNs funktionieren, vorausgesetzt, gute Funktionen werden mit einer guten Kernelfunktion verwendet.


4
Ich denke, Sie haben die Frage vielleicht falsch verstanden. Es geht darum, eine "SVM-Schicht" am Ende des CNN zu verwenden.
Dougal,

4
Ich verstehe den Unterschied zwischen einer CNN und einer SVM, aber wie @Dougal sagt, frage ich mehr nach der letzten Schicht einer CNN. Normalerweise handelt es sich hierbei um ein vollständig verbundenes neuronales Netzwerk. Ich bin mir jedoch nicht sicher, warum SVMs hier nicht verwendet werden, da sie tendenziell stärker sind als ein zweischichtiges neuronales Netzwerk.
Karnivaurus

6
@ Karnivaurus Entschuldigung, dass Sie Ihre Frage falsch verstanden haben. Die Idee ist nicht neu. Normalerweise wird die letzte Ebene weggeworfen und die Ausgabe der letzten Ebene wird als Merkmal in anderen Klassifizierungsalgorithmen verwendet. Warum wird es nicht konsequent und überall gemacht? Die Merkmale der letzten Schicht sind in der Regel so unterschiedlich, dass keine ausgeklügelte Blackbox wie bei SVM erforderlich ist. Eine einfache logistische Regression erledigt die Aufgabe. Das ist meine Vision von Dingen.
Vladislavs Dovgalecs
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.