Neuronale Netze und Parallelrechner Lösung des 838-Dekoderproblems mit dem Backpropagation-Algorithmus auf einem CNAPS-Board von Pieter Raath & Peter Wendzioch
Inhalte@Referat 9/22/2018
Neuronale Netze@Referat Motivation Das Neuron Backpropagation feed forward backpropagate Probleme
Motivation@Neuronale Netze Neuronale Netze sind informationsverarbeitende Systeme. Sie bestehen aus einer großen Anzahl einfacher Einheiten (Neuronen). Informationen werden über die Neuronenverbindungen ausgetauscht. Informationen werden massiv parallel verarbeitet. sind in Form von Programmen, Netzwerksimulatoren oder in Form spezieller neuronaler Hardware in vielen Anwendungsgebieten einsetzbar. Idee: Nachbildung menschlicher Informationsverarbeitung 9/22/2018
Motivation@Neuronale Netze Gehirn Rechner Anzahl der Verarbeitungselemente ca. 1011 Neuronen 109 Transistoren Art massiv parallel seriell Speicherung Adreßbezogen assoziativ Schaltzeit eines Elements ca. 1 ns ca. 1 ms 9/22/2018
Das Neuron@Neuronale Netze 9/22/2018
Backpropagation@Neuronale Netze Für neuronale Netze existieren eine Vielzahl von Lernmethoden. Das hier ist vorgestellte Verfahren ist Backpropagation, eine Art Standardverfahren. Als Gradientenabstiegsverfahren berechnet es den Gradienten der Fehlerfunktion. Die Fehlerfunktion ist ein Vergleich zwischen erwarteter (Sollwert) und realer Ausgabe (Istwert). Die Kombination derjenigen Gewichte eines Netzes, die den Berechnungsfehler minimiert, gilt als Lösung des Lernproblems. 9/22/2018
feed forward@Neuronale Netze i o 0,75 h1 h1 0,1 0,1 0,1 0,1 0,1 0,1 e1 0,1 0,51 0,1 -0,25 0,1 0,9 0,9 -0,5 a1 a1 0,47 0,9 0,1 0,9 0,25 -0,5 h2 h2 0,49 -0,37 e2 0,1 0,9 0,9 0,1 0,25 9/22/2018
backpropagate@Neuronale Netze 0,01 i o 0,75 0,76 h1 0,1 0,1 0,1 0,1 0,1 0,1 e1 0,1 0,51 0,1 -0,24 -0,25 0,1 0,1 0,9 0,9 0,9 0,9 -0,4 -0,5 a1 0,47 0,9 0,1 0,9 0,24 0,25 -0,6 -0,5 h2 0,49 -0,37 e2 0,9 -0,09 0,9 0,9 0,1 0,25 0,26 -0,01 9/22/2018
Probleme@Backpropagation Verlassen guter Minima Oszillationen in steilen Schluchten Lokale Minima der Fehlerfläche Flache Plateaus 9/22/2018
Parallelrechner@Referat Motivation Klassifizierung Probleme
Motivation@Parallelrechner Aufgaben der Informatik werden immer komplexer und datenintensiver. Klimamodelle Spracherkennung Bildverarbeitung ‚von Neumann‘-Prinzip ist für diese und viele andere Probleme uneffizient. Speziell: Berechnung der Neuronengewichte von NN‘s Erhöhung der Verarbeitungsleistung durch zeitgleiche Verarbeitung größerer Datenmengen. Architektur der Parallelrechner 9/22/2018
Klassifizierung@Parallelrechner SIMD MIMD Jeder Prozessor arbeitet auf eigenem Datenstrom. Alle Prozessoren führen den gleichen Befehl aus. Beispiel: Adaptive Solutions CNAPS, Thinking Machines CM-2. Jeder Prozessor arbeitet aus eigenem Datenstrom. Jeder Prozessor arbeitet auf eigenem Befehlstrom. Beispiel: Hypercube, Dual Pentium 9/22/2018
Probleme@Parallelrechner Datenabhängigkeit. Explizite und implizite Parallelität Explizite P. liegt bei strukturierten Daten vor (Vektor, Matrizen). Implizite P. muß mit Datenabhängigkeitsanalyse ermittelt werden. Bei gemeinsam genutzen Ressourcen treten Wartezeiten auf, die den Geschwindigkeitsvorteil mindern. Mangelnde Unterstützung der Hardware durch Betriebssysteme und Compiler. 9/22/2018
CNAPS@Referat Board CSC & CNAPS 1064 Processornode CNAPS-C CNAPI CNAPSBP.DLL
Board@CNAPS 4 MB file memory 512 KB program CSC CNAPS array ISA bus interface local bus CSC CNAPS array 9/22/2018
CSC & CNAPS-1064@CNAPS PN63 9/22/2018
Processor Node@CNAPS 9/22/2018
CNAPS-C@CNAPS CNAPS-C ist an das ANSI-C angelehnt. Zusätzliche Sprachelemente für die CNAPS-spezifische Programmentwicklung: Der Datentyp domain faßt eine Gruppe von PN‘s zusammen, auf denen Funktionen parallel ausgeführt werden. Funktionen können als entry points definiert werden, damit sie vom Host-Programm aus aufgerufen werden können. Spezielle Datentypen für die Festpunktarithmetik. u.a. Direkte Hardwareprogrammierung ist in der Assemblersprache CPL möglich. 9/22/2018
CNAPI@CNAPS Das CNaps Application Programming Interface stellt u.a. folgende elementare Funktionen zur Kommunikation mit dem CNAPS-Board zur Verfügung: Laden der Programme Laden der Daten Kontrolle der Programmausführung Setzen von Breakpoints Abfragen des Fehlerstatus u.a. 9/22/2018
CNAPSBP DLL@CNAPS In der CNAPSBP.DLL ist eine parallele Version des Back-propagation-Algorithmus implementiert. Mit ihren Funktionen läßt sich ein 3-schichtiges feed-forward-Netz initialisieren, trainieren und verifizieren: bpInitTraining() bpTrain() bpGetLastResult() bpDone() bpTerminate() bpInitApplication() bpRunApplication() 9/22/2018
Beispiel@Referat 838-Dekoder Netztopologie Demonstration Interpretation
838-Dekoder@Beispiel Eingangswert Ausgangswert Binärdekodierung 9/22/2018
Netztopologie@Beispiel Input Output 1 1 1 1 Hidden 8 Input-Neuronen 3 Hidden-Neuronen 8 Output-Neuronen Vollständig verbundenes feed-forward-Netz 9/22/2018