Deep Learning day by day Wintersemester 2018/19
(EN google-translate)
(PL google-translate)
---------------- Deep Learning: Im Skript verfügbare Themen: 1 Neuronale Netze 2 Backtracking 3 Implementierung 4 JNI 5 BlueJ & Processing 6 Selber Processing-Libraries erstellen Neue speziell auf Deep Learning bezogene Themen 7 Theorie Deep Learning 8 Testimplementierung 9 DL4J verstehen 10 DL4J benutzen 11 DL4J einbetten: Android / Processing Termine: 22.11. 1, 2 Neuronale Netze, Backtracking 29.11. 3, 4 Implementierung, JNI 06.12. 5, 6 BlueJ & Processing, Selber Processing-Libraries erstellen 13.12. 7, 8 Theorie Deep Learning, Testimplementierung 20.12. 9, 10, 11 DL4J-Beispiele / eigene Umsetzung 10.01. *** Projekt *** 17.01. *** Projekt *** 24.01. *** E-Test / Projekt *** * Projekt kann in Zweiergruppen bearbeitet werden. * E-Test-Note und Projektnote zählen jeweils zu 50% in dieser LV. * Projektthemen ev. mit Elektrokutschen: Objekterkennung / Navigation
Code 0-1: Entwurf für den Ablauf der LV.
Donnerstag 22.11.2018:
|
/80_Robuste_Systemintegration/10_EvoFuzzy/04_NeuronaleNetze
|
/78_Processing
/93_Android_Proc/02_Eigene_Library (Erstellen einer eigenen Processing-Library)
/92_Soundinstallation/03_material/11_Snippets
Übung: Einfacher Anwendungsfall: Tic-Tac-Toe
|
TicTacToe002.zip -- Musterlösung2: Aus den Permutationen alle gültigen Partien extrahieren.
Neue Versionen (Grandlage für nächsten Unterricht):
TicTacToe01_Partien_rekursiv.zip -- rekursive Ermittlung der Partien (schneller, besser!)TicTacToe02_GUETE.zip -- Implementierung und Test einer Gütefunktion
Basisversion für das Training: Zufallspieler gegen Zufallspieler:
TicTacToe03_ZUFALL_GEGEN_OPTI.zip
|
Bild 0-1: Visualisierung von TicTacToe03_ZUFALL_GEGEN_OPTI.
Optimaler Spieler A gegen Zufallsspieler B:
TicTacToe04_ZUFALL_GEGEN_OPTI.zipBild 0-2: Optimaler Spieler gegen Zufallsspieler nach einiger Zeit (Pause wurde deaktiviert).
Effizientere Umsetzung als neue Basis:
TicTacToe05_effizient.zipTicTacToe06_effizient.zip
TicTacToe08_Turnier.zip
Erstes Neuronales Netz ("klassisch"):
TicTacToe09_feldfrei.zipVerbesserte objektorientierte Programmstruktur bei Neuronalem Netz, Es lernt, wo es setzen darf
TicTacToe32_Neuro_strukturiert.zip -- Dieses Netz lernt, was es lernen soll.Donnerstag 06.12.2018:
|
Agenda 6.12.
|
Teil 1: Programmiertechnik, Themen:
Nr. | Konzept | Darstellung durch Beispiel | Bemerkungen |
---|---|---|---|
1. | Callback-Funktionen | mousePressed(), draw() | Datenaustausch über Variablen |
2. | Random | Brownsche Atombewegung | z.B. Generierung von Testwerten |
3. | Tabs | eigene Klassen schreiben | Quelltext organisieren |
4. | Schnittstellen | Kontroll-Ausgabe | Anwendung: Spieler austauschbar machen. |
5. | Threads | Echtzeitsimulation | Trennung von Simulation und Visualisierung |
6. | Zustandsvariable | Abbilden verschiedener Phasen in einer App | Umsetzung über switch-case-Blöcke |
7. | Late Binding | Grundproblem bei Threads: fehlende Instanzen | Objekte erst erzeugen, wenn sie benötigt werden |
8. | BlueJ | Java-Entwicklungsumgebung | Klassendarstellung mit UML / strukturierte Entwicklung / eigene Libraries |
9. | Eigene Libraries | Permutation | Dinge, die man sich einmal erarbeitet hat, kann man sich über Libraries dauerhaft verfügbar machen. |
Tabelle 0-1: Programmiertechnik-Themen heute.
Teil1_06Dez_alle_Sketche.zip
Teil2: 79_Deep_Learning/02_TicTacToe/01_Rekursiv
Teil 3 und 4: 79_Deep_Learning/02_TicTacToe/02_Perceptron
Donnerstag 13.12.2018:
|
|
|
Donnerstag 10.01.2019:
|
|
|
In allen Fällen geht es darum, die Fragestellungen anhand praktischer Umsetzungen zu beantworten.
|
Ergebnisposter (Ergebnisbeschreibung, corporate design, A0, pdf) Projekt/Quelltexte
|
|
|
Corporate Design (bitte in rot): https://informatik.th-brandenburg.de/fileadmin/user_upload/fb-informatik/dokumente/Vorlage_Poster_Abschlussarbeit/Abschlussposter_A2_FBIM_Corporate_Design.ppt
NEU: Präsentation findet als "Postersession" statt, d.h.:
|
1. Thema: Over- / Underfitting bei TicTacToe - Untersuchen Sie das Lernverhalten verschieden großer Netze für TicTacToe. - Weisen Sie anhand konkreter Beispiele (TicTacToe) den Effekt des Over- und den des Underfitting nach. * Lassen sich auch Unterschiede für verschiedene Netzwerkformen aufweisen? 2. Thema: Pong - Überlegen Sie sich ein Konzept, wie ein NN auf das Pong-Spiel angewendet werden kann. - Implementieren Sie eine einfache Variante von Pong mit NN als Spieler. - Einfach kann heißen: Es gibt nur einen Spieler. Bälle werden nie reflektiert. * Umsetzung eines Spiels, bei dem ein menschlicher Spieler gegen ein NN spielt. 3. TicTacToe Mit/ohne Vortraining - Wieviele Neuronen-Schichten können noch ohne weiteres ohne Vortraining belernt werden. - Wieviel aufwändiger ist das Belernen mit gegenüber dem ohne Vortraining. * Wie groß sollten die Lernfaktoren bei den verschienen Lernmethoden und deren Teilen sein? * Wie sollte der Lernfaktor am besten gesteuert werden? 4. SDA zur Filterung von Bildern - Untersuchen Sie praktisch die Möglichkeit mittels SDA Störungen aus Bildern heruaszufiltern. - Beispiel: Konturen schließen. * Bereinigung der Einzelbilder historischer Trickfilme (prinzipieller Nachweis): https://archive.org/details/silent_films 5. DL4J - DL4J-Installation auf PC-Pool-Rechnern testen. - Anleitung zur Verwendung von DL4J schreiben. * TicTacToe mit SDA auf der Grund von DL4J umsetzen (nicht vorhandenes Beispiel nehmen) 6. NN lernt Regelalgorithmus - Nehmen Sie sich ein einfaches regelungstechnisches Problem vor. - Legen Sie dafür einen Regelkreis aus. - Belernen Sie ein NN mit dem In- und Output dieses Regelkreises. * Lassen Sie ein NN eine das Ausregeln einer Regelstrecke erlernen ohne des Verhaltens eines anderen Regelalgorithmus' 7. Snake - NN soll das Spiel Snake erlernen. (Überlegen Sie sich, wie ein Spielsituation und ein nachfolgender Zug bewertet werden kann.) - Implementierung NN steuert Schlange alleine. * Implementierung Mensch gegen Maschine. siehe z.B.: https://de.wikipedia.org/wiki/Snake_(Computerspiel) 8. TicTacToe mit NN als Gegner auf Mikrocontroller - Übertragen Sie ein belerntes Netz zu TicTacToe auf einen ArduinoMicro. - Bauen Sie eine Mikrocontroller-Testschaltung auf, die es einem Spieler erlaubt gegen das NN zu spielen. * Erstellen Sie ein Release, das ernsthaft von beliebigen Personen benutzt werden kann (Punkte-Anzeige, Info, wer dran ist usw.) 9. Audio-Analyse - Unterscheidung dreier Sinustöne verschiedener Frequenz durch ein NN - Welche Größe eines NNs ist hier mindestens erforderlich? - Wie reduziert man den Datenumfang einer Audiodatei? * Implementierung eines Codeschlosses, das mit Tonfolgen arbeitet (prinzipieller Nachweis durch praktische Variante) / idealerweise PC-Mikrofon verwenden. 10. Reinforced Learning * Wie funktioniert "Reinforced Learning"? / Anwendung: Regelung eines "Fahrzeugs" in einer sehr einfachen Simulationsumgebung. studentische Vorschläge: ??. z.B. anderes Spiel, bei dem ein NN Gegner für einen Menschen ist.
Code 0-2: Projektarbeitsthemen