[PYTHON] [Papiere und Implementierung] Wenn Sie gefragt werden "Ist dieser Datensatz schwierig?" ...

Das Erlernen des Faltungsnetzwerks (CNN) braucht Zeit.

Insbesondere wenn Sie wirklich versuchen, die Genauigkeit zu verbessern, ohne Transferlernen zu verwenden, dauert es ungefähr 5 Tage ** Es gibt Zeiten. Die in diesem Artikel vorgestellten Artikel erläutern quantitativ die Schwierigkeit von Datensätzen. Durch Auswertung kann die Klassifizierungsgenauigkeit mit hoher Geschwindigkeit geschätzt werden, ohne CNN zu lernen. Das ist.

ダウンロード (1).png

Papier-

Überblick

Klassenüberlappung

Der Schlüssel zu diesem Artikel lautet "Wenn sich die beiden Klassen stark überschneiden" in der Bildklassifizierungsaufgabe. Das Klassifizierungsproblem ist ein schwieriges Problem. "

image.png

Die Abbildung oben ist meine eigene Arbeit. Wenn Sie nun CNN verwenden, um ein Bild in den 2D-Raum einzubetten Machen.

Und als Aufgabe zur Klassifizierung von orangefarbenen und blauen Punkten im Gegensatz zur Abbildung links Es scheint, dass das Problem auf der rechten Seite leichter zu klassifizieren ist. Mit anderen Worten, dies Je mehr Überlappungen zwischen Klassen bestehen, desto schwieriger ist das Klassifizierungsproblem.

Wenn Sie in mathematischen Formeln denken und es viele Punkte in derselben Gruppe gibt, in der Sie sich einem bestimmten Punkt nähern, kommt es zu Duplikationen. Klein (einfaches Klassifizierungsproblem), große Duplizierung, wenn es in einer Gruppe viele Punkte gibt, die sich von Ihnen unterscheiden Es scheint ein (schwieriges Klassifizierungsproblem) zu sein.

Das Papier präsentiert die folgende Formel.

image.png

Diese Formel drückt den Grad der Duplizierung der Klasse $ C_j $ aus Sicht der Klasse $ C_i $ aus.

Da M und V konstante Werte sind, ist $ K_ {C_j} $ das Bild x der Klasse $ C_i $ Die Anzahl der Klassen $ C_j $ in der Nähe. Mit anderen Worten, wenn $ K_ {C_j} $ groß ist, ist die Überlappung groß. Ich kann sagen.

Hier ist $ \ phi (x) \ in R ^ d $ der Vektor, in den das Bild x von $ C_i $ eingebettet ist, und M ist von $ C_j $. Die Anzahl der extrahierten Proben, V ist die Größe des Hyperwürfels. Schließlich Gleichung (4) wird auf das Bild der Klasse $ C_i $ angewendet, um die Summe zu nehmen.

Da Gleichung (4) nur den Grad der Duplizierung zwischen zwei Klassen berechnen kann, Wenn mehrere Klassen vorhanden sind, berechnen Sie den Überlappungsgrad für jede Klasse. wird gebraucht.

Wenn die Anzahl der Klassen K ist, ist die Ähnlichkeitsmatrix $ S \ in R ^ {K \ mal K} $ Es ist definiert. $ S_ {ij} $ wird durch die Summe von Gleichung (4) berechnet.

Wenn jedes Element von $ S $ groß ist, bedeutet dies, dass Gleichung (4) ein großer Wert ist. Von Klasse I aus gesehen gibt es viele Klassen j in der Nähe. Mit anderen Worten, es ist ein schwieriges Klassifizierungsproblem.

Spektrale Clusterbildung

Danach, wie man $ S $ verwendet, um die Schwierigkeit des Klassifizierungsproblems zu quantifizieren Ist das Problem.

Das Papier verwendet spektrale Clusterbildung.

Spektrales Clustering war ursprünglich ein Clustering unbeaufsichtigten Lernens Es scheint die verwendete Methode zu sein. Teilen Sie jedes Diagramm, wenn die Verbindung schwach ist Auf diese Weise können auch Teilungsprobleme, die mit der k-means-Methode usw. schwierig sind, sauber geteilt werden. Es ist möglich zu. Bitte beachten Sie den Link unten für Details. https://www.slideshare.net/pecorarista/ss-51761860 https://qiita.com/sakami/items/9b3d57d4be3ff1c70e1d

Bei der spektralen Clusterbildung wird der folgende Laplace-L Quantifizieren Sie die Schwierigkeit, ein Diagramm zu teilen, indem Sie einen eindeutigen Wert finden tun können.

L=D-W

Bei Anwendung auf dieses Papier wird $ S_ {ij} $ als Graph betrachtet, und es ist schwierig, ihn zu teilen. Es quantifiziert (Schwierigkeit der Klassifizierung). Im Allgemeinen ist der eindeutige Wert von L. Es scheint, dass es umso schwieriger ist, es zu teilen, je größer es ist, aber in diesem Artikel, wie später beschrieben wird. Durch Erfassen und Quantifizieren nicht nur der Größe des Eigenwerts, sondern auch der Tendenz des Eigenwerts Eine genauere Quantifizierung ist möglich.

Für den Ausdruck von L ist D definiert als $ D_i = \ sum_jw_ {i, j} $. Ich möchte $ S $ direkt W zuweisen, aber W hat die Einschränkung einer symmetrischen Matrix. Daher ist es unter Verwendung der folgenden Formel symmetrisch.

image.png

Wenn Sie zuerst die experimentellen Ergebnisse zeigen, ist die Schwierigkeit des Datensatzes mit W allein Kann geschätzt werden. Die folgende Abbildung zeigt die Ergebnisse eines Experiments mit CIFAR10.

image.png

Die obere Reihe ist das experimentelle Ergebnis von W. Die Verwirrungsmatrix nach AlexNets Schlussfolgerung wurde in der unteren Reihe trainiert. Sie können sehen, dass die W-Schätzung dem AlexNet-Inferenzergebnis sehr ähnlich ist. Es trifft auch die Situation, in der es schwierig ist, zwischen "Hund" und "Katze" zu unterscheiden.

Laplace L.

Überprüfen Sie die Verarbeitung bis zu diesem Punkt. Bild → Eingebettet → Überlappung zwischen Klassen, berechnet durch Gleichung (4) → Berechnen Sie den eindeutigen Wert von L.

Nur durch Betrachten des Maximalwerts des Eigenwerts von Laplace L wie oben erwähnt Schwierigkeit beim Teilen von Graphen (Schwierigkeit des Datensatzes in diesem Artikel) Kann geschätzt werden.

Wenn Sie zuerst die experimentellen Ergebnisse anzeigen, können Sie den Maximalwert oder die Summe der Eigenwerte sehen. Sie können die Schwierigkeit eines Datensatzes abschätzen, indem Sie ihn sich ansehen.

image.png

Die obige Tabelle zeigt die Ergebnisse von Experimenten mit CIFAR10.

Selbst wenn man nur die Summe der Eigenwerte betrachtet, übertrifft die Leistung die der herkömmlichen Methode.

In der obigen Tabelle stehen die folgenden vier "Einbettungsmethoden" zur Verfügung.

Übrigens behauptet die Methode in diesem Artikel, "hohe Geschwindigkeit" zu sein, aber Sie müssen den Auto-Encoder trainieren. Ein guter CSG kann nicht berechnet werden. Die in der obigen Tabelle in Klammern angegebene Zeit ist die Lernzeit des Auto-Encoders. Wie Sie sehen können, ist es ungefähr doppelt so schnell wie die herkömmliche Methode. (Es ist immer noch erstaunlich.)

CSG Abschließend werde ich über CSG erklären. Wenn die Eigenwerte in aufsteigender Reihenfolge von i = 0,1,2 ... angeordnet sind, standardisieren Sie zuerst mit der folgenden Formel.

image.png

Berechnen Sie dann die CSG.

image.png

Hier unter der Annahme, dass Cummax die Sequenz hat [1,4,3,2]

cummax[1,4,3,2] = [1,4,4,4]

Meint. Mit anderen Worten, wenn in der Reihenfolge von links gelesen wurde, wurde es gelesen Eine Funktion, die den Maximalwert einer Zahl aufzeichnet.

Versuchsergebnis

Die folgende Tabelle zeigt die Ergebnisse von Experimenten mit MNIST. image.png

Wie Sie sehen können, steigt mit zunehmender Anzahl von Klassen in mnist auch die CSG- und Fehlerrate. Sie können sehen (Korrelation). Der hellblaue Mnist bedeutet übrigens "Mnist 1". Das heißt, es gibt nur eine Klasse.

Die folgende Tabelle zeigt die Ergebnisse von Experimenten mit verschiedenen Datensätzen (Anzahl der Klassen: 10).

image.png

Es ist zu beachten, dass eine Korrelation zwischen CSG (rot) und AlexNet-Fehlerrate (blau) besteht. Sie können sehen, dass CSG auch dann ordnungsgemäß funktioniert, wenn die Datensätze unterschiedlich sind.

Die folgende Abbildung zeigt die Ergebnisse eines Experiments mit einem Datensatz namens MioTCD.

image.png

Hier wird die CSG berechnet und gleichzeitig die Anzahl der Daten reduziert. Und zu CSG Die Fehlerrate erhöht sich proportional. In diesem Datensatz Sie können sehen, dass es kein Problem gibt, selbst wenn die Daten um etwa 80% reduziert werden.

In CIFAR10 hingegen werden die Daten reduziert, wie in der folgenden Tabelle gezeigt. Die Fehlerrate steigt stetig an.

image.png

Auch hier können Sie sehen, dass die CSG proportional zur Fehlerrate zunimmt.

Wenden Sie unter Verwendung der Matrix W MDS auf die folgende Gleichung an, um die Ähnlichkeit zwischen Klassen zu bestimmen. Es kann visualisiert werden.

S=1-W

Die folgende Abbildung zeigt MDS.

image.png

MNIST ist gut zwischen Klassen getrennt, aber im Fall von CIFAR10 "Hund" und "Katze", "Hirsch" und "Vogel" liegen nahe beieinander und sind ähnlich Ich verstehe. Mit anderen Worten, diese sind relativ schwer zu unterscheiden.

Implementierung

Zusammenfassend gelang es MDS und W, Ergebnisse zu erzielen, aber der Punkt ist ** CSG reproduzierte sich nicht gut. ** ** **

Implementierungsbedingungen

Der Zweck des Experiments besteht darin, "den Übergang von CSG zu sehen und gleichzeitig die Daten von CIFAR10 zu reduzieren". Mit anderen Worten, es gibt Tabelle 6 wieder.

Der Auto-Encoder zum Einbetten wurde unter den folgenden Bedingungen getestet.

Einbettungsmethode

Die Einbettungsmethode ist die mit der höchsten Punktzahl im Papier. Die Technik ist CSG $ CNN_ {AE} $ t-SNE.

Dies wird nach dem folgenden Verfahren berechnet.

Schmerzstabilisierung

Das im Experiment erzeugte CSG ist nicht sehr stabil. In erster Linie der einzigartige Wert, der in der Zeitung herauskam Da es nicht reproduziert wurde, habe ich das Gefühl, dass etwas mit der Implementierung nicht stimmt. Ich konnte es mit meiner eigenen Fähigkeit nicht verstehen.

Die folgenden Maßnahmen werden ergriffen, um es irgendwie zu stabilisieren.

Als Ergebnis der obigen Maßnahmen wurde die CSG für jede Datengröße 5 x 5 = 25 Mal berechnet und der Durchschnittswert berechnet.

Implementierungsergebnis

Ich habe den CSG berechnet, aber manchmal liegt der Korrelationskoeffizient bei 0,9 und manchmal bei 0. Ich kann sagen, dass ich ihm überhaupt nicht vertrauen kann.

W und MDS haben jedoch ähnliche Ergebnisse wie das Papier, daher werde ich sie melden.

ダウンロード.png

Obwohl W ähnliche Ergebnisse lieferte, ist die Ähnlichkeit zwischen "Hund" und "Katze" wie in der Veröffentlichung. Es war kein großer Wert.

ダウンロード (1).png

Die Ergebnisse des MDB ähneln denen des Papiers. Richtig, "Katze" und "Hund", "Hirsch" und "Berd" sind in unmittelbarer Nähe.

Ausführungsgeschwindigkeit

Dieses Mal habe ich es mit der GPU von Colaboratory überprüft. Was die GPU betrifft, kam ** No way ** `` Tesla P100``` heraus, also als ich `Tesla K80``` vorerst in Klammern verwendete Ich werde auch die Zeit aufschreiben, an die ich mich erinnern muss.

Die obige Zeit ist die Zeit, zu der alle Daten von CIFAR10 verwendet werden. Wie Sie sehen können, ist die Ausführungsgeschwindigkeit schneller als das Trainieren von CNN und das direkte Erkennen der Klassifizierungsgenauigkeit. Ich verstehe.

Zusammenfassung

Unter Anwendung der obigen Erkenntnisse ** Effiziente Reduzierung der Menge klassifizierter Daten, effektiv bei der Datenbereinigung ** Es kann funktionieren. Ich werde diese Details im nächsten Artikel schreiben.

Recommended Posts

[Papiere und Implementierung] Wenn Sie gefragt werden "Ist dieser Datensatz schwierig?" ...
Was vergleichst du mit Python und ==?
Überprüfen Sie, ob Sie ein Gelehrter sind