In dieser Tensorflow detection model zoo haben sie COCO mAp-Score zu verschiedenen Nachweis Architekturen erwähnt. Sie haben auch gesagt, dass die mAp-Punktzahl höher ist als die Genauigkeit. Was ist nicht zu verstehen ist wie das berechnet wird? Was ist die maximale Punktzahl, die es haben kann? Warum unterscheidet sich dieser mAp-Score von Datensatz zu Datensatz?Warum verwenden wir mAp-Score für die Auswertung von Objektdetektoren im Deep Learning?
Antwort
Um MAP (Mean Average Precision) zu verstehen, würde ich zuerst mit AP (Average Precision) beginnen.
Angenommen wir für Bilder einer Blume suchen und bieten wir unseren Bildholsystem ein Beispielbild einer Rose (Abfrage), wir bekommen wieder eine Reihe von Rang Bilder (von den meisten wahrscheinlich am wenigsten wahrscheinlich). Normalerweise sind nicht alle von ihnen korrekt. Also berechnen wir die Genauigkeit bei jedes korrekt zurückgegebene Bild und nehmen dann einen Durchschnittswert.
Beispiel:
Wenn unser zurückgegebene Ergebnis
1, 0, 0, 1, 1, 1
ist, wo1
ein Bild einer Blume ist, während0
nicht, dann ist die Präzision bei jedem richtigen Punkt ist:
Precision at each correct image = 1/1, 0, 0, 2/4, 3/5, 4/6
Summation of these precisions = 83/30
Average Precision = (Precision summation)/(total correct images) = 83/120
Randbemerkung:
Dieser Abschnitt enthält eine detaillierte Erklärung hinter der Berechnung der Präzision bei jedem richtigen Bild, falls Sie durch die oben genannten Fraktionen immer noch verwirrt sind.
Zur Veranschaulichung, lassen Sie 1, 0, 0, 1, 1, 1
in einem Array gespeichert werden, so results[0] = 1
, results[1] = 0
usw.
totalCorrectImages = 0, totalImagesSeen = 0, pointPrecision = 0
Die Formel für pointPrecision
ist totalCorrectImages/totalImagesSeen
Bei results[0], totalCorrectImages = 1, totalImagesSeen = 1
daher pointPrecision = 1
Seit results[1] != 1
, ignorieren wir es aber totalImagesSeen = 2 && totalCorrectImages = 1
Seit results[2] != 1
, totalImagesSeen = 3 && totalCorrectImages = 1
Bei results[3], totalCorrectImages = 2, totalImagesSeen = 4
daher pointPrecision = 2/4
Bei results[4], totalCorrectImages = 3, totalImagesSeen = 5
daher pointPrecision = 3/5
Bei results[5], totalCorrectImages = 4, totalImagesSeen = 6
daher pointPrecision = 4/6
Eine einfache Art und Weise zu interpretieren ist eine Kombination aus Nullen und diejenigen zu erzeugen, die geben der erforderliche AP Zum Beispiel könnte ein AP von 0,5 Ergebnisse wie
0, 1, 0, 1, 0, 1, ...
haben, wobei jedes zweite Bild korrekt ist, während ein AP von0.333
0, 0, 1, 0, 0, 1, 0, 0, 1, ...
hat, wobei jedes dritte Bild korrekt ist.Für einen AP von
0.1
ist jedes 10. Bild korrekt, und das ist definitiv ein schlechtes Retrieval-System. Auf der anderen Seite, für einen AP über0.5
, werden wir mehr richtige Bilder als falsch in den Top-Ergebnissen begegnen, was definitiv ein gutes Zeichen ist.
MAP ist nur eine Erweiterung von AP. Sie nehmen einfach die Durchschnittswerte aller AP-Bewertungen für eine bestimmte Anzahl von Abfragen. Die obige Interpretation von AP-Werten gilt auch für MAP. MAP reicht von 0 bis 100, höher ist besser.
AP Formel auf Wikipedia
MAP Formel auf Wikipedia
Credits zu diesem blog
EDIT I:
Das gleiche Konzept angewendet wird, wenn es eine Erkennung Objekt kommt. In diesem Szenario würden Sie den AP für jede Klasse berechnen. Dies ist gegeben durch die Fläche unter der Präzision-Recall-Kurve für eine gegebene Klasse. Ab diesem Punkt finden Sie ihre Durchschnittswerte, um den mAP zu erreichen. Weitere Details finden Sie in Abschnitt 3.4.1 und 4.4 der 2012 Pascal VOC Dev Kit. Das entsprechende Papier kann here gefunden werden.
- 1. Warum brauchen wir GPU für Deep Learning?
- 2. Bildvorverarbeitung im Deep Learning
- 3. Deep Learning für Chatbot Training
- 4. Deep Learning für Handerkennung
- 5. Data Augmentation für Deep Learning
- 6. So verwenden Sie das Tflearn-Deep-Learning für die Dokumentklassifikation
- 7. Confusion Matrix für Deep Learning
- 8. Wie wählt man die Fenstergröße von CNN im Deep Learning?
- 9. Einfache Deep-Learning-Vorhersage
- 10. Deep Learning Theano
- 11. Deep Learning mit Caffe - Python
- 12. Warum brauchen wir CNN für die Objekterkennung?
- 13. H2O Deep Learning R
- 14. Deep Learning auf massiven Datensätzen
- 15. Numpy-Deep Learning, Training Beispiele
- 16. ASP.NET-Migration, DbContext und Deep Learning Ansatz
- 17. Datenvergrößerung für Objekterkennung mit Deep Learning
- 18. Irgendwelche schlechten Auswirkungen von unausgewogenen Daten im Deep Learning?
- 19. Rechtschreibkorrektur für Zahlen mit Deep Learning
- 20. Rinder Klassifizierung mit Deep Learning
- 21. Seltsame Ergebnisse für die Bilderkennung mit AlexNet in Deep Learning
- 22. Zellenerkennung mit Deep-Learning-Techniken
- 23. Python Deep Learning finde Duplikate
- 24. Brauchen Sie Hilfe beim Kauf von GPU für Deep Learning
- 25. Überwachtes Lernen (Dokumentenklassifizierung) mit Deep-Learning-Techniken
- 26. Was ist die Art von Deep Learning-Algorithmus in Rapidminer?
- 27. Udacity Deep Learning: Aufgabe 1, Teil 5
- 28. Transfer Learning Deep CNN mit unterschiedlicher Auflösung
- 29. Deep Learning Person Erkennung mit Opencv
- 30. Deep Learning - verwenden Sie beide Bilder und ihre Beschreibung
Hallo können Sie das erklären, was bedeutet "So berechnen wir die Genauigkeit bei jedem korrekt zurückgegebenen Bild"? –
Ich glaube, dass das Beispiel, das direkt nach diesem Satz zur Verfügung gestellt wird, Ihre Frage beantwortet. Sie berechnen die Genauigkeit nur für die richtigen Vorhersagen und ignorieren die falschen. – eshirima
Also was ist der AP endlich. Das letzte Ding ? –