Was hat mein neuronales Netzwerk gerade gelernt? Welche Funktionen sind ihm wichtig und warum?


30

Ein neuronales Netz lernt Merkmale eines Datensatzes, um ein bestimmtes Ziel zu erreichen. Wenn es fertig ist, möchten wir vielleicht wissen, was das neuronale Netz gelernt hat. Was waren die Features und warum kümmerten sie sich darum? Kann jemand Hinweise auf die Gesamtheit der Arbeiten geben, die dieses Problem betreffen?

Antworten:


28

Es ist wahr, dass es schwer zu verstehen ist, was ein neuronales Netzwerk lernt, aber an dieser Front wurde viel gearbeitet. Wir können uns definitiv ein Bild davon machen, wonach unser Netzwerk sucht.

Betrachten wir den Fall eines Faltungsnetzes für Bilder. Wir haben die Interpretation für unsere erste Ebene, dass wir Filter über das Bild schieben , also entspricht unsere erste verborgene Ebene der Übereinstimmung zwischen kleinen Teilen des Bildes und unseren verschiedenen Filtern. Wir können diese Filter visualisieren, um zu sehen, was unsere erste Darstellungsebene ist:K

alexnet schicht 1

Dieses Bild zeigt die erste Ebene von Filtern aus einem AlexNet und stammt aus diesem wunderbaren Tutorial: http://cs231n.github.io/understanding-cnn/ . Dies lässt uns die erste verborgene Ebene so interpretieren, dass wir lernen, das aus rohen Pixeln bestehende Bild als Tensor darzustellen, wobei jede Koordinate die Übereinstimmung eines Filters mit einem kleinen Bereich des Bildes ist. Die nächste Ebene arbeitet dann mit diesen Filteraktivierungen.

[0101-41010].

0

Dieser Aufsatz von Erhan et al. (2009) stimmt dem zu: Sie sagen, dass erste Visualisierungen mit versteckten Ebenen üblich sind (und das war bereits 2009), aber die Visualisierung der tieferen Ebenen ist der schwierige Teil. Aus diesem Papier:

Das wichtigste experimentelle Ergebnis dieser Untersuchung ist sehr überraschend: Die Reaktion einer internen Einheit auf Eingabebilder als Funktion im Bildraum erscheint unimodal, oder zumindest, dass das Maximum für alle getesteten zufälligen Initialisierungen zuverlässig und konsistent gefunden wird . Dies ist interessant, da es relativ einfach ist, diesen dominanten Modus zu finden, und seine Anzeige dann eine gute Charakterisierung dessen liefert, was das Gerät tut.

Chris Olah et al ( https://distill.pub/2017/feature-visualization/ ) bauen darauf auf und diskutieren, wie Sie im Allgemeinen (1) Bilder generieren können, die zu großen Aktivierungen führen, um einen Eindruck von dem Netzwerk zu bekommen schaut nach; oder (2) nehmen Sie tatsächliche Eingabebilder auf und sehen Sie, wie verschiedene Teile des Bildes das Netzwerk aktivieren. Dieser Beitrag konzentriert sich auf (1).

In der folgenden Abbildung aus dem verlinkten Artikel von Olah et al. Diskutieren die Autoren die verschiedenen Aspekte des Netzwerks, die Sie einsehen können. Das Bild ganz links zeigt das Ergebnis der Optimierung der Aktivierung eines bestimmten Neurons über den Eingabebildraum usw.

C. Olah et al

Ich würde es wärmstens empfehlen, diesen Artikel in seiner Gesamtheit zu lesen, wenn Sie ein tieferes Verständnis davon haben möchten, und wenn Sie seine Referenzen lesen, sollten Sie einen guten Überblick darüber haben, was damit gemacht wurde.

Das galt natürlich nur für Bilder, in denen wir als Menschen die Eingaben verstehen können. Wenn Sie mit etwas arbeiten, das schwerer zu interpretieren ist, wie z. B. einem großen Vektor von Zahlen, können Sie möglicherweise keine so coolen Visualisierungen erstellen, aber im Prinzip können Sie diese Techniken dennoch in Betracht ziehen, um die verschiedenen Neuronen, Schichten usw. zu bewerten .


2
+1 speziell für den letzten Absatz. Ich persönlich denke, Vision-Leute machen keine Visualisierungen mit dieser großen Anzahl von Parametern.
Haitao Du

natürlich +1 für die gut geschriebene lange antwort mit glaubwürdigen hinweisen.
Haitao Du

1
@ hxd1011 danke, und ich denke, Olah et al. machen in diesem Artikel einen großartigen Punkt, dass es nicht wirklich fair ist, nur das zu betrachten, was ein einzelnes Neuron maximiert, da die Ebene wirklich wie eine Basis ist und es mehr um den Raum geht, den die Ebene darstellt, als um die genauen Basisvektoren. Es macht zwar Spaß, sich das anzuschauen, aber viele dieser Visualisierungen sind möglicherweise nicht besonders aufschlussreich
jld

1
Ein weit verbreitetes Missverständnis ist auch, dass beim Aufnehmen der Filter der ersten Ebene ein Bildfleck, der die Ausgabe eines bestimmten Neurons maximiert, genau wie dieser Filter aussieht. Eigentlich nicht, ein Patch, der die Ausgabe eines Neurons maximiert, sieht aus wie nichts, das den numerischen Werten des Filters ähnelt, da es sich um eine Faltung und nicht um eine Template-Anpassung handelt. Ich glaube, hier gibt es widersprüchliche Beispiele.
Lugi

Olah et al. Blog-Post ist nett, aber sie machen einen Fehler - sie "optimieren für maximale Aktivierung" (nicht genau das, aber nah), finden ein Bild, das nichts mit Bildern aus dem Trainingssatz zu tun hat und schließen daraus, dass CNNs anders sehen als wir. Obwohl die Schlussfolgerung offensichtlich zutrifft, ist die Argumentation fehlerhaft - der Modus einer hochdimensionalen Verteilung sieht nicht wie ein typisches Beispiel aus dieser Verteilung aus. Mit anderen Worten, gerade weil CNNs Katzen klassifizieren müssen, darf die Art der Verteilung keine Katze sein, sondern eine "Albtraumkatze".
DeltaIV

7

Das neuronale Netz ist eines der Black-Box-Modelle, die keine "leicht verständlichen" Regeln oder Erkenntnisse liefern.

Insbesondere wurden die Parameter im Modell gelernt, aber die Parameter können groß sein: Hunderttausende von Parametern sind sehr normal.

Darüber hinaus ist auch nicht klar, welche wichtigen Funktionen erlernt wurden. Sie können verstehen, dass das Modell alle Funktionen nutzt und viele komplizierte Operationen durchführen, um die Ergebnisse abzuleiten, wobei es nicht einfach ist, im Klartext zu sagen, wie das Modell die einzelnen Funktionen verwendet.


Tatsächlich ist das einschichtige neuronale Netzwerk (ohne versteckte Schicht) mit der logistischen Funktion als Aktivierungsfunktion identisch mit der logistischen Regression. Die logistische Regression ist sehr interpretationsreich. Hier ist ein Beispiel. Bei komplexen neuronalen Netzen / mehr verborgenen Schichten trifft eine solche Interpretation jedoch nicht zu.

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.