Neuronale Netze werden aufgrund ihrer komplexen Struktur häufig als "Black Boxes" behandelt. Dies ist nicht ideal, da es oft von Vorteil ist, einen intuitiven Überblick über die interne Funktionsweise eines Modells zu haben. Was sind Methoden, um die Funktionsweise eines trainierten neuronalen Netzwerks zu visualisieren? Wie können wir alternativ leicht verdauliche Beschreibungen des Netzwerks extrahieren (z. B. arbeitet dieser versteckte Knoten hauptsächlich mit diesen Eingaben)?
Ich interessiere mich hauptsächlich für zweischichtige Feed-Forward-Netzwerke, möchte aber auch Lösungen für tiefere Netzwerke hören. Die Eingabedaten können entweder visueller oder nicht visueller Natur sein.
Antworten:
Neuronale Netze werden manchmal als "differenzierbare Funktionsapproximatoren" bezeichnet. Sie können also jede Einheit von jeder anderen Einheit unterscheiden, um ihre Beziehung zu sehen.
Sie können damit auch überprüfen, wie empfindlich der Fehler des Netzwerks für einen bestimmten Eingang ist.
Dann gibt es etwas, das "rezeptive Felder" genannt wird. Es ist nur die Visualisierung der Verbindungen, die in eine verborgene Einheit gehen. Dies macht es einfach zu verstehen, was bestimmte Einheiten zum Beispiel für Bilddaten tun. Dies kann auch für höhere Ebenen durchgeführt werden. Siehe Visualisieren übergeordneter Funktionen eines Deep Network .
quelle
Schätzen Sie die Wichtigkeit eines Features, indem Sie jeden Wert eines einzelnen Features zufällig anstoßen und aufzeichnen, wie sich Ihre allgemeine Fitnessfunktion verschlechtert.
Wenn also Ihr erstes Merkmal fortlaufend bewertet und auf skaliert wird , können Sie dem Wert jedes Trainingsbeispiels für das erste Merkmal hinzufügen . Dann schau, wie viel dein abnimmt. Dies schließt eine Funktion effektiv aus Ihren Trainingsdaten aus, geht aber besser mit Wechselwirkungen um, als die Funktion buchstäblich zu löschen.x1,i [0,1] rand(0,1)−0.5 R2
Ordnen Sie dann Ihre Funktionen nach der Verschlechterung der Fitnessfunktion und erstellen Sie ein hübsches Balkendiagramm. Zumindest einige der wichtigsten Funktionen sollten eine Darmüberprüfung bestehen, da Sie die Problemdomäne kennen. Auf diese Weise werden Sie auch von informativen Funktionen überrascht, die Sie möglicherweise nicht erwartet haben.
Diese Art von Funktionstest funktioniert für alle Black-Box-Modelle, einschließlich neuronaler Netze und großer CART-Ensembles. Meiner Erfahrung nach ist die Wichtigkeit von Features der erste Schritt, um zu verstehen, was ein Modell wirklich tut.
quelle
Hier ist eine grafische Einführung für eine bestimmte Art von neuronalen Netzen. Am Ende dieses Beitrags befindet sich ein Link zu R-Code, der eine Visualisierung für ein bestimmtes Problem zeigt. So sieht das aus:
quelle
Herbst 2011 Ich nahm an dem kostenlosen Online-Kurs für maschinelles Lernen von Standford teil, der von Andrew Ng unterrichtet wurde, und wir stellten ein neuronales Netzwerk vor, das ein Gesichtsdetektor war. Die Ausgabe war ein generisches Gesicht. Ich möchte dies der Vollständigkeit halber erwähnen, aber Sie haben diese Art der Bewerbung nicht erwähnt, deshalb werde ich die Details nicht herausfinden. :)
quelle
Die unten angegebene Methode stammt von diesem Link. Weitere Informationen finden Sie auf der Website.
Beginnen Sie mit einem zufälligen Bild, dh geben Sie den Pixeln willkürlich Werte. Als nächstes führen wir einen Vorwärtsdurchlauf durch, wobei wir dieses Bild x als Eingabe in das Netzwerk verwenden, um die Aktivierung a_i (x) zu berechnen, die von x an einem Neuron i irgendwo in der Mitte des Netzwerks verursacht wird. Dann führen wir einen Rückwärtsdurchlauf durch (Ausführen von Backprop). um den Gradienten von a_i (x) in Bezug auf frühere Aktivierungen im Netzwerk zu berechnen Am Ende des Rückwärtsdurchlaufs verbleibt der Gradient ∂a_i (x) / ∂x , oder wie die Farbe jedes Pixels zu ändern ist Erhöhen Sie die Aktivierung von Neuron I. Wir tun genau das, indem wir dem Bild einen kleinen Bruchteil αα dieses Gradienten hinzufügen:
x ← x + α⋅∂a_i (x) / ∂x
Wir machen das so oft, bis wir ein Bild x 'haben, das eine hohe Aktivierung des fraglichen Neurons bewirkt. "
quelle