Title: Neuronale Netze und Parallelrechner
1Neuronale Netze und Parallelrechner
- Lösung des 838-Dekoderproblems mit dem
Backpropagation-Algorithmus auf einem - CNAPS-Board
von Pieter Raath Peter Wendzioch
2Inhalte_at_Referat
3Neuronale Netze_at_Referat
- Motivation
- Das Neuron
- Backpropagation
- feed forward
- backpropagate
- Probleme
4Motivation_at_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 Informationsverarbe
itung
5Motivation_at_Neuronale Netze
Anzahl der Verarbeitungselemente
Art
Speicherung
Schaltzeit eines Elements
6Das Neuron_at_Neuronale Netze
7Backpropagation_at_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.
8feed forward_at_Neuronale Netze
i
o
h1
0,75
h1
e1
0,1
0,1
0,1
0,1
0,1
0,1
0,1
0,51
0,1
-0,25
-0,5
0,9
0,1
0,9
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
9backpropagate_at_Neuronale Netze
0,01
i
o
h1
0,75
0,76
e1
0,1
0,1
0,1
0,1
0,1
0,1
0,1
0,51
0,1
-0,25
-0,24
-0,5
0,9
0,1
0,9
-0,4
0,9
0,1
0,9
a1
0,47
0,9
0,1
0,9
0,25
0,24
-0,5
-0,6
h2
-0,37
0,49
e2
-0,09
0,9
0,9
0,9
0,1
0,25
0,26
-0,01
10Probleme_at_Backpropagation
- Lokale Minima der Fehlerfläche
- Oszillationen in steilen Schluchten
11Parallelrechner_at_Referat
- Motivation
- Klassifizierung
- Probleme
12Motivation_at_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
NNs - Erhöhung der Verarbeitungsleistung durch
zeitgleiche Verarbeitung größerer Datenmengen. - Architektur der Parallelrechner
13Klassifizierung_at_Parallelrechner
- 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
14Probleme_at_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.
15CNAPS_at_Referat
- Board
- CSC CNAPS 1064
- Processornode
- CNAPS-C
- CNAPI
- CNAPSBP.DLL
16Board_at_CNAPS
17CSC CNAPS-1064_at_CNAPS
PN63
18Processor Node_at_CNAPS
19CNAPS-C_at_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 PNs
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.
20CNAPI_at_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.
21CNAPSBP DLL_at_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()
22Beispiel_at_Referat
- 838-Dekoder
- Netztopologie
- Demonstration
- Interpretation
23838-Dekoder_at_Beispiel
24Netztopologie_at_Beispiel
Input
Output
Hidden
- 8 Input-Neuronen
- 3 Hidden-Neuronen
- 8 Output-Neuronen
- Vollständig verbundenes feed-forward-Netz