Irgendwelche Visualisierungen des Entscheidungsprozesses des neuronalen Netzes, wenn Bilder erkannt werden?

9

Ich bin im Coursera ML-Kurs eingeschrieben und habe gerade angefangen, über neuronale Netze zu lernen.

Eine Sache, die mich wirklich irritiert, ist, wie man etwas "Menschliches" wie eine handgeschriebene Ziffer erkennt, wenn man die guten Gewichte für lineare Kombinationen findet.

Es ist noch verrückter, wenn Sie verstehen, dass etwas scheinbar Abstraktes (wie ein Auto) nur dadurch erkannt werden kann, dass Sie einige wirklich gute Parameter für lineare Kombinationen finden und kombinieren und einander zuführen .

Kombinationen von linearen Kombinationen sind viel ausdrückbarer als ich einmal dachte Dies führte mich zu der Frage, ob es möglich ist, den Entscheidungsprozess von NN zu visualisieren, zumindest in einfachen Fällen.

Wenn meine Eingabe beispielsweise 20x20 Graustufenbild (dh insgesamt 400 Features) ist und die Ausgabe eine von 10 Klassen ist, die erkannten Ziffern entsprechen, würde ich gerne eine Art visuelle Erklärung von sehen, welche linearen Kaskaden Kombinationen führten die NN zu seiner Schlussfolgerung.

Ich stelle mir naiv vor, dass dies als visueller Hinweis über das erkannte Bild implementiert werden könnte, vielleicht eine Temperaturkarte, die "Pixel, die die Entscheidung am meisten beeinflusst haben" oder irgendetwas, das hilft zu verstehen, wie ein neuronales Netzwerk in einem bestimmten Fall funktioniert.

Gibt es eine neuronale Netzwerk-Demo, die genau das tut?

    
Dan Abramov 29.05.2012, 02:08
quelle

2 Antworten

2

Vielleicht beantwortet es die Frage nicht direkt, aber ich fand dieses interessante Stück in diesem Andrew Ng, Jeff Dean, Quoc Le , Marc'Aurelio Ranzato, Rajat Monga, Matthieu Devin, Kai Chen und Greg Corrado Papier (Hervorhebung von mir):

  

In diesem Abschnitt werden wir zwei Visualisierungstechniken vorstellen, um zu überprüfen, ob der optimale Reiz des Neurons tatsächlich ein Gesicht ist. Die erste Methode ist die Visualisierung der am schnellsten reagierenden Stimuli im Testset . Da das Testset groß ist, kann dieses Verfahren zuverlässig nahezu optimale Stimuli des getesteten Neurons detektieren. Der zweite Ansatz besteht darin, eine numerische Optimierung durchzuführen, um den optimalen Stimulus zu finden

     

...

     

Diese Visualisierungsmethoden haben komplementäre Stärken und Schwächen. Zum Beispiel kann das Visualisieren der am meisten reagierenden Stimuli leiden an Anpassung an Rauschen. Auf der anderen Seite kann der numerische Optimierungsansatz anfällig für lokale Minima sein. Die Ergebnisse [unten] bestätigen, dass das getestete Neuron tatsächlich das Konzept der Gesichter lernt.

Mit anderen Worten, sie nehmen ein Neuron, das am besten Gesichter erkennt und

  • wählt Bilder aus dem Dataset aus, die die höchste Konfidenz ausgeben;
  • finde mathematisch ein Bild (nicht im Datensatz), das die höchste Priorität erhalten würde.

Es macht Spaß zu sehen, dass es tatsächlich Züge des menschlichen Gesichts "einfängt" Das Lernen ist unüberwacht , d. H. Eingabedaten sagen nicht, ob ein Bild ein Gesicht ist oder nicht.

Interessanterweise werden hier "optimale Input" -Bilder für Katzenköpfe und menschliche Körper erzeugt:

    
Dan Abramov 22.06.2012, 08:45
quelle
2

Dies ist keine direkte Antwort auf Ihre Frage. Ich würde vorschlagen, dass Sie sich Convolutional Neural Networks (CNN) ansehen. In CNNs können Sie fast das Konzept sehen, das gelernt wird. Sie sollten diese Publikation lesen:

Ja. LeCun, L. Bottou, Y. Bengio und P. Haffner: Gradientenbasiertes Lernen für die Dokumentenerkennung , Proceedings of the IEEE, 86 (11): 2278-2324, November 1998

CNNs werden oft als "trainable feature extractors" bezeichnet. Tatsächlich implementieren CNNs 2D-Filter mit trainierbaren Koeffizienten. Aus diesem Grund wird die Aktivierung der ersten Schichten normalerweise als 2D-Bilder dargestellt (siehe Abb. 13). In diesem Artikel verwenden die Autoren einen weiteren Trick, um die Netzwerke noch transparenter zu machen: Die letzte Schicht ist eine radiale Basisfunktionsschicht (mit Gauss'schen Funktionen), d. e. Der Abstand zu einem (einstellbaren) Prototyp für jede Klasse wird berechnet. Sie können die gelernten Konzepte wirklich sehen, indem Sie sich die Parameter der letzten Ebene ansehen (siehe Abb. 3).

CNNs sind jedoch künstliche neuronale Netzwerke. Aber die Schichten sind nicht vollständig verbunden und einige Neuronen teilen die gleichen Gewichte.

    
alfa 29.05.2012 08:59
quelle