aufg12 - oth

Werbung
Neuronale Netze, Fuzzy Control und Genetische Algorithmen
Neuronale Netze, Fuzzy Control, Genetische Algorithmen
Prof. Jürgen Sauer
12. Aufgabenblatt: Projektvorschläge für WS 2010/2011
Hinweis: Alle Projekte sind angemessen zu dokumentieren. Die Dokumentation erfolgt im Rahmen eines PDFFile oder einer HTML-Seite. Regelmäßige Absprachen mit dem Dozenten sind während der Bearbeitung eines
Projekts unbedingt erforderlich. Abgabetermin für ein Projekt ist der 15. Januar 2011.
1. Aufgabe: Zwei-Spiralen-Problem
a) Die Aufgabe ist, zwischen 2 Trainingsmengen die auf unterschiedlichen Spiralen in der x-y Ebene liegen (im
Bild grün und rot)1 zu unterscheiden. Beide Spiralen winden sich 3mal um den Nullpunkt und um sich selber.
Eine mögliche Lösung ist ein MLP (2-20-10-1)2. Löse das Problem im Rahmen eines MLP (z.B. mit 2
Eingabeneuronen, 2 hidden layer mit 20 bzw. 10 Neuronen und einem Ausgabeneuron.
Realisiere das MLP auf der Basis dieser Angaben in einem MATLAB Skript unter Verwendung der MATLAB
Toolbox. Nutze zur Darstellung der Lösung die Möglichkeiten von MATLAB (Graphical User Interface)3. Zeige
insbesondere die Klassifikation (0,1) der Netzausgabe über die Netzeingabe in dreidimensionalen Darstellungen
(unterschiedliche Initialisierungen ergeben unterschiedliche Darstellungen).
b) Gib ein MATLAB-Skript an, das das 2-Spiralenproblem mit Hilfe eines RBF-Netzes4 unter Verwendung der
MATLAB-Toolbox löst. Nutze auch hier zur Darstellung der Lösung die Möglichkeiten von MATLAB
(Graphical User Interface)5.
c) Realisiere das unter a) angegebene Problem mit Hilfe eines Cascade Correlation Netzes.
d) Die unter a) und b) angegebenen Aufgaben können mit Java, C++ und C# gelöst werden
2. Aufgabe: cascade-correlation-network6, 7
a) Beschreibe bzw. implementiere den „cascade-correlation network growing algorithm“ in MATLABUmgebung am Bsp. des XOR bzw. Zwei-Spiralen-Problem.
b) Die Aufgabe kann auch mit Hilfe von Java, C++ und C# gelöst werden.
3. Aufgabe ( für Informatiker)
Gegeben ist ein Matlab-Skript, das mit einer einfachen grafischen Benutzeroberfläche ausgestattet ist, die die
Anordnung der zweidimensinalen Eingabemuster in folgender Form gestattet: Rechteck, Dreieck, Kreis, Ring,
Buchstabe A. Die Dimension des Ausgaberaums kann eindimensional oder 2-dimensional (eckig) gewählt
werden.
Diese Vorgabe finden in einer Self-Organizing-Map Berücksichtigung, die Ausgabe der Feature Map beweist
dies.
1
http://www.informatik.htw-dresden.de/~iwe/Belege/2005/Boerner/index.html
Vgl. http://www.neurocomputing.de/Galerie.html
3 vgl. http://www.neurocomputing.de/Galerie.html
4 Bodgan M. Wilamowski: Neural Network Architectures and Learning
5 vgl. http://www.neurocomputing.de/Galerie.html
6 http://www.lac.inpe.br/~demisio/cap351/m11-2slidep.pdf
7 http://www.es.embnet.org/Doc/Courses99/Software/AI/funet/cascor1.c
2
1
Neuronale Netze, Fuzzy Control und Genetische Algorithmen
Die Aufgabe kann auch im Rahmen eines Java-Applets gelöst werden.
4. Aufgabe
a) (für Informatiker): Applet zur Lösung des XOR mit Backpropagation8
-- Überprüfung der Funktions- und Verfahrensweise, Test der Implementierung
-- Einbau des Momentum (Erweiterung der Funktionsfähigkeit)
-- Falls nötig: Korrektur und Anpassung der Benutzeroberfläche
-- Einbau des Applets in das Skript bzw. Übernahme in meine Homepage
b) (auch für Mathematiker)
Die vorliegende Java-Lösung (Applet) soll daraufhin überprüft werden, ob ein geeignetes MATLAB-Skript (mit
Elementen einer grafischen Benutzeroberfläche) dafür möglich ist. Auch die Bezeichnungen vom Java-Quellcode
sollen in das MATLAB-Skript aufgenommen werden.
5. Aufgabe
Schreibe ein Matlab-Skript, das mit Hilfe von Backpropagation aus 2 Vektoren das Kreuzprodukt errechnet. Das
Skript soll eine geeignete GUI enthalten.
6. Aufgabe
Gib ein MATLAB-Skript an, das eine Lösung des XOR-Problems mit Hilfe der MATLAB-Toolbox produziert
und zeige anhand 3-dimensionaler Darstellungen (über die Eingabe die Netzwerkausgabe), wie unterschiedliche
Initialisierungen unterschiedliche korrekte Lösungen produzieren.9
7. Aufgabe:
a) Zeige mit Hilfe eines MATLAB-Skripts am Bsp. des XOR, wie der Quickprop-Algorithmus (vorgeschlagen
von Fahlmann)10 11 funktioniert. Die Lösung kann auch als Java-Applet, in C++ bzw. in C# erfolgen. Die
Darstellung soll sich an das Bsp. im Skript 2.4.3.1 und an der Vorgabe von Fahlmann12 orientieren.
b) Zeige mit Hilfe eines MATLAB-Skripts am Bsp. des XOR, wie der Levenberg-Marquardt -Algorithmus
funktioniert13.
8. Aufgabe:
a) Gib ein MATLAB-Skript an, das das im Skript veröffentlichte Java-Applet14 als Vorlage benutzt. Das
MATLAB-Skript soll dann auch eine entsprechende grafische Benutzeroberfläche realisieren
b) Gib ein MATLAB-Skript an, das im Rahmen eines BAM Großbuchstaben (26 Buchstaben des Alphabets) in
entsrechende Kleinbuchstaben umsetzt.15
8
vgl. Skriptum, 2.4.3.1
vgl. http://www.neurocomputing.de/Galerie.html
10 http://liquidself.com/neural/QuickpropNetwork.txt
11 http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/neural/systems/qprop/
12 http://liquidself.com/neural/QuickpropNetwork.txt
13 Bodgan M. Wilamowski: Neural Network Architectures and Learning
14 http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/dosch/BAM.html
9
2
Neuronale Netze, Fuzzy Control und Genetische Algorithmen
9. Aufgabe: (für Informatiker: Simulator für Backpropagation Netze)
Der Simulator16 soll hinsichtlich einer besseren Bedienung durch eine Überarbeitung der grafischen
Benutzeroberfläche neu gestaltet werden.
10. Aufgabe (Erlernen einer Funktion mit der Boltzmann-Maschine17)
a) Eine spezielle Funktion soll mit einer Boltzmann-Maschine erlernt werden. Das im Skriptum angegebene JavaApplet soll durch ein MATLAB-Skript ersetzt werden18.
b) Die unter a) festgelegte Anzahl der Eingabe- und Ausgabezellen auf 3 soll auf 5 erweitert werden. Sie sollen
eine Invertierung der Bitfolgen bewirken. Als Eingabe sind wie unter a) nur Belegungen zugelassen, bei denen
genau ein Neuron 1 und alle anderen auf Null gesetzt sind. Für 5 verdeckte Zellen mit einem Lernfaktor   0.8
soll das Netz nach 500 Iterationen in der Lage sein, mit 90%iger Sicherheit die richtige Funktionsausgabe im
„Recall“ auszugeben. Die unter a) definierte grafische Benutzeroberfläche soll übernommen werden, die Anzahl
der Ein- und Ausgabeneuronen sowie der verdeckten Neuronen soll zu Beginn des Lernverfahrens eingelesen
werden können.
11. Aufgabe
Hopfield-Netze bieten die Möglichkeit, Informationen assoziativ zu speichern. Fragt man nach einem bestimmten
Begriff, so fallen dem Rechner bzw. demNetz weitere Eigenschaften ein, z.B.:
Gegeben sind folgende Informationen:
-
Hans ist groß, schwarz und dick
Anna ist klein, blond und dünn
Ulrich ist klein, blond und dick
Erinnert man sich an die „blonde Anna“, so weiß man, dass Anna zudem klein und dünn ist. Die Erinnerung an
die „blonde Anna aktiviert weitere Erinnerungen, das assoziativ strukturierte Gedächtnis arbeitet.
Die vorliegenden Eigenschaften können folgendermaßen codiert sein
Hans
11
Anna
10
Ulrich
01
groß
1
klein
0
schwarz
1
blond
0
dick
1
dünn
0
Die vorliegenden Informationen erhalten die folgenden Verschlüsselungen:
-
Hans ist groß, schwarz und dick
Anna ist klein, blond und dünn
Ulrich ist klein, blond und dick
11111
10000
01001
Diese Bitfolgen lassen sich als Muster eines Hopfield-Netzes auffassen, d.h. die zum Netz gehörende
Energiefunktion nimmt an den Stellen der Muster Energieminima an.
Sind Teilinformationen bekannt, lassen sich die restlichen assoziativ zugehörigen Informationen abrufen, wenn
man das Netz wie ein Boltzmann-Netz behandelt. Bekannte Informationsteile werden als Eingabe betrachtet, alle
restlichen Neuronen als Ausgabe, z.B.: Für die „blonde Anna“ ist das zugehörige Muster „10x0y“. Hier sind die
Bitwerte 1, 0, 0 Eingabe und x, y Ausgabe eines Boltzmann-Netzes. Simuliertes Kühlen liefert x=0 und y=0, d.h.
Anna ist klein und dünn.
15
IEEE Transactions on Neural Networks, Vol. 11, No. 4, July 2000: A Feedforward Bidirectional Associative
Memory
16 http://fbim.fh-regensburg.de/~saj39122/wabrpi/index.html
17 vgl. Skriptum 2.6.4.2
18 vgl. lehrbrief6/fi-bolz Matlab
3
Neuronale Netze, Fuzzy Control und Genetische Algorithmen
12. Aufgabe
a) Gegeben ist ein Matlab-Skript19, das mit einer einfachen grafischen Benutzeroberfläche ausgestattet ist, die die
Anordnung der zweidimensionalen Eingabemuster in folgender Form gestattet: Rechteck, Dreieck, Kreis, Ring,
Buchstabe A. Die Dimension des Ausgaberaums kann eindimensional oder 2-dimensional (eckig) gewählt
werden.
Diese Vorgabe finden in einer Self-Organizing-Map Berücksichtigung, die Ausgabe der Feature Map beweist
dies.
Gegeben ist auch eine Anwendung in C#, die ungefähr dasselbe tut wie das gegebene Matlab-Skript. Die
Präsentation soll im Rahmen einer HTML-Seite erfolgen, die grafische Benutzeroberfläche soll der des C#Programms entsprechen. Das Programm soll ein Java-Applet werden, das in HTML-Seiten gestartet und
ablaufen kann. Die HTML-Seite soll ins Skript eingebaut werden
b) Schreibe ein MATLAB-Skript, das diese Aufgabe mit Hilfe von „Neural Gas“ löst.
13. Aufgabe (Auffangen eines Balls)20
Schreibe ein MATLAB-Skript mit grafischer Benutzeroberfläche, das das Auffangen eines Balls ermöglicht.
14. Aufgabe (Necker Cube Example)21
Die Lösung ist in Java oder C++ oder C# anzugeben.
15. Aufgabe (Neural Gas)22
Entwicklung eines Java-Applet zum
a) Neural Gas mit Competetive Learning
b) Growing Neural Gas
19
sof1.m bzw. Verzeichnis haneder im Verzeichnis lehrbrief7
20
http://www.htw-dresden.de/~iwe/Belege/Schneider/som.html
http://www.cs.cf.ac.uk/Dave/JAVA/boltzman/Necker.html
22 http://www-cgi.uni-regensburg.de/~bac04259/Kurse/WS06-07_SeminarNeuronaleNetze/NeuronaleGase.pdf
21
4
Neuronale Netze, Fuzzy Control und Genetische Algorithmen
15. Aufgabe (Comparison of Fuzzy and Neural)23
Löse mit Hilfe der Fuzzy-Logic Toolbox folgende Probleme:
- TRUCK BACKER-UPPER CONTROL SYSTEMS24
- Fuzzy Truck Backer-Upper Systems
- Neural Truck Backer-Upper System (Nguyen, Widrow)
- Adaptive Fuzzy Truck Backer-Upper
- Fuzzy Truck-and-Trailer Controler
- BP Truck-and-Trailer Control systems
16. Aufgabe
1. Fallstudie: Transportkran
v (Krangeschwindigkeit)
Krankopf

