Aufgaben
Aufgaben
Aufgaben
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Neuronale Netze und Fuzzy-Logik Fachhochschule Konstanz<br />
SS 2007 Praktische Arbeiten Prof. Dr. Oliver Bittel<br />
Auswahl der <strong>Aufgaben</strong><br />
Von jedem Teilnehmer ist genau eine der folgenden <strong>Aufgaben</strong> zu bearbeiten und eine schriftliche<br />
Ausarbeitung abzugeben.<br />
Die Aufgabe 1, 2, 3 und 4 sind jeweils von einer Person zu bearbeiten. Die restlichen <strong>Aufgaben</strong><br />
können zu zweit bearbeitet werden. Die <strong>Aufgaben</strong> 5, 6 und 7 sind anspruchsvoller als die <strong>Aufgaben</strong><br />
1, 2, 3 und 4.<br />
Ausarbeitung<br />
Die Ausarbeitung sollte ca. 10 Seiten pro Person (ohne Anhang) umfassen und sollte beispielsweise<br />
folgendes enthalten:<br />
1. Beschreibung der Aufgabe<br />
2. Lösungsansatz:<br />
• Aufbereitung der Daten<br />
• Einteilung in Trainings- und Testdaten (evtl. auch Validierungsdaten)<br />
• Auswahl eines geeigneten neuronalen Netzes (Netzarchitektur, Aktivierungsfunktion, etc.)<br />
• Trainingsverfahren und -parameter<br />
• ...<br />
3. Darstellung der Ergebnisse:<br />
• Darstellung des Netzfehlers (z.B. SSE) evtl. in Abhängigkeit von unterschiedlichen Entwurfsentscheidungen.<br />
Da der Netzfehler vom Umfang und von der Skalierung der Daten abhängt,<br />
muss immer klar ersichtlich sein, auf welche Daten sich der angegebene Fehler bezieht.<br />
• Bei Klassifizierungsaufgaben ist außerdem der Klassifizierungsfehler (in Prozent) anzugeben.<br />
• Bei einer Vorhersage-Aufgabe ist außerdem die Netz-Performance durch eine der folgenden<br />
Fehlerformeln zu beschreiben:<br />
1<br />
NMSE = 2<br />
σ N<br />
N<br />
∑<br />
k = 1<br />
( x<br />
k<br />
− xˆ<br />
)<br />
k<br />
2<br />
1/4<br />
Normalized Mean Squared Error<br />
N 1<br />
MAE = ∑ xk<br />
− xˆ<br />
k<br />
Mean Absolute Error<br />
N k = 1<br />
Dabei sind xk die tatsächlichen und xˆ k die vorhergesagten Datenwerte. σ ist die Standardabweichung<br />
und N die Anzahl der Daten. MAE ist auf Basis der nicht-normierten Daten anzugeben.<br />
• Führen Sie mehrere Trainingsversuche durch und ermitteln Sie dabei Mittelwerte, Streuung<br />
und beste Ergebnisse.
• Die Darstellung des Generalisierungsverhaltens ist besonders wichtig.<br />
• Graphische bzw. tabellarische Darstellungen sind hilfreich.<br />
4. Matlab-Programm (im Anhang)<br />
5. Quellenverzeichnis (im Anhang). Geben Sie die verwendete Literatur, Internet-Adressen, etc. an.<br />
Abgabetermin<br />
Die schriftliche Ausarbeitung ist bis spätestens 13.7.2007 bei mir oder im FB-Sekretariat abzugeben.<br />
Aufgabe 1 Schilddrüsenfunktion (1 Person)<br />
Realisieren Sie ein Netz, das auf der Grundlage von 21 Attributwerten entscheidet, ob bei einem<br />
Patienten eine Schilddrüsenfehlfunktion - d.h. eine Schilddrüsenunterfunktion bzw. -überfunktion -<br />
vorliegt. In der Datei thyroid.dat befinden sich die Daten von 7200 Patienten. 92% Prozent der Patienten<br />
haben keine Fehlfunktion. Ein guter Klassifikator muss daher signifikant besser sein als<br />
92%.<br />
Aufgabe 2 Brustkrebs (1 Person)<br />
Realisieren Sie ein Netz, das auf der Grundlage von 9 Attributwerten entscheidet, ob eine Patientin<br />
Brustkrebs hat. In der Datei cancer.dat befinden sich die Daten von ca. 700 Patienten. Ein Attributwert<br />
fehlt bei einigen Datensätzen.<br />
Aufgabe 3 Zeichenerkennung (1 Person)<br />
Für die maschinelle Verarbeitung von Gleitkommazahlen ist ein neuronales Netz zu entwickeln, das<br />
in der Lage ist, Ziffern, Vorzeichen, Fließpunkt und Exponent (E) zu erkennen. Zur Vereinfachung<br />
der Aufgabe können Sie davon ausgehen, dass jedes Zeichen auf Einheitsgröße normiert als binäre<br />
Matrix („Bitmap“) beispielsweise der Größe 5*7 vorliegt. Geeignete Trainings- und Testdaten sind<br />
selber zu erstellen.<br />
Aufgabe 4 Vorhersage der Sonnenflecken (1 Person)<br />
Realisieren Sie ein Netz, das in der Lage ist aufgrund der Häufigkeit der Sonnenflecken der vergangenen<br />
Jahre die Häufigkeit der Sonnenflecken des nächsten Jahres vorherzusagen. In sunspot.dat<br />
finden Sie die Häufigkeit der Sonnenflecken der Jahre 1700 bis 2004. Verwenden Sie die Daten der<br />
Periode 1700 bis 1940 als Trainingsdaten. Die Perioden 1941-1975 und 1976-2004 sollen als zwei<br />
Testmengen dienen.<br />
Falls Sie mehr über Sonnenflecken und ihre Zählung wissen wollen, dann finden Sie interessante<br />
Informationen unter http://de.wikipedia.org/wiki/Sonnenfleck.<br />
2/4
Aufgabe 5 Klassifikation von Zeitreihen (2 Personen)<br />
Realisieren Sie ein Netz, das eine Zeitreihe eine der folgenden 6 Klassen (siehe auch folgende Abbildung)<br />
zuordnet:<br />
• Normal<br />
• Zyklisch<br />
• Aufwärtstrend<br />
• Abwärtstrend<br />
• Aufwärtsverschiebung<br />
• Abwärtsverschiebung<br />
Zum Trainieren und Testen liegt eine Datei mit 600 Zeitreihen vor, die jeweils 60 Werte enthalten.<br />
Für jede der 6 Klassen gibt es genau 100 Zeitreihen.<br />
Hinweis: Glätten der Zeitreihen kann sehr hilfreich sein.<br />
Abbildung: Dargestellt sind für jede Klasse 10 Beispiele. (A) Abwärtstrend, (B) Zyklisch, (C) Normal,<br />
(D) Aufwärtsverschiebung, (E) Aufwärtstrend, (F) Abwärtsverschiebung.<br />
Aufgabe 6 Vorhersage von Energieverbrauch (2 Personen)<br />
Realisieren Sie ein Netz, das den stündlichen Verbrauch von elektrischer Energie und von Kalt- und<br />
Warmwasser für ein Gebäude vorhersagt. Die Vorhersage soll basieren auf Datum (Tag, Monat,<br />
Jahr), Uhrzeit, Außentemperatur, Luftfeuchtigkeit, Sonneneinstrahlung und Windgeschwindigkeit.<br />
3/4<br />
F
Hierzu wurden in den USA Daten über einen Zeitraum von 6 Monaten aufgenommen (siehe Datei<br />
building.dat). Die folgenden zwei <strong>Aufgaben</strong> sind zu lösen:<br />
a) Interpolationsproblem: Verwenden Sie (nicht notwendigerweise alle) Daten aus dem gesamten<br />
Zeitraum zum Trainieren.<br />
b) Extrapolationsproblem: Verwenden Sie die Daten der ersten 4 Monate zum Trainieren und die<br />
letzten zwei Monate zum Testen.<br />
Hinweis: Es ist vorteilhaft, eine andere Darstellung für Datum und Uhrzeit zu wählen.<br />
Aufgabe 7 Zeitreihenvorhersage (2 Personen)<br />
Eine Zeitreihe ist eine Folge:<br />
x(t) mit t = 1, 2, 3, ...<br />
Ziel ist die Vorhersage des Wertes x(t) aufgrund der letzten realen (nicht vorhergesagten) k Werte<br />
x(t-k), x(t-k+1), ..., x(t-1); k heiße Zeitfenster. Statt x(t) kann auch eine Prognose für x(t+h) erstellt<br />
werden, wobei h auch Zeithorizont genannt wird.<br />
Als Beispiel soll die zwar periodisch aber im Detail ziemlich zufällig und unvorhersehbar erscheinende<br />
Glass-Mackey-Zeitreihe (siehe Abbildung) betrachtet werden.<br />
1.6<br />
1.4<br />
1.2<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0 200 400 600 800 1000 1200<br />
Für t = 0,1,2,..,1200 stehen die Werte x(t) in einer Datei im Matlab-Verzeichnis zur Verfügung:<br />
~\toolbox\fuzzy\fuzdemos\mgdata.dat<br />
a) Erzeugen Sie aus den ersten 200 Zeitreihenwerten geeignete Trainingsdaten. Das Zeitfenster<br />
sollte nicht zu groß gewählt werden. Als Horizont h wählen Sie die Werte 1, 3 bzw. 6. Testen Sie<br />
Ihr Netz für alle 1200 Zeitreihenwerte.<br />
b) Wie könnte eine einfache Vorhersage (ohne neuronales Netz) für h = 1 erreicht werden? Ermitteln<br />
Sie den Vorhersagefehler.<br />
c) Zeigen Sie, wie sich mit einem neuronalen Netz für h = 1 durch wiederholtes Anwenden des<br />
Netzes mehrere Werte (d.h. x(t), x(t+1), x(t+2), ...) vorhersagen lassen. Ermitteln Sie für Ihr<br />
Netz den Vorhersagefehler, wenn aus x(0), x(1), ..., x(400) die Werte x(401), x(401), ..., x(1200)<br />
vorhergesagt werden. Verwenden Sie Netze mit einem möglichst kleinen Fehler.<br />
4/4