Vorteile von SVM als Werkzeug zur Ziffernerkennung


8

Ich bin ziemlich neu in der Ziffernerkennung und habe festgestellt, dass viele Tutorials die SVM-Klassifizierung verwenden, zum Beispiel:

Ich würde gerne wissen, ob es für dieses Tool (domänenspezifische) Vorteile gibt, verglichen mit z

  • Deep Learning neuronale Netze
  • Klassifizierung nach k-Mitteln

Vielen Dank für jeden Kommentar. Klarstellung, warum SVM ein falsches Werkzeug für die Ziffernerkennung ist, wird ebenfalls geschätzt.

Antworten:


9

Tutorials für viele verschiedene Klassifikatoren basieren auf der Ziffernerkennung, insbesondere dem MNIST-Datensatz. Ich denke, dies liegt hauptsächlich daran, dass dieser Datensatz leicht verfügbar und leicht zu verstehen ist und nur eine minimale Vorverarbeitung erfordert. Es ist auch ein gängiger Benchmark-Datensatz in der Literatur.

Mir sind keine Argumente bekannt, dass eine bestimmte Familie von Klassifikatoren für die Ziffernerkennung an sich am besten geeignet ist. Ich denke, dies wäre ein schwieriges Argument, da 1) die Verteilung der Ziffern aus der realen Welt stammt und wir keine umfassende mathematische Beschreibung haben und 2) die Menge aller SVMs, aller neuronalen Netze usw. ist unendlich und wir haben es nur geschafft, eine winzige Teilmenge zu erkunden. Vielleicht ist das bekannteste neuronale Netz besser als das bekannteste SVM, aber irgendwo in diesem riesigen, unentdeckten Raum lauert eine neue Kernelfunktion, die SVMs besser machen würde. Vielleicht gibt es eine andere neuronale Netzarchitektur, die noch besser wäre. Ich nehme an, dass in bestimmten Fällen Argumente vorgebracht werden könnten (z. B. naive Bayes auf Rohpixeln sind wahrscheinlich eine schlechte Idee, da ihre Annahmen offensichtlich verletzt werden).

Es gibt viele Gründe, jeden Klassifizierertyp unter verschiedenen Umständen anderen vorzuziehen (z. B. Zeit / Speicher für Training / Evaluierung, Optimierungs- / Erkundungsaufwand für ein anständiges Arbeitsmodell usw.). Diese Gründe sind nicht spezifisch für die Ziffernerkennung, daher werde ich hier nicht darauf eingehen.

Es gibt sicherlich domänenspezifische Tricks, mit denen Klassifikatoren für die Ziffernerkennung besser geeignet sind. Einige dieser Tricks wirken, indem sie die Invarianz gegenüber bestimmten Transformationen erhöhen, die man bei handschriftlichen Ziffern erwarten würde (z. B. Translation, Rotation, Skalierung, Deformation). Zum Beispiel sollte die Ziffer '0' dasselbe bedeuten, auch wenn sie nach links verschoben und ein wenig verzogen ist. Einige der Tricks sind spezifisch für die Familie der Klassifikatoren. Zum Beispiel kann diese Art von Invarianz unter Verwendung bestimmter SVM-Kernel, räumlicher Transformatorschichten in neuronalen Netzen oder wahrscheinlich einer invarianten Abstandsmetrik für K nächste Nachbarn erzielt werden. Andere Tricks können mit vielen Klassifikatoren verwendet werden. Zum Beispiel kann der Datensatz mit vielen transformierten Kopien der Ziffern erweitert werden, was dem Klassifizierer helfen kann, die richtige Invarianz zu lernen.

SVMs, neuronale Netze und sogar kNN haben im MNIST-Datensatz eine gute Leistung erzielt. Andere Methoden funktionieren auch. Die beste Leistung, von der ich persönlich gehört habe, war mit neuronalen Netzen. Einige Ergebnisse werden hier und hier in verschiedenen Veröffentlichungen gesammelt .

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.