(Auslenkungswinkel)
Last
Ziel: Schwingungsfreies Transportieren von Lasten
Aufgabenstellung: Solange Wunsch auf Bewegung des Krans besteht, d.h. Sollgeschwindigkeit
Wunsch realisiert werden.
Sobald Kran gestoppt wird, d.h.
vsoll  0 , soll
vsoll  0 soll vorhandene Schwingung ausgeglichen werden.
Lösung mit Fuzzy-Logik
Sollgröße

v soll
FuzzySystem
d
dt
Motorleistung
Kran


FS
2. Funktionsapproximation mit anfis
23
24
Bart Kosko: Neural Networks and Fuzzy Systems, Prentice Hall, Englewood Cliffs, NJ 07632
Bart Kosko: Neural Networks and Fuzzy Systems, Prentice Hall, Englewood Cliffs, NJ 07632
5
Neuronale Netze, Fuzzy Control und Genetische Algorithmen
a)
Die Funktion y = 1./((x-3).^2+.01)+1./((x-.9).^2+0.4)-6 kann in MATLAB unter dem Namen humps
aufgerufen25 werden. Diese Funktion soll im Bereich von [0 2] approximiert werden.
b) Die Funktion
25
y  f ( x)  2 x  x 2 soll im Bereich von x=[-10,10] approximiert werden.
vgl. 8. Aufgabenblatt, 4. Aufgabe
6
Neuronale Netze, Fuzzy Control und Genetische Algorithmen
Lösungen
1. Aufgabe
2. Aufgabe
3. Aufgabe
Matlab-Skript zur Lösung des TSP-Problems mit Simulated Annealing: vgl. d:\dok\nn\ws07\aufg\aufg12
15, Aufgabe
incremental grid growing
http://www.ifs.tuwien.ac.at/ifs/research/pub_pdf/mer_wsom03.pdf
growing grid
http://www.neuroinformatik.ruhr-uni-bochum.de/VDM/research/gsn/JavaPaper/node24.html
http://www.neuroinformatik.ruhr-uni-bochum.de/ini/VDM/research/gsn/DemoGNG/GG_2.html
16. Aufgabe: Neural Gas
http://miris.informatik.tu-ilmenau.de/~koenig/ni_grundlagen_prak/growingneuralgas/growingneuralgas.html
http://www.inf.usi.ch/hormann/papers/Melato.2007.NGF.pdf
http://gaos.org/~schleif/WSOM2005-27.pdf
http://www.in.tu-clausthal.de/fileadmin/homes/Dipl-Dr-Seminar/Reimann.pdf
Augaben
http://stud3.tuwien.ac.at/~e0525250/uni/NCFragenausarbeitung.pdf
http://chi3x10.wordpress.com/2008/05/08/som-self-organizing-map-code-in-matlab/
7
Herunterladen