Es ist lange her, dass Deep Learning seine Position im Bereich des Opportunity-Lernens fest etabliert hat. Dieses Mal möchte ich eine kurze Zusammenfassung und einige Demos von Deep Metric Learning vorstellen, das aufgrund seiner hohen Leistung und Vielseitigkeit in verschiedenen Bereichen angewendet wird. Da die handschriftliche Zeichenerkennung und die handschriftliche Zeichenerkennung allein nicht interessant sind, erkennen wir auch Anomalien.
Deep Metric Learning
Metrisches Lernen ist eine Methode namens "Fernunterricht", bei der die Konvertierung (Zuordnung) vom Merkmalsraum der Eingabedaten in den Merkmalsraum gelernt wird, der die Ähnlichkeit der Daten widerspiegelt.
In einer Nussschale
--Daten derselben Klasse sind nahe beieinander
Erfahren Sie, wie Sie in Feature-Space konvertieren.
Bei der Klassenklassifizierung ist es auch in Fällen, in denen die Entfernung zu eng und schwierig zu klassifizieren ist, möglich, die Unterscheidungsgenauigkeit zu verbessern, indem der Merkmalsraum so gelernt wird, dass dieselbe Klasse nah und die verschiedenen Klassen weit entfernt sind. Ich kann es schaffen
Metrisches Lernen selbst ist eine alte Methode, aber Deep Metric Learning ist eine Methode, um diese Transformation nichtlinear durch das Deep Neural Network zu entwerfen. Deep Metric Learning ist äußerst vielseitig, da es eine Methode zum Erlernen der "Entfernung" zwischen Daten darstellt und aufgrund seiner hohen Leistung eine Vielzahl von Anwendungsbereichen wie folgt bietet.
Dies ist eine Methode, die häufig im Wettbewerb "Kaggle" vorkommt, bei dem Datenwissenschaftler aus aller Welt um ihre Leistung konkurrieren. Dieses Mal werden wir eine Bildklassifizierung und Erkennung von Anomalien durchführen.
Deep Metric Learning wird verwendet, um die bekannten handgeschriebenen MNIST-Zeichen zu erkennen. Daten: 0-9 handgeschriebenes Textbild von 28 x 28 Pixel Lerndaten: 50.000 Blatt Testdaten: 10.000 Blatt
Es wurden verschiedene Methoden als Deep Metric Learning-Methoden vorgeschlagen. Dieses Mal werden wir aufgrund der Lerngeschwindigkeit, der hohen Leistung und der Einfachheit des Modells selbst den Softmax-Verlust mit L2-Einschränkungen verwenden.
L2-constrained Softmax Loss L2-beschränkter Softmax-Verlust ist eine Technik, die die L2-Norm der Ausgabe der letzten Schicht des Deep Neural Network auf eine Konstante $ \ alpha $ beschränkt, die eine Hypersphäre mit einem Radius von $ \ alpha $ für die Eingabedaten ist. Es ist gleichbedeutend mit der obigen Einbettung.
Die Formel für L2-beschränkten Softmax-Verlust lautet:
\text{minimize } -\frac{1}{M} \sum_{i=1}^{M} \log \frac{e^{W_{y_{i}}^{T} f\left(\mathbf{x}_{i}\right)+b_{y_{i}}}}{\sum_{j=1}^{C} e^{W_{j}^{T} f\left(\mathbf{x}_{i}\right)+b_{j}}}\\
\text { subject to } \quad\left\|f\left(\mathbf{x}_{i}\right)\right\|_{2}=\alpha, \forall i=1,2, \dots M\\
Durch Auferlegen einer Einschränkung zum Einbetten von Daten in eine hypersphärische Form ist es möglich zu lernen, dass die Kosinusähnlichkeit zwischen Daten derselben Klasse groß und die Kosinusähnlichkeit mit verschiedenen Klassen klein ist.
Bei normalem Softmax-Verlust ist beispielsweise bei einem Gesichtsfoto die L2-Norm groß für ein leicht verständliches Bild, das geradeaus zeigt, und die L2-Norm ist groß für ein Bild, bei dem es schwierig ist, Merkmale wie seitliches oder liegendes Bild aufzunehmen. Es hat die Eigenschaft, kleiner zu werden. Infolgedessen wird das Lernen von leicht verständlichen Bildern angezogen, die geradeaus schauen, und Bilder mit einer kleinen L2-Norm, die kurz gesagt schwierig ist, werden tendenziell ignoriert.
Der Lm-beschränkte Softmax-Verlust überwindet dieses Problem, indem die L2-Norm unabhängig von den Daten konstant gehalten wird, wodurch die Auswirkung aller Daten auf den Verlust einheitlich wird.
Die Implementierung des L2-beschränkten Softmax-Verlusts selbst ist sehr einfach und kann erreicht werden, indem die L2-Normnormalisierungsschicht und die konstante $ \ alpha $ -Skalierungsschicht zur Ausgabe der letzten Schicht des Deep Neural Network hinzugefügt und der Softmax-Verlust berechnet werden. Ich werde.
Die Implementierung erfolgt mit Keras in Google Colaboratory. Wie unten gezeigt, stapeln Sie 3 Faltungsschichten und fügen Sie eine L2-beschränkte (Lambda-Schicht) zwischen der FC-Schicht (vollständig verbundene Schicht) und Softmax ein. Diese L2-Beschränkung ist der einzige Unterschied zum normalen Convolutional Neural Network (CNN).
** Modellübersicht **
** Modellausgabe in Keras **
** Verschiedene Lernparameter **
Um den Effekt von Deep Metric Learning zu bestätigen, visualisieren wir den Eingabe-Feature-Space und den konvertierten Feature-Space, indem wir sie mit t-SNE auf zwei Dimensionen reduzieren. t-SNE ist ein Algorithmus, der die Dimensionskomprimierung so durchführt, dass die "Nähe" von Daten im hochdimensionalen Raum auch im niedrigdimensionalen Raum erhalten bleibt. Da ein Lehreretikett nicht für die Komprimierung verwendet wird, befinden sich Daten ausschließlich im hochdimensionalen Raum. Sie können sehen, wie getrennt sie sind.
** 1. Visualisierung des Eingaberaums (784 Dimensionen → 2 Dimensionen) ** Jeder Punkt entspricht einem Bild, und dieselbe Farbe repräsentiert Daten, die zu derselben Zahlenklasse gehören. Selbst im Eingaberaum gibt es viele Überlappungen und Variationen, obwohl er im Allgemeinen für jede Klasse getrennt ist.
** 2. Visualisierung der letzten Schicht mit normalem CNN (64. Dimension → 2. Dimension) **
Da das CNN selbst eine hohe Leistung aufweist, können Sie sehen, dass selbst ein normales CNN in der letzten Schicht ziemlich gut getrennt ist (Cluster werden für jede Klasse gebildet). Obwohl es gut getrennt ist, können Sie bei genauem Hinsehen häufig einen kleinen Sprungwert erkennen.
** 3. Visualisierung der letzten Ebene mit L2-beschränktem Softmax-Verlust (64. Dimension → 2. Dimension) **
In L2-beschränktem Softmax-Verlust können Sie sehen, dass die Cluster klarer voneinander getrennt sind als in einem normalen CNN. Dank der Normalisierung der L2-Norm tragen alle Daten zum Lernen bei und es gibt fast keine Sprungwerte. Sie können sehen, warum Deep Metric Learning als "Fernunterricht" bezeichnet wird.
Die Identifikationsergebnisse für 10.000 Testbilder sind wie folgt. Wie Sie den hohen Grad an Trennung in der Visualisierung der endgültigen Schicht sehen können, ist ersichtlich, dass die Genauigkeit einfach dadurch verbessert wird, dass die Einschränkungen der L2-Normalisierungsschicht und der Skalierungsschicht in dasselbe CNN-Modell eingefügt werden. Sowohl Genauigkeit als auch Verlust zeigen einen sanften Übergang und beide sind schließlich besser als CNN (kein L2-Verlust).
Methode th> | CNN (kein L2-Verlust) th> | L2-beschränkter Softmax-Verlust th> tr> |
---|---|---|
Identifikationsrate td> | 99,01 td> | 99,31 td> tr> |
Lernen (Genauigkeit) td> | td> | td> tr> |
Lernen (Verlust) td> | td> tr> |
Übrigens sind die Bilder (69 Bilder), die durch L2-beschränkten Softmax-Verlust nicht identifiziert werden konnten, wie folgt. ・ Pred: Vorhersagewert des L2-beschränkten Softmax-Verlusts ・ Richtig: Richtige Antwortbezeichnung
Ich verstehe dieses Gefühl! Es gibt einige Dinge, die ich sagen möchte. Es scheint selbst für Menschen schwierig zu sein, 100 Punkte zu bekommen. .. Es scheint, dass die Genauigkeit zunimmt, wenn die Trainingsdaten von Schwachstellen erhöht werden.
Ich habe eine Demo erstellt, die mit dem von mir erlernten Modell in Echtzeit mit Flask verarbeitet werden kann. Sie können sehen, dass sie es fest identifiziert haben. Erstens liegt die Identifikationsrate bei 99,3%, daher scheint es in Ordnung zu sein, wenn es sich nicht um eine sehr seltsame Zahl handelt.
Obwohl die Identifikation solide ist, werden im gegenwärtigen Zustand Dinge, die eindeutig keine Zahlen sind, wie folgt zwangsweise einem von ihnen zugewiesen.
Wenn etwas eingegeben wird, das keine Zahl ist, möchten Sie sagen, dass es keine Zahl ist, anstatt etwas in der Nähe auszugeben. Verwenden wir die Erkennung von Anomalien, um nicht numerische Zahlen abzuwehren und gleichzeitig die herkömmliche Unterscheidungsfähigkeit beizubehalten.
Wie ich zu Beginn schrieb, kann Deep Metric Learning auch auf die Erkennung von Anomalien angewendet werden. Es ist höher als die Erkennung von Anomalien im Eingaberaum, indem eine Anomalieerkennung im Merkmalsmengenraum durchgeführt wird, die in einer Form gelernt wurde, die die Ähnlichkeit der Daten widerspiegelt. Sie werden in der Lage sein, Genauigkeit zu erhalten. Deep Metric Learning selbst ist Fernunterricht und keine Methode zur Erkennung von Anomalien. Daher ist eine andere Methode zur Erkennung von Anomalien erforderlich. Dieses Mal verwenden wir den Local Outlier Factor (LOF) zur Erkennung von Anomalien.
Local Outlier Factor(LOF) LOF ist eine Methode zur Erkennung von Anomalien, die sich auf die Datendichte im Raum konzentriert. Es ist wie eine erweiterte Version von k-next neighbour (kNN), bei der kNN die Datenvariabilität von Cluster zu Cluster nicht berücksichtigen kann, während LOF ** Lokale Dichte mit k Daten in der Nachbarschaft ist. Durch Beachtung von) ** wird es möglich, Anomalien unter Berücksichtigung der Datenverteilung zu erkennen.
Lokale Dichte = 1 / durchschnittliche Entfernung zu k nahe gelegenen Punkten
Die Formeln und Details werden weggelassen, aber in dem in der folgenden Abbildung gezeigten Fall sind Daten A beispielsweise weit von den benachbarten Clustern entfernt, sodass wir sie als abnormal beurteilen möchten und Daten B in derselben Verteilung wie die benachbarten Cluster vorliegen. Weil es in ist, möchten Sie es als normal beurteilen. Da B jedoch in Bezug auf den Abstand von der Umgebung von k weiter entfernt ist, kann kNN nicht damit umgehen. Andererseits bestimmt LOF den Schwellenwert für Anomalien basierend auf der Dichte der umgebenden Daten, sodass solche Fälle behandelt werden können.
LOF wird auf die Ausgabe der L2-beschränkten Schicht des Modells angewendet, die durch MNIST-Identifizierung gelernt wurde, um Anomalien zu erkennen (keine Notwendigkeit, Deep Neural Net neu zu trainieren). Wenn der LOF feststellt, dass er abnormal ist, wird er als Fehler ausgegeben, und wenn festgestellt wird, dass er normal ist, wird das Identifikationsergebnis von Sofmax wie zuvor ausgegeben.
LOF verwendet Scikit-Learn und lernt mit den folgenden Parametern. ・ N-Nachbarn: 20 ・ Kontamination: 0,001 ・ Neuheit: wahr
Die folgenden zwei Arten von Datensätzen werden als Ziele für die Erkennung von Anomalien verwendet.
Datensatz th> | Fashion-MNIST th> | Cifar-10 th> tr> |
---|---|---|
Übersicht td> | Modebilddatensatz für Hemden, Taschen, Schuhe usw. (10 Klassen) td> | Natürlicher Bilddatensatz für Flugzeuge, Autos, Hunde usw. (10 Klassen) td> tr> |
Bildbeispiel td> | td> | td> tr> |
In beiden Fällen gibt es keine numerischen Daten. Fashion-MNIST ist ein 28 x 28 Pixel großes Graustufenbild. Verwenden Sie es also so wie es ist, und Cifar-10 ist ein 32 x 32 Pixel großes Farbbild. Verwenden Sie es also nach der Graustufen- und Größenänderung. Ich werde. Da Deep Nerual Net nur mit handgeschriebenen Zeichen MNIST gelernt wird, sind beide unbekannte Bilder **, wenn sie von Deep Neural Net aus betrachtet werden. Ich möchte testen, ob diese beiden Datensätze als Anomalien im LOF des Feature-Space der letzten Ebene korrekt abgestoßen werden.
Als Benchmark verwenden wir die Anomalieerkennung, wenn LOF im Eingabe-Feature-Space angewendet wird.
** LOF im Eingabefeature-Bereich: Benchmark **
Daten th> | Normale Beurteilung th> | Abnormale Beurteilung th> tr> |
---|---|---|
MNIST | 0.99 | 0.01 |
Fashion-MNIST | 0.70 | 0.30 |
Cifar-10 | 0.16 | 0.84 |
Obwohl MNIST 99% als normal erkennen kann, ist der Normalbereich zu groß, 70% von Fashion-MNIST sind normal und 16% von Cifar-10 sind normal.
** Auf der letzten Ebene des Deep Metric Learning (L2-beschränkter Softmax-Verlust) LOF: Diesmal Methode **
Daten th> | Normale Beurteilung th> | Abnormale Beurteilung th> tr> |
---|---|---|
MNIST | 0.99 | 0.01 |
Fashion-MNIST | 0.12 | 0.88 |
Cifar-10 | 0.05 | 0.95 |
Während 99% des normalen Urteils von MNIST beibehalten werden, können 88% von Fashion-MNIST und 95% von Cifar-10 als abnormal beurteilt werden.
Wenn Sie etwas mehr Anomalien abwehren möchten, können Sie die Kontamination erhöhen (Verhältnis der Ausreißer in den Trainingsdaten). Wenn die Kontamination 0,01 beträgt, ist das Ergebnis wie folgt.
Daten th> | Normale Beurteilung th> | Abnormale Beurteilung th> tr> |
---|---|---|
MNIST | 0.96 | 0.04 |
Fashion-MNIST | 0.02 | 0.98 |
Cifar-10 | 0.00 | 1.00 |
4% der MNIST-Daten sind abnormal. Mit Fashion-MNIST (98%) und Cifar-10 können alle Bilder als abnormal beurteilt werden. Wie Sie auf dem Bild sehen können, das nicht identifiziert werden konnte, enthält MNIST Daten, die zunächst nur schwer zu identifizieren sind. Angesichts der Genauigkeit der Erkennung von Anomalien scheint dies für den praktischen Gebrauch besser zu sein.
Ich habe auch eine Demo erstellt, die mit Flask in Echtzeit verarbeitet werden kann. Wenn ein anderes Zeichen als eine Nummer kommt, wird es als abnormal abgelehnt (keine Ziffer), und es kann bestätigt werden, dass die Nummer noch identifiziert ist.
In einer einfachen Demo ist zu sehen, dass Fernunterricht mit Deep Metric Learning die Anwendung auf die Erkennung von Anomalien erleichtert und die Erkennungsgenauigkeit verbessert. Es ist als Konzept leicht zu verstehen, und insbesondere Softmax Loss mit L2-Einschränkungen hat den Vorteil, dass es sehr einfach zu implementieren ist, da es nur die L2-Norm einschränkt.
In Zukunft möchte ich verschiedene Methoden vorstellen und auf diese Weise so viel wie möglich demonstrieren.
Demo
Recommended Posts