Gibt es Bildklassifizierungsalgorithmen, die keine neuronalen Netze sind?


8

Die Bildklassifizierung ist die Aufgabe , einem bestimmten Bild eine von zuvor bekannten Beschriftungen zuzuweisen. Zum Beispiel wissen Sie, dass Sie ein paar Fotos erhalten und jedes einzelne Bild genau eines von . Der Algorithmus sollte sagen, was das Foto zeigt.n{cat,dog,car,stone}

Der Benchmark-Datensatz für die Bildklassifizierung ist ImageNet . Insbesondere Ihre groß angelegte Herausforderung zur visuellen Erkennung (LSVRC) . Es hat genau 1000 Klassen und eine riesige Menge an Trainingsdaten (ich denke, es gibt eine heruntergesampelte Version mit etwa 250 x 250 Pixel großen Bildern, aber viele Bilder scheinen von Flicker zu stammen).

Diese Herausforderung wird normalerweise mit CNNs (oder anderen neuronalen Netzen) gelöst.

Gibt es ein Papier, das einen Ansatz versucht, bei dem keine neuronalen Netze in LSVRC verwendet werden?

Um die Frage zu klären: Natürlich gibt es andere Klassifizierungsalgorithmen wie nächste Nachbarn oder SVMs. Ich bezweifle jedoch, dass sie überhaupt für so viele Klassen / so viele Daten funktionieren. Zumindest für NNs bin ich mir sicher, dass die Vorhersage extrem langsam sein würde; Für SVMs wäre sowohl die Anpassung als auch die Vorhersage viel zu langsam (?).kkk


Sie sollten die Trainings- und Vorhersagegeschwindigkeit eines Algorithmus nicht "erraten". Sie sollten selbst einen Benchmark erstellen, um zu sehen, wie schnell das Training in Ihrem eigenen Datensatz ist. Sobald Sie das Modell erstellt haben (Probleme wie Überanpassung sind gelöst), ist die Vorhersage ein weiterer Schritt.
Manu H

@ManuH Ich weiß, dass es für die von mir verwendete Implementierung für kNN zu langsam war. Ich kann jedoch nur vermuten, dass dies ein intrinsisches Problem des Algorithmus ist, das in diesem Problembereich nicht gelöst werden kann (z. B. durch starke Reduzierung der Dimensionalität). Aus diesem Grund bitte ich um Papiere: Ich möchte wissen, was andere versucht haben.
Martin Thoma

Antworten:


4

Ein Teil des Problems bei der Beantwortung dieser Frage besteht darin, dass es tatsächlich zwei Fragen gibt. Der Erste:

Gibt es Bildklassifizierungsalgorithmen, die keine neuronalen Netze sind?

Ja, viele. Aber jetzt die eigentliche Frage:

Gibt es ein Papier, das einen Ansatz versucht, bei dem keine neuronalen Netze in LSVRC verwendet werden?

In Ihrer Frage schließen Sie Methoden wie kNN und SVM aufgrund der Geschwindigkeit aus. Bag of Words ist eine Methode, um dieses Problem zu lösen. MATLAB hat eine gute Demonstration ( http://www.mathworks.com/help/vision/examples/image-category-classification-using-bag-of-features.html ). Aber BoW enthält k-means Clustering, sodass es möglicherweise nicht Ihren Anforderungen entspricht.

Es gibt einige andere interessante Bildklassifizierungsmethoden wie die Texturanalyse. TA wird erforscht, um die Böswilligkeit von Krankheiten in medizinischen Bildern (wie Tumoren) zu klassifizieren. Hier ist ein Artikel, auf den häufig verwiesen wird: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2701316/

Hier ist eine Übersicht über die Bildklassifizierung: http://www.tandfonline.com/doi/full/10.1080/01431160600746456


1

Sie können jeden Algorithmus verwenden, der die Dimensionalität Ihrer Daten verarbeiten kann, einschließlich SVM und K Nearest Neighbors. Die Leistung der am besten implementierten Algorithmen ist nahezu gleich, akzeptiert für CNN. Der Grund, warum CNN verwendet wird, liegt darin, dass es derzeit in Bezug auf Genauigkeit führend ist und dies seit mehreren Jahren.


Sie wiederholen im Grunde das, was ich in meiner Frage geschrieben habe. Dies ist keine Antwort auf meine Frage
Martin Thoma

Hier ist ein solches Papier, das eine Variante von SVM verwendet. robotics.stanford.edu/~koller/Papers/Gao+Koller:ICCV11.pdf
John Yetter

0

Es gibt viele Algorithmen, mit denen Klassifizierungen durchgeführt werden können (viele bis zu dem Punkt, an dem es schwierig ist, alle zu erwähnen). Ich empfehle Ihnen, sich diese http://dlib.net/ml_guide.svg anzusehen

Die Entscheidung, welcher Algorithmus verwendet werden soll, hängt hauptsächlich von dem Problem ab, mit dem Sie arbeiten: 1. Die Anzahl der Klassen 2. Die Anzahl der Stichproben 3. Die Unterschiede innerhalb der Klassen und Ähnlichkeiten zwischen den Klassen 4. Datenungleichgewicht 5. Die Dimension Ihrer Funktion und viele andere Parameter

Im Allgemeinen ist CNN aus zwei Gründen sehr beliebt: Sie können bei sehr herausfordernden Problemen zu einer hohen Leistung führen und sind allgemeine Lösungen in dem Kontext, in dem Sie ihre Architekturen verstehen müssen, die Strategien und Tricks, um nur Schulungen durchzuführen, danach nicht müssen nichts ändern, keine Parameter zum Spielen.


Bitte lesen Sie die Frage in Fettdruck in dem Text, den ich geschrieben habe.
Martin Thoma
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.