[PYTHON] Techniken zum Verständnis der Grundlagen von Deep-Learning-Entscheidungen

Deep Learning kann in bestimmten Bereichen eine extrem hohe Genauigkeit bieten, und sein Anwendungsbereich wird stetig erweitert. Solch tiefes Lernen hat jedoch auch seine Schwächen. Eines der größten Probleme ist, dass ich nicht weiß, worauf das Urteil basiert. Deep Learning hat die Eigenschaft, dass es gut darin ist, die Merkmale selbst in den Daten während des Lernprozesses zu lernen. Dies kann gesagt werden, dass "Benutzer keine Features extrahieren müssen", aber umgekehrt ist es Sache des Netzwerks, zu entscheiden, welche Features extrahiert werden sollen. Wie der Name schon sagt, sind die extrahierten Merkmale im Gewicht des tiefen Netzwerks latent, und es ist äußerst schwierig, "etwas" daraus in einer Form zu extrahieren, die der Mensch verstehen kann.

learned_weights.png

Beispiel: Antwort aus der obigen Abbildung, die das Gewicht des Netzwerks darstellt, auf welcher Grundlage dieses Netzwerk die Katze als Katze beurteilt (Zeitlimit: 3 Minuten) * Bild aus [CS231n Visualizations](http: //cs231n.github) .io / neuronale Netze-3 /) *

"Ich sollte etwas lernen, aber ich bin mir nicht sicher, was ich lerne."

Dies ist ein Problem der Interpretierbarkeit beim tiefen Lernen. Die Forschung zu diesem Punkt hat in den letzten Jahren jedoch Fortschritte gemacht, und es wurden verschiedene Methoden vorgeschlagen, um die Grundlage für das Urteil zu klären. In diesem Dokument möchte ich diese Methoden vorstellen.

1. Bedeutung des Verständnisses der Grundlage des Urteils

Es gibt auch eine Theorie, dass "wenn die Genauigkeit hoch ist, ist das in Ordnung", also werde ich zuerst die Vorzüge der Erklärungskraft anhand einiger Beispiele vorstellen.

Das Folgende ist eine Studie, die Pixel visualisiert, die wichtige Hinweise für Vorhersagen bei der Bildklassifizierung sind.

smoothgrad.PNG SMOOTHGRAD//SmoothGrad:removingnoisebyaddingnoise

Das linke ist das Eingabebild, und das Schwarzweißbild auf der rechten Seite ist eine Visualisierung der wichtigen Teile für die Beurteilung (das obere ist die vorhandene Methode, das untere ist die vorgeschlagene Methode). Bei Anwendung auf ein Modell der pathologischen Diagnose kann geklärt werden, wo im Bild beispielsweise eine Röntgenaufnahme fokussiert wurde. Es ist schwer, Leute zu überzeugen, die sagen: "Du bist krank. Ich weiß nicht warum, aber mit hoher Wahrscheinlichkeit." Daher ist das Teilen des Prozesses ein wichtiger Prozess, um die getroffenen Entscheidungen zu überzeugen. .. Deep Learning war auf dem Gebiet der Bildgebung sehr erfolgreich, und diese Techniken sind ein wirksames Mittel, um den Entscheidungsprozess zu verstehen.

Als nächstes möchte ich eine Studie vorstellen, die nicht nur anhand der Aussagen zu SNS erkennt, ob eine Krisensituation vorliegt (z. B. Selbstmord wahrscheinlich), sondern auch die Grundlage für die Erkennung bildet.

crisis.PNG Detecting and Explaining Crisis

In dieser Studie verwenden wir eine Technik namens Aufmerksamkeit, die häufig in der Verarbeitung natürlicher Sprache verwendet wird, um die Wichtigkeit der Beurteilung für jedes Wort in einer Aussage zu berechnen und zu visualisieren. Da es so viele Kommentare zu SNS gibt, versuchen wir zu helfen, indem wir diejenigen mit hohem Risiko priorisieren (testen) (Übrigens führen wir diese Forschung gemeinsam durch Koko. //itskoko.com/) ist ein Unternehmen des MIT Media Lab, das über die Messenger-App Funktionen zur Fehlerberatung bereitstellt. Da er von einer Forschungseinrichtung stammt, versucht er, die neuesten Forschungsergebnisse im Service zu nutzen. Es ist eine Funktion).

Es gibt auch Studien, die diese Aufmerksamkeitstechnik auf Bildunterschriften anwenden, um herauszufinden, auf welche Stelle im Bild Sie sich beim Generieren von Untertiteln konzentrieren.

image_caption_explanation.png

Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

Es kann gesagt werden, dass alle Studien davon ausgehen, dass Menschen auf der Grundlage des Urteils des maschinellen Lernmodells handeln (Arbeit verrichten). Ich denke, dass maschinelles Lernen in Zukunft in verschiedenen Bereichen eingesetzt wird, aber ich denke, dass ein solcher Mechanismus für Menschen und Modelle des maschinellen Lernens unabdingbar ist, um zusammenzuarbeiten. In Europa wird dieser Punkt in Betracht gezogen, und bei Geräten, die mit einer sogenannten KI ausgestattet sind, wird auch in Betracht gezogen, dass es möglich sein sollte, den Beurteilungsprozess darzustellen, wenn der Benutzer ihn anfordert]( https://arxiv.org/abs/1606.08813).

Dies ist auch wichtig für die Überprüfung des Verhaltens des maschinellen Lernmodells. Dies liegt daran, dass in den letzten Jahren berichtet wurde, dass es eine Methode zum "Hacken" des Lernmodells gibt. Dies wird auch als Adversarial Attack bezeichnet, und es ist möglich, das Erkennungsergebnis falsch zu identifizieren, indem dem Eingabebild winziges Rauschen hinzugefügt wird, das auf einen Blick nicht sichtbar ist. In der folgenden Abbildung wird der Panda durch Hinzufügen von Rauschen zum Eingabebild mit einem Tenagazaru verwechselt.

adversarial_example.png Intriguing properties of neural networks

Darüber hinaus haben einige Studien gezeigt, dass es möglich ist, Verkehrszeichen falsch zu identifizieren. Dies ist ein etwas schreckliches Beispiel, wenn Sie glauben, dass das Stoppschild während des automatischen Betriebs falsch identifiziert wird. Diese Methode ist eine Top-Konferenz des maschinellen Lernens [NIPS prüft auch aktiv die Methode und die Verteidigungsmethode in einem Wettbewerbsformat](https://www.kaggle.com/c/nips-2017-non- gezielter gegnerischer Angriff).

Wenn Sie die Urteilsgründe des maschinellen Lernmodells verstehen, können Sie erkennen, dass es sich um eine "ungewöhnliche Begründung" handelt, wenn Sie von einem solchen Angriff getroffen werden. Außerdem kann die Genauigkeit verringert werden, selbst wenn es nicht separat angegriffen wird, indem lediglich die Tendenz von Daten (wie z. B. das Benutzerverhalten) geändert wird. Selbst in diesem Fall ist es einfach, damit umzugehen, wenn Sie die Anzahl der Funktionen kennen, auf die sich das Modell stützt. Mit anderen Worten, es ist wichtig, die Grundlage für die Beurteilung im Hinblick auf die Aufrechterhaltung des von uns verwendeten Modells zu interpretieren.

2. Definition des "Verständnisses" der Urteilsgrundlage

Von hier aus werden wir uns ansehen, wie man die Urteilsgrundlage des tiefen Lernens tatsächlich "versteht". Es ist jedoch unklar, was unter "Verstehen" zu verstehen ist. Daher hier einige Definitionen.

Erstens gibt es zwei Perspektiven für das Verständnis des Modells.

Da es verschiedene Arten von Modellen gibt, die tatsächlich verwendet werden, ist es schwierig, den Mechanismus der Inhalte einzeln zu verstehen. Daher konzentrieren wir uns hier auf das "Verstehen von Verhalten". Insbesondere wird davon ausgegangen, dass Sie "verstehen" können, wenn Sie "erklären" können, welche Art von Eingabe und welche Art von Ausgabe erhalten wird, beginnend mit dem Zustand, in dem das trainierte Modell angegeben wird. Apropos Verkaufsautomaten: Es ist in Ordnung, wenn Sie verstehen, welche Art von Getränk beim Drücken der Taste austritt, und wenn Sie die Taste drücken, wird dieses Signal zum internen Automaten geleitet ... ,darüber.

Nun, da "Erklärung" dem Menschen gegeben wird, muss sie in "Ausdrücken" gegeben werden, die der Mensch verstehen kann. Wenn Sie es jedoch "ausdrücken" können, können Sie es erklären. Auch wenn es sich um einen vom Menschen erkennbaren Ausdruck wie das Bild handelt, das das Gewicht des zuvor gezeigten Netzwerks visualisiert, ist es eine andere Geschichte, ob es erklärende Kraft hat. Der Unterschied zwischen diesem Ausdruck und der Beschreibung ist wie folgt definiert.

Mit anderen Worten, "Erklärung" ist nicht nur "Ausdruck" wie Visualisierung und Schreiben, sondern "Erklärung" erst nach "Ausdrücken" der "Merkmale, die zur Ausgabe des Netzwerks beitragen". ist. Mit anderen Worten, die Erklärung umfasst zwei Schritte: Berechnen der Auswirkung jeder Eingabe auf die Ausgabe und Ausdrücken in einer für Menschen lesbaren Form. Die nachfolgend eingeführten Methoden wurden auch für diese beiden Punkte entwickelt.

3. Fordern Sie die "Erklärung" des erlernten Netzwerks heraus

Von hier aus werde ich eine Methode vorstellen, um die Ausgabe des Netzwerks tatsächlich zu erklären. Die Methoden können wie folgt grob unterteilt werden.

  1. Erstellen Sie eine Eingabe, die die Netzwerkausgabe maximiert
  2. Analysieren Sie die Eingangsempfindlichkeit
  3. Kehren Sie den Pfad von Ausgabe zu Eingabe um
  4. Schätzen Sie die Output-Trends aus verschiedenen Inputs
  5. Leiten Sie die Beurteilungskriterien aus dem Änderungsbetrag ab
  6. Korrigieren Sie die Lernergebnisse so, dass sie vorhersehbar sind
  7. Integrieren Sie den Fokus auf die Eingabe in das Modell

Das Einbeziehen des letzten Gesichtspunkts in das Modell (Achtung) erfolgt aus der Perspektive einer Black Box, da Änderungen am Netzwerk selbst erforderlich sind. Dies ist jedoch eine sehr effektive Methode und wird hier vorgestellt.

3.1 Aktivierungsmaximierung

Bei Netzwerken, die sich mit Klassifizierungsproblemen befassen, ist die Ausgabe die Klassifizierungswahrscheinlichkeit für jede Kategorie. Wenn Sie hier eine Eingabe mit einer sehr hohen Klassifizierungswahrscheinlichkeit einer Kategorie finden, ist dies gleichbedeutend mit dem, was das Netzwerk als "typisches Beispiel" für diese Kategorie ansieht. Wenn Sie sie identifizieren können, ist sie hilfreich bei der Schätzung der Beurteilungsgrundlage. ist.

Das Folgende ist eine 2012 von Google veröffentlichte Studie, die es einem Netzwerk, das die Eigenschaften eines Bildes durch unbeaufsichtigtes Lernen (Auto Encoder) gelernt hat, ermöglicht, es zu identifizieren und die Daten als die menschlichsten (oben) und die menschlichsten zu beurteilen Es ist eine Zusammenstellung der zu beurteilenden Daten (unten).

activation_maximization.png Building high-level features using large scale unsupervised learning

Das Problem hierbei ist, $ x ^ * $ zu finden, das die Wahrscheinlichkeit maximiert, dass $ p $ in die Klasse $ c $ eingestuft wird, was im Grunde die minimale Eingabe ist.

x^* = max_x \log p(w_c|x) - \lambda ||x||^2

(||x||^2 = 1Es gibt auch eine Methode, um die Einheit sphärisch einzuschränken)

Dies wird jedoch sicherlich ein mysteriöses Bild erzeugen, das die maximale Ausgabe hat, aber vom Menschen nicht verstanden werden kann (ein Zustand wie Überlernen), so dass es auch ein Muster gibt, das die Einschränkung auferlegt, dass es näher an der tatsächlichen Ausgabe liegt. Es gibt.

x^* = max_x \log p(w_c|x) + \log p(x)

Dies bedeutet, dass $ p (x) $ hinzugefügt wird, dh die Wahrscheinlichkeit, dass die Daten tatsächlich angezeigt werden. Es gibt eine Studie, die Bildmerkmale unter Verwendung derselben Einschränkungen visualisiert.

am_with_expert.png Understanding Deep Image Representations by Inverting Them

Wenn die Eingabedaten jedoch hochdimensional sind, ist es sehr schwierig, dieses $ p (x) $ mit hoher Genauigkeit zu schätzen. Daher gibt es auch eine Methode, um sie in Kombination mit einem Generierungsmodell wie VAE oder GAN durchzuführen. Hier wird $ x ^ * $ aus dem entsprechenden Vektor $ z $ durch den Generator generiert.

max_{z \in Z} \log p(w_c|g(z)) - \lambda ||z||^2

Es besteht aus der Erzeugung eines Bildes aus $ z $, das in die Klasse $ w_c $ eingeteilt ist. Die Bilderzeugung ist GAN, aber es gibt eine Studie in Richtung GAN, die dieser Einschränkung entspricht, dh mit der Einschränkung, dass das erzeugte Bild in dieselbe Klasse wie die reale Klasse eingeteilt wird ([Bedingte Bildsynthese mit Hilfsmitteln]]. Klassifikator-GANs](https://arxiv.org/abs/1610.09585)).

ac-gan.PNG

Darüber hinaus unterscheiden sich das Ziel von GAN und das Ziel, die Grundlage des Urteils zu verstehen, geringfügig.(Kurz gesagt, es ist besser, bis zu einem gewissen Grad abstrahiert zu werden als die reale Sache).. Daher in der obigen Formel\lambda||z||^2Der Ausdrucksbereich wird unterdrückt, indem die Einschränkungen von ausgenutzt werden.

Übrigens verwendet Deep Dream, das für eine Weile ein heißes Thema wurde, diese Methode. Die Optimierung des Eingabebildes (oder des zufälligen Rauschens) zur Maximierung der Ausgabe des Netzwerks führt zu einem solchen Bild. Dieser Artikel enthält eine detaillierte Erläuterung der Visualisierung von Bildfunktionen durch diese Aktivierungsmaximierung (die folgenden Bilder stammen ebenfalls aus diesem Artikel).

Feature Visualization

deep_dream.png

Als Fortsetzung dieses Artikels wird außerdem ein Artikel veröffentlicht, der eine Demo enthält, in der Sie die Grundlage der Beurteilung interaktiv auf der Seite sehen können. Dieser Artikel geht noch einen Schritt weiter und versucht zu identifizieren, wo im Netzwerk das Urteil jeder Klasse maximiert wird.

The Building Blocks of Interpretability

3.2 Empfindlichkeitsanalyse

Wenn eines der Eingabefunktionen durch Ändern einen signifikanten Einfluss auf die Ausgabe hat, kann es als wichtiges Merkmal angesehen werden. Mit anderen Worten, es scheint, dass seine Bedeutung verstanden werden kann, indem das Ausmaß der Änderung untersucht wird, bei der die Eingabe für das Netzwerk empfindlich ist.

Dies kann erreicht werden, indem der Gradient untersucht wird, da das Ausmaß der Änderung der Punkt ist, an dem die Differenzierung ins Spiel kommt. Da das neuronale Netz in erster Linie durch Gradienten lernt, funktioniert dies gut mit dem vorhandenen Optimierungsmechanismus. Sie können die Empfindlichkeit für die Eingabe von $ x $ einfach wie folgt berechnen:

S(x) = (\frac{\partial f}{\partial x})^2

Das zu Beginn eingeführte SMOOTH GRAD ist ein Gerät, das diesen Look sauberer macht (absichtlich, weil der Farbverlauf zu empfindlich für Rauschen ist). Erstellen Sie mehrere Samples mit Rauschen und mitteln Sie die Ergebnisse.

smoothgrad_architecture.png

Daraus ergibt sich jedoch, welcher Teil der Änderung den Fehler größer / kleiner macht. Ich weiß zum Beispiel, wo ich es ändern muss, damit es eher wie ein Auto aussieht, aber ich weiß nicht, warum es überhaupt als Auto eingestuft wird. Sie müssen sich dessen bewusst sein, wenn Sie es verwenden.

3.3 Umkehren des Pfades von Ausgang zu Eingang (Deconvolution / LRP)

Die nächste Idee ist, dass Sie möglicherweise einige aussagekräftige Ergebnisse erhalten, wenn Sie die Eingabe von der Ausgabe umkehren.

Im Folgenden wird ein Verfahren vorgeschlagen, bei dem die Eingabe, die zu einer bestimmten Schicht beiträgt, zurückgerechnet werden kann, indem das Netzwerk auf eine bestimmte Schicht übertragen und dann der andere Teil als der zu untersuchende Teil auf 0 gesetzt und zurückverteilt wird.

deconvolution.png Striving for Simplicity: The All Convolutional Net

Um den negativen Wert zu entfernen, der die Aktivierung bei dieser Rückausbreitung abschwächt, wird der Teil, in dem der Wert zum Zeitpunkt der Ausbreitung / Rückausbreitung negativ wird, auf 0 gesetzt und weitergegeben (daher ist er nicht linear äquivalent zu ReLU). Wird bearbeitet). In der vorherigen Forschung haben wir diese "geführte Rückausbreitung" genannt, und als Ergebnis ist es uns gelungen, wichtige Punkte in den folgenden Eingaben zu visualisieren.

guided_backpropagation.png

Es wurde auch ein Verfahren vorgeschlagen, bei dem der Gradient von der gewünschten Markierung umgekehrt wird, da nur der Teil bekannt sein soll, der zur Klassifizierung der Klasse beigetragen hat.

grad-cam.png

Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

Dies ist eine Methode zur Berechnung des Beitrags jeder Merkmalskarte bis zur Klassifizierung und zur Rückausbreitung mit dem Gewicht. Dadurch erhalten Sie eine Heatmap-ähnliche Ausgabe (das Grad-CAM-Diagramm am unteren Rand der zweiten Spalte von links in der Abbildung oben). Da der Beitrag jedoch in Karteneinheiten berechnet wird, ist es nicht möglich, Beiträge in Pixeleinheiten wie der oben erwähnten geführten Rückausbreitung zu erhalten. Daher wird im obigen Artikel gesagt, dass es zusammen verwendet werden sollte (Guided Grad-CAM). Die ausführliche Erläuterung von Grad-CAM und das Ergebnis der tatsächlichen Anwendung werden im folgenden Blog vorgestellt.

Deep Learning sucht wo im Bild! ?? Überprüfen Sie den Unterschied zwischen "Oshiyaki" und "Pizza" mit CNN

Die schichtweise Relevanzausbreitung (LRP) ist eine Technik, die die Beziehungen zwischen Schichten in umgekehrter Reihenfolge weitergibt, um die Eingabe zu erreichen. Die Idee ist, dass die Summe der Beiträge jeder Eingabe zur Ausgabe zwischen jeder Schicht gleich ist und sich ihre Verteilung nur durch Ausbreitung ändert.

lrp_principle.png

Anschließend wird die Berechnung dieses Beitragsbetrags (Relevanz) wie folgt festgelegt (Ableitung lautet Erklären nichtlinearer Klassifizierungsentscheidungen mit tiefer Taylor-Zerlegung / pii / S0031320316303582? via% 3Dihub)).

lrp_calc_relevance.png

Die normale Ausbreitung ist die Aktivierung in ReLU (oben in der Tabelle). Wenn der Wertebereich wie in der Eingabeebene, die das Bild empfängt, begrenzt ist (0 bis 255), gilt die Regel in der Mitte der Tabelle (Pixelintensitäten = geschlossenes Intervall). Wird angewandt. Ein Tutorial, um dies tatsächlich zu implementieren, ist ebenfalls verfügbar und Sie können es ausprobieren.

Tutorial: Implementing Layer-Wise Relevance Propagation

Sie können das Ergebnis von LRP für das Bild sehen, das Sie auf dieser Site geschrieben haben Demo ist ebenfalls verfügbar.

lrp_demo.png

Als verbesserte Version dieser Methoden wurde eine Methode namens PatternNet / PatternAttribution vorgeschlagen.

Learning how to explain neural networks: PatternNet and PatternAttribution

In diesem Artikel heißt es, dass es nicht möglich ist, die Gründe für die Beurteilung einfach durch Analyse der "Gewichte" im Netzwerk zu verstehen. Teilen Sie aus diesem Grund zuerst die Eingabe $ x $ in $ s $, die zur endgültigen Ausgabe $ y $ beiträgt, und $ d $ anders als das (dh Rauschen) und drücken Sie sie als $ x = s + d $ aus. Ich werde. Zu diesem Zeitpunkt filtert das Gewicht $ w $ $ d $ von $ x $ und setzt $ s $, was zu $ y $ beiträgt, wenn man bedenkt, dass die Ausgabe eines einfachen Netzwerks $ w ^ T x = y $ ist. Sie können sich vorstellen, dass es eine Rolle zu extrahieren gibt. Dann besteht die Rolle des Gewichts $ w $ darin, das Rauschen $ d $ aufzuheben, sodass die Vektorrichtung von $ w $ von $ d $ abhängt. Unabhängig davon, wie viel Sie suchen, können Sie $ s $ nicht finden. In der folgenden Abbildung ist der schwarze Pfeil $ w $ und der gelbe Pfeil $ d $, und Sie können sehen, dass sie in die Richtung zeigen, in der sie sich gegenseitig aufheben. Die Richtung von $ w $ hängt von $ d $ ab und hat nichts mit dem $ s $ zu tun, das Sie finden möchten.

patternNet.png

Zu diesem Zeitpunkt sollten $ y = w ^ T x = w ^ T (s + d) $ und $ d $ um $ w $ gelöscht werden, also $ w ^ T d = 0 $ und $ w ^ T s = y $. Da $ y $ und $ d $ keine Korrelation haben sollten, entspricht $ cov [y, d] = 0 $ und $ cov [x, y] $ $ cov [s, y] $. Ich werde. Wenn die Funktion, die $ s $ aus $ x $ extrahiert, $ S (x) $ ist, dann ist $ cov [s, y] = cov [S (x), y] $. Sie können dies verwenden, um $ S (x) $ zu finden.

Erstens kann im Fall einer linearen Transformation nur lineares $ y $ ausgegeben werden = $ s $ sollte ebenfalls linear sein, so dass die Korrelation eine lineare Beziehung sein sollte. Mit anderen Worten gilt die folgende Formel.

s = ay => S_a(x) = a w^T x

Ersetzen Sie dies durch die obige $ cov $ -Beziehung

cov[x, y] = cov[S(x), y] => cov[a w^T x, y] = a cov[w^T x, y] = a cov[y, y]

von hier,

a = \frac{cov[x, y]}{cov[y, y]} = \frac{cov[x, y]}{\sigma_y^2}

Es wird sein. Dies ist jedoch nur ein linearer Fall, und es handelt sich um eine nichtlineare Funktion, die sich in ReLU, die häufig in Bildern verwendet wird, nicht in die negative Richtung ausbreitet. In diesem Fall ist es notwendig, $ s $ und $ d $ getrennt für $ s_ + und d_ + $ in positiver Richtung und $ s_- und d_- $ in negativer Richtung zu betrachten. Diese Ableitungsformel wird weggelassen, aber die auf diese Weise zurückpropagierten Werte werden in der erweiterten DeConvNet / Guided Backpropagation und LRP, die als PatternNet bzw. PatternAttribution bezeichnet werden, durch $ s_ + und s_- $ ersetzt.

patternNet_p.png

Zusätzlich kann die Extraktionskapazität von $ S (x) $ unter Verwendung des folgenden Bewertungsindex $ \ rho $ gemessen werden.

patternNet_f.png

$ x - S (x) $ hat eine sehr hohe Korrelation mit $ w ^ T x = y $, denn wenn $ S (x) $ $ s $ vollständig verlässt, bleibt nur $ d $ übrig, was ein Wrack ist. Infolgedessen wird der Wert hoch. Jetzt können Sie die Grundlage der Beurteilung mit höherer Genauigkeit schätzen und ihre Schätzfähigkeit messen.

3.4. Schätzen Sie die Output-Trends aus verschiedenen Inputs (LIME).

Die nächste Idee besteht darin, das Verhalten des Modells anhand unterschiedlich transformierter Eingaben und nicht anhand einer einzelnen Eingabe zu untersuchen. Dies ist das LIME (Local Interpretable Model), das in [„Warum sollte ich Ihnen vertrauen?“ (Erklären der Vorhersagen eines Klassifikators) (http://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf) vorgeschlagen wurde. -Agnostische Erklärungen).

Die Technik besteht darin, zuerst eine Eingabe zu generieren, die wie das in mehrere Teile unterteilte Originalbild aussieht. Füttere es einem trainierten Modell, um Beurteilungsergebnisse zu erhalten. Dann erhalten Sie ein Paar Input und Modellbeurteilung. Lassen Sie dies durch ein einfacheres und aussagekräftigeres Modell lernen, das getrennt vom Hauptkörpermodell erstellt wurde.

lime.png Introduction to Local Interpretable Model-Agnostic Explanations (LIME)

Dann kann die hervorgehobene Merkmalsmenge aus dem trainierten einfachen Modell erhalten werden. Aufgrund der Einfachheit der Technik kann dies auf jedes Modell angewendet werden. Die folgenden Artikel enthalten detailliertere Erklärungen und die Ergebnisse der tatsächlichen Verwendung.

Versuchen Sie, das Vorhersageergebnis des maschinellen Lernens mit LIME zu interpretieren

Black-Box-Vorhersagen über Einflussfunktionen verstehen ist eine Studie, die die Auswirkung dieser Schwankung von Eingabedaten auf die Ausgabe formuliert. Wir haben sowohl die Auswirkung der einzelnen Trainingsdaten als auch die Auswirkung von Änderungen auf die Trainingsdaten formuliert. Auf diese Weise können wir Stichproben identifizieren, die zur Beurteilung des Modells beitragen / die Beurteilungsgenauigkeit verringern, und Änderungen vornehmen, die die Beurteilung des Modells beeinflussen. Ich kann dich führen.

Darüber hinaus gibt es eine Studie, die ein maschinelles Lernmodell des LIME-Mechanismus erstellt hat, um zu identifizieren, was durch Maskieren des Bildes wichtig ist (Lernen, wie das Bilderkennungsmodell maskiert wird). Dies ermöglicht die Visualisierung des maskierten Teils = des wichtigen Teils.

image.png Interpretable Explanations of Black Boxes by Meaningful Perturbation

3.5. Ableiten der Beurteilungskriterien aus dem Änderungsbetrag

Wenn das Ergebnis ist, dass A in Ordnung ist und B NG ist, wie kann B in Ordnung sein / schließen? Wenn Sie das verstehen, können Sie anscheinend verstehen, was zwischen OK und NG = Beurteilungskriterien liegt. Die folgenden Artikel konzentrieren sich auf diesen Punkt.

Interpretable Predictions of Tree-based Ensembles via Actionable Feature Tweaking

Dies ist eine Methode, die auf dem Lernen von Ensembles unter Verwendung eines Entscheidungsbaums basiert. Die minimalen Kosten werden berechnet, indem der Änderungsbetrag berechnet wird, um NG x in jedem Entscheidungsbaum auf OK zu bringen, und der minimale Änderungsbetrag daraus ermittelt wird. Dies ist eine Methode, um den Änderungsbetrag zu ermitteln, mit dem Sie einverstanden sind. In diesem Dokument wird dies auf die Anzeigenschaltung angewendet und versucht, "nicht verkaufbare" Anzeigen in "verkaufbare" Anzeigen umzuwandeln (mit denen geeignete Anzeigengebühren entsprechend den Änderungsgebühren festgelegt werden können).

3.6 Beschränken Sie die Lernergebnisse auf Vorhersehbarkeit

Dies ist eine Umkehridee, und es geht nicht darum, Entscheidungen zu treffen, die Sie überhaupt nicht verstehen. Im Folgenden finden Sie eine Aufgabe, bei der versucht wird, Empfehlungen für Coffeeshops zu erlernen, die normalerweise für Coffeeshops in der Nähe besser sind. Wenn sie jedoch tatsächlich geschult werden, machen sie falsche Vorhersagen, z. B. Empfehlungen, obwohl sie weit entfernt von Datenmangel sind Es ist dafür ausgelegt (linke Abbildung). Um dies zu verhindern, beschränken wir die Tendenz, "eintönig" zu sein (rechte Abbildung).

lattice.png TensorFlow Lattice: Flexibility Empowered by Prior Knowledge Implementierung: Tensorflow / Gitter

Das Konzept besteht darin, den Gesamttrend zu steuern und gleichzeitig die Ausdruckskraft des Modells zu nutzen. Dies ermöglicht es Ihnen, eine feinere Tendenz zu reflektieren, ein lineares Modell oder dergleichen zu treffen. Erstens kann es notwendig sein, die Daten zu erhöhen, aber es gibt viele Fälle, in denen sie nicht verfügbar sind. Es besteht das Risiko, dass Sie nicht in der Lage sind, auf die Situation zu reagieren, mit der Sie sich befassen sollten, indem Sie Einschränkungen anwenden. Sie können jedoch das Risiko eines unvorhersehbaren Verhaltens vermeiden. Dies wird ein Kompromiss sein.

3.7. Aufmerksamkeit auf die Eingabe

Schließlich werden wir eine Methode zur Einführung eines Mechanismus einführen, der den interessierenden Punkt für die Eingabedaten im Modell angibt. Dies ist eine Technik namens Aufmerksamkeit. Wahrscheinlich war das erste Auftreten die Anwendung auf das Übersetzungsmodell, und es schien ein Mechanismus zu sein, um zu lernen, auf welches Wort im ursprünglichen Satz man sich bei der Ausgabe des übersetzten Wortes konzentrieren sollte. In der folgenden Abbildung ist die x-Achse der ursprüngliche Satz und die y-Achse der Übersetzungszielsatz. Es wird gezeigt, auf welches Wort im ursprünglichen Satz Bezug genommen wird, wenn das Wort im Übersetzungszielsatz ausgegeben wird.

attention.png Neural Machine Translation by Jointly Learning to Align and Translate

Die Grundidee von Attention besteht darin, bei der Ausgabe nicht nur die unmittelbar vorhergehende verborgene Ebene, sondern auch die vergangene verborgene Ebene zu verwenden, und das Gewicht wird gemäß den zu diesem Zeitpunkt wichtigen Punkten verteilt.

attention_architecture.png Effective Approaches to Attention-based Neural Machine Translation

Angesichts der versteckten Ebenen zum Zeitpunkt $ t $ als $ h_t $ und der versteckten Ebenen in der Vergangenheit als $ \ override {h_s} $ kann die Aufmerksamkeit für sie wie folgt definiert werden:

a_t(s) = \frac{exp(score(h_t, \overline{h_s}))}{\sum_{s'}exp(score(h_t, \overline{h_s}))}

Es gibt verschiedene Variationen der Punktzahl, z. B. einfach das innere Produkt zu nehmen oder Gewichte für die Aufmerksamkeit vorzubereiten.

attention_score_variation.png

Multiplizieren Sie dann diese Aufmerksamkeit, um einen Vektor (Kontext) $ c $ für die Ausgabe der Zeit $ t $ zu erstellen. Es mag so aussehen, als würden Sie etwas Schwieriges tun, aber es entspricht in etwa einem gewichteten Durchschnitt.

c_t = \sum_s a_t(s) \overline{h_s}

Dies ist der grundlegende Mechanismus der Aufmerksamkeit. Auf diese Weise können Sie von $ a_t $ abrufen, auf welche der Datenreihen Sie sich gerade konzentrieren.

4. Bewertung der Erklärungskraft

Oben haben wir verschiedene Methoden der "Erklärung" eingeführt, aber gibt es eine Möglichkeit, diese "Erklärungskraft" zu überprüfen? Unter diesem Gesichtspunkt gibt es die folgenden zwei Punkte.

4.1 Bewertung der Beschreibungskonsistenz

Sie können die Konsistenz der Beschreibung überprüfen, indem Sie sich ansehen, wie sich die Beschreibung ändert, z. B. wenn es sich bei der Eingabe um ein Bild handelt, und Sie es schrittweise verschieben. In der folgenden Abbildung wird, wenn das Bild von Nummer 2 nach rechts verschoben wird, verglichen, wie sich die Erklärung ($ R (x) $) für jede Methode ändert (wenn das LRP ganz rechts verschoben wird). Es ist ersichtlich, dass der Grad des Einflusses von gering ist.

explanation_1.png Methods for Interpreting and Understanding Deep Neural Networks

4.2 Beurteilung der Richtigkeit der Erklärung

Für die Richtigkeit der Erklärung gibt es eine Technik, die als Pixelflipping bezeichnet wird. Dies dient dazu, die für die Erklärung wichtigen Pixel (Wörter, wenn die Daten eine natürliche Sprache sind) schrittweise zu entfernen und den Grad der Änderung der Genauigkeit zu messen. Die folgende Abbildung zeigt, wie die Klassifizierungsgenauigkeit abnimmt, wenn die wichtigen Pixel extrahiert werden (wieder können Sie sehen, dass der LRP am schnellsten gesunken ist und sehr erklärend ist).

explanation_2.png Methods for Interpreting and Understanding Deep Neural Networks

Mit diesen Methoden können Sie die "Erklärungskraft" der zur Erklärung verwendeten Methode überprüfen.

4.3 Universalität der Implementierung

Die Schätzung der Grundlage für die Beurteilung in der Black Box bezieht sich im Wesentlichen nur auf die Eingabe und Ausgabe. Dies bedeutet, dass Sie beiseite legen, was Sie im Inneren tun. Solange die Ein- und Ausgänge in einem Netzwerk im Inneren übereinstimmen, muss die Schätzung der Grundlage für diese Entscheidung dieselbe sein ... ·darüber.

5. Anwendungsbeispiel

Was kann man mit den Techniken tun, die ich bisher eingeführt habe, um die Entscheidungen von DNN zu erklären? Da DNN sehr gut im Ausdruckslernen ist (Merkmalsextraktion), kann es möglich sein, neues Bewusstsein zu gewinnen, indem Menschen den Ausdruck von einem Objekt lernen lassen, das das Merkmal überhaupt nicht gut erkennt, und es dann erklären. ..

Das Folgende ist eine Visualisierung der Beziehungen zwischen den Atomen, die zur Bildung der Molekülstruktur beitragen, unter Verwendung eines Modells, das die Molekülstruktur trainiert (zum Lesen des Papiers, das diese Präsentation erstellt hat, ist eine beträchtliche Menge an chemischem Wissen erforderlich). Diese Beschreibung kann also etwas ungenau sein.

application_1.png Quantum-Chemical Insights from Deep Tensor Neural Networks

AlphaGo übertraf die Leute in Go, aber wenn AlphaGo ein hohes Maß an Rechenschaftspflicht hätte, hätten die Leute mehr Wissen über Go gewonnen. Es gibt viele Forschungsbereiche, die die Menschen noch nicht vollständig verstanden haben. Ich denke, dass die Kraft des tiefen Lernens eine große Hilfe sein wird, um dies zu klären.

Es gibt viele ungelöste Probleme nicht nur im Bereich der Wissenschaft, sondern auch im Bereich der Sozialwissenschaften. Es ist übertrieben zu sagen, warum Menschen weiter kämpfen, aber in den letzten Jahren wurden Daten zu terroristischen Vorfällen zusammengestellt.

global_tero.png Global Terrorism Database

Solche Daten können Hinweise auf einige wirksame Maßnahmen liefern. Abgesehen davon führt die University of Columbia, die Untersuchungen zur Erkennung von Krisensituationen anhand der zu Beginn eingeführten Aussagen zu SNS durchführt, auch Untersuchungen zur Erkennung von Anzeichen von Bandenkonflikten bei SNS durch. Dies scheint in Zusammenarbeit mit Sozialarbeitern Datenanmerkungen durchgeführt zu haben.

gang.png Automatically Processing Tweets from Gang-Involved Youth: Towards Detecting Loss and Aggression

In Japan, wo es viele Erdbeben gibt, ist es eine vielversprechende Möglichkeit, es für Gegenmaßnahmen gegen Katastrophen einzusetzen. Vor und nach dem Erdbeben im Großen Osten Japans gibt es ein Satellitenbild namens ABCD-Datensatz, das angibt, was nach dem Tsunami sicher war und was nicht.

abcd_dataset.png

Um nach einer Beschädigung des Gebäudes eine Versicherung und eine Entschädigung zu erhalten, muss die Schadenssituation bewertet werden. Bei einer Katastrophe größeren Ausmaßes dauert es jedoch einige Zeit, bis das Geld das Opfer erreicht. Es gibt ein Problem, das es braucht. Zu diesem Zeitpunkt ist es eine große Hilfe, wenn Sie den Grad und die Gründe des Schadens sowie das Vorhandensein oder Fehlen eines Schadens nachweisen können.

Auf diese Weise gibt es nicht nur im wissenschaftlichen Bereich, sondern auch in der Gesellschaft so viele ungelöste Probleme, und es ist für den Menschen allein schwierig, "Merkmale" zu entdecken, um sie zu lösen. Unter diesen Umständen kann es möglich sein, eine Gelegenheit zu erhalten, das Problem zu lösen, indem nicht nur dem maschinellen Lernen, sondern auch dem tiefen Lernen, das besonders stark im Ausdruckslernen ist, "Erklärungskraft" verliehen wird.

Ich denke, dass die Methode, diese "Erklärungen" zu geben, wichtiger wird, um in Zukunft mehr Probleme zu lösen.

6. Referenzen

Articles

Datasets

Recommended Posts

Techniken zum Verständnis der Grundlagen von Deep-Learning-Entscheidungen
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (3)
Visualisieren Sie die Auswirkungen von Deep Learning / Regularisierung
Zusammenfassung der Seiten, die zum Studium des Deep Learning Framework Chainer nützlich sind
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (2)
Die Geschichte des tiefen Lernens mit TPU
Die Geschichte, dass die Lernkosten von Python niedrig sind
Grundlegendes Verständnis der Stereo-Tiefenschätzung (Deep Learning)
Implementierung eines Deep Learning-Modells zur Bilderkennung
Deep Learning 1 Übung des Deep Learning
Zählen Sie die Anzahl der Parameter im Deep-Learning-Modell
Othello ~ Aus der dritten Zeile von "Implementation Deep Learning" (4) [Ende]
Deep Running 2 Tuning von Deep Learning
Deep Learning für die Bildung von Verbindungen?
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
Japanische Übersetzung der öffentlichen Unterrichtsmaterialien des Deep Learning Nano Degree
Grundlegendes Verständnis der Tiefenschätzung mit einer Monokamera (Deep Learning)
Memorandum des Python-Paketverwaltungstools ez_setup
Ich suchte mit Deep Learning nach einer ähnlichen Karte von Hearthstone
[Python] Die potenzielle Feldplanung von Python Robotics verstehen
Wie nutzt man maschinelles Lernen für die Arbeit? 01_ Den Zweck des maschinellen Lernens verstehen
[Erkennung von Anomalien] Versuchen Sie es mit der neuesten Methode des Fernunterrichts
[AI] Deep Learning für das Entrauschen von Bildern
Wie man für den Deep Learning Association G-Test (für Anfänger) lernt [Version 2020]
Diagramm der Geschichte der Anzahl der Ebenen des tiefen Lernens und der Änderung der Genauigkeit
Latein lernen zum Schreiben eines lateinischen Satzanalyseprogramms (Teil 1)
[Beispiel für eine Python-Verbesserung] Was ist die empfohlene Lernseite für Python-Anfänger?
Bis die Deep Learning-Umgebung (TensorFlow) mit GPU für Ubuntu 14.04 vorbereitet ist
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Python-Lernnotiz für maschinelles Lernen von Chainer bis zum Ende von Kapitel 2
Ich habe die gängige Geschichte der Vorhersage des Nikkei-Durchschnitts mithilfe von Deep Learning (Backtest) ausprobiert.
Notizen vom Anfang von Python 1 lernen
Bedeutung von Deep-Learning-Modellen und -Parametern
Machen Sie Ihren eigenen PC für tiefes Lernen
Versuchen Sie mit Kipoi tiefes Erlernen der Genomik
Objekterkennung durch tiefes Lernen, Keras tief zu verstehen
Emotionale Analyse von Tweets mit Deep Learning
Zusammenfassung der Petit-Techniken für Linux-Befehle
Die dritte Nacht der Runde mit für
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
[Deep Learning] Nogisaka Gesichtserkennung ~ Für Anfänger ~
Zusammenfassung nützlicher Techniken von Scrapy in Python
Die zweite Nacht der Runde mit für
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Informationen zur Datenerweiterungsverarbeitung für tiefes Lernen
Notizen vom Anfang von Python 2 lernen
[Lernen stärken] Suche nach der besten Route
Bereiten Sie die Umgebung für das O'Reilly-Buch "Deep Learning from Grund neu" mit apt-get vor (Debian 8).
[Für Anfänger künstlicher Intelligenz] Maschinelles Lernen / Deep Learning Programming Lernpfad und Nachschlagewerke
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Erstellen Sie eine Python-Umgebung, um die Theorie und Implementierung von Deep Learning zu erlernen
Tiefes Lernen
Richten Sie die Anzahl der Stichproben zwischen Datenklassen für maschinelles Lernen mit Python aus
Deep Learning macht es dramatisch einfacher, den Zeitraffer körperlicher Veränderungen zu erkennen
So installieren Sie das Deep Learning Framework Tensorflow 1.0 in der Windows Anaconda-Umgebung
Einführung in Deep Learning zum ersten Mal (Chainer) Japanische Zeichenerkennung Kapitel 4 [Verbesserung der Erkennungsgenauigkeit durch Erweiterung der Daten]
Empfohlene Studienreihenfolge für Anfänger des maschinellen Lernens / Deep Learning
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
Deep Learning / Fehler-Backpropagation der Sigmoid-Funktion