Day by Day
(EN google-translate)
(PL google-translate)
ACHTUNG AKTUELL 01.12.2020: BBB-Raum wurde gelöscht! -- Neuer Link (gleicher wie Simulations- und Regelungstechnik) statt des alten in Moodle eingetragen. Bitte nachschlagen!
Verzeichnis der im Verlauf des Semesters behandelten Themen
Donnerstag 26.11.2020
Themen
|
AlphaGo - The Movie | Full Documentary ab 50' 42' 34' 47' 55' 1h -- https://www.youtube.com/watch?v=WXuK6gekU1Y
Links zum Skript
Überblick (überwachtes Lernen): 79_Deep_Learning67_Echtzeitsysteme/08_NeuronaleNetze
36_Java
78_Processing
92_Soundinstallation/03_material/11_Snippets
public int berechne(int x) { return x*x; } public void setup() { size(500,500); int z = 4; println("Hallo "+z+"*"+z+"="+berechne(z)); } int x = 0; public void draw() { background(255,0,0); fill(0,0,255); ellipse(x,height/2,height/10,height/10); x = x+5; if(x>width) x = 0; }
Code 0-1: Beispielsketch mit Processing
Übung 1
Aufgabe: Antivalenzgitter mit Processing -- 02_WS2020_21/02_IE/01_day_by_day/2020-11-26_09-34-11.mp4function out = sigmoid(u,d) out = 1 ./ (1 + exp(-d.*u)); endfunction u = -3:0.1:3; d = 0.1; o1 = sigmoid(u,d); plot(u,o1); d = 1.0; o1 = sigmoid(u,d); plot(u,o1); d = 10.0; o1 = sigmoid(u,d); plot(u,o1);
Code 0-2: Sigmoid-Test mit Scilab
Bild 0-1: Screenshot des Scilab-Plots zu obigem Skript.
Übung 2
Der nachfolgende Sketch stellt Ihnen Methoden zur Verfügung, um das Neuronale Netz dort umzusetzen:
Folgen Sie den Kommentaren im setup und dort in der leeren for-Schleife, um einen Optimierer zu implementieren, der die Gewichte möglichst gut so anpasst, dass sich ein Antivalenzgitter ergibt.
Vervollständigen Sie den Sketch durch einen Testlauf am Ende, der zeigt, ob das Gatter auch funktioniert.
Besonderheiten: Input -1,+1 statt 0,1 und Output <0.5 .. >0.5 statt 0 oder 1.
Musterlösung zu Übung 2: Test009NeuroSchichtMehr.zip
Variante mit Schrittweitensteuerung: Test010Schrittweitensteuerung.zip
Donnerstag 03.12.2020
Oft überwiegt das "Machen" bei Übungen. Doch das Finden eines guten Lösungsweges durch intensives Nachdenken ist meistens wichtiger. Dies erklärt die Ausrichtung der heutigen Übung.
KI-Themen
|
Umsetzung des Backpropagation-Verfahrens -- 75_Echtzeit3/01_NeuronaleNetze/03_Umsetzung
Gradientenverfahren -- 50_Simulationstechnik/05_Parameterindentifikation/01_KleinsteQuadrate/01_Linearregression
Kleinste Quadrate Methode -- 50_Simulationstechnik/05_Parameterindentifikation/01_KleinsteQuadrate/02_Beispiel
Kleinste Quadrate Methode mit Scilab -- 50_Simulationstechnik/05_Parameterindentifikation/01_KleinsteQuadrate/05_Scilab
Heuristiken -- 50_Simulationstechnik/06_Optimierung/02_Heuristiken
Modifiziertes Gradientenverfahren -- 50_Simulationstechnik/06_Optimierung/03_ModifizierteG
Genetische Optimierung -- 50_Simulationstechnik/07_Genalgorithmus
Software-Entwicklungsthemen
|
36_Java
Datentypen im Java -- 36_Java/01_GettingStarted
Modifikatoren -- 30_Informatik3/07_Modifikatoren
Objektabstraktion -- 30_Informatik3/01_Vom_struct_zur_Klasse/06_Objektabstraktion
Objektfähigkeit -- 30_Informatik3/01_Vom_struct_zur_Klasse/08_Objektfaehigkeiten
UML-Klassendiagramm -- 30_Informatik3/02_UML/02_UML_Klassendiagramm
Konstruktor und UML -- 30_Informatik3/02_UML/03_Konstruktor
Vererbung -- 30_Informatik3/06_Vererbung/01_MesswerteUML
Schnittstellen / Interfaces -- 30_Informatik3/15_Rasterlayout/02_interfaces
Java Native Interface -- 30_Informatik3/14_Zwischenprojekt/03_JNI
ArrayList -- 30_Informatik3/15_Rasterlayout/03_ArrayList
Videos aus der Lehrveranstaltung:
Was ist Backpropagation? -- 02_WS2020_21/02_IE/01_day_by_day/backpropagation.mp402_WS2020_21/02_IE/01_day_by_day/v1_entwurf.mp4
02_WS2020_21/02_IE/01_day_by_day/v2_entwurf.mp4
02_WS2020_21/02_IE/01_day_by_day/v3_matmult.mp4
02_WS2020_21/02_IE/01_day_by_day/v4_uebung.mp4
Übung 1
AUFGABE: Entwickeln Sie Konzepte zur objektorientierten Repräsentation Neuronaler Netze. Überlegen Sie sich:
|
Übung 2
AUFGABE: Programmieren Sie ein TicTacToe-Spiel mit Processing
|
AUFGABE (alternativ): Programmieren Sie ein Pong-Spiel mit Processing
|
ACHTUNG AKTUELL 01.12.2020: BBB-Raum wurde gelöscht! -- Neuer Link (gleicher wie Simulations- und Regelungstechnik) statt des alten in Moodle eingetragen. Bitte nachschlagen!
Donnerstag 10.12.2020
Themen:
|
Videos aus Teil 1:
BlueJ, Processing und Libraries 1 -- VIDEO_2020_12_10_08_47_14.mp4BlueJ, Processing und Libraries 1 -- VIDEO_2020_12_10_08_56_28.mp4
Material zur ersten Übung:
Neuronetz001.zipBild 0-2: UML-Klassendiagramm der Klasse Neuronetz aus obigem Sketch.
Musterlösung zu Übung 1:
Vormals entwickeltes optimierendes Netz für Antivalenzgatter. Ergänzung einer Ausgabe der Gewichte im Format für Neuronetz -- Test011Schrittweitensteuerung_fuer_neuronetz.zipVerwendung der Gewichte aus dem vorangehenden Projekt mit d=1.4 / Nachweis der Übereinstimmung der Ergebnisse --- Neuronetz002.zip
println("Für Neuronetz:"); println("//d="+d[0]); println("double[][][] w = {"); println(" {"); println(" {"+w[0]+","+w[3]+"},"); println(" {"+w[1]+","+w[2]+"}"); println(" },"); println(" {"); println(" {"+w[6]+","+w[8]+"},"); println(" {"+w[7]+","+w[9]+"}"); println(" },"); println(" {"); println(" {"+w[4]+","+w[5]+"}"); println(" },"); println(" };"); Neuronetz002 LIEFERT (Konsolenausgabe): in: -1 -1 out:0.49919913641136243 in Testprogramm vorher: 0.49919912471348593 in: -1 1 out:0.5039652060903305 in Testprogramm vorher: 0.5039651950719938 in: 1 -1 out:0.5000185760112115 in Testprogramm vorher: 0.5000185751153124 in: 1 1 out:0.4999772392646055 in Testprogramm vorher: 0.4999772380555142
Code 0-3: Umwandlung der Gewichte aus Test011Schrittweitensteuerung_fuer_neuronetz in das Format von Neuronetz / Konsolenausgabe aus Neuronetz002
Vorläufige Musterlösung (liefert in den meisten Durchläufen richtige Ergebnisse / kläre noch ob Konditionierungsproblem oder Fehler in Klasse Neuronetz): Neuronetz004.zip
Nachtrag: größeres Netz [2,6,6,1] liefert verläßlich nach dem Belernen richtige Ergebnisse, Lösung war somit in Ordnung: Neuronetz005.zip
Donnerstag 17.12.2020
Themen:
|
Link zu Deep-Learning auf kramann.info:
Neuronetz006_SDA_DeepLearning.zip -- Im Unterricht entstandene noch nicht getestete Implementierung des SDA-Verfahrens.
Hinweise zur "Ferienübung" (Tic-Tac-Toe)
|
Donnerstag 07.01.2021
Themen
|
Musterlösungen zur "Ferienübung":
TTT001.zip -- Zwei meschliche Spieler können gegeneinander spielen. TTT erkennt gültige Züge.Bild 0-3: UML-Klassen-Diagramm der Klasse TTT in TTT001. TTT repräsentiert das TicTacToe-Spiel.
Bild 0-4: UML-Klassen-Diagramm der Klasse TTT in TTT002.
Bild 0-5: UML-"Benutzt"-Diagramm: Welche Klasse benutzt welche?
Bild 0-6: UML-Klassen-Diagramm der Klasse TTT in TTT003.
Bild 0-7: UML-Klassen-Diagramm der Klasse Berater in TTT003.
Bild 0-8: UML-Klassen-Diagramm der Klasse Computerspieler in TTT003.
Unterrichtsmaterial
https://de.wikipedia.org/wiki/Selbstorganisierende_KarteKohonen102.zip -- Beispielimplementierung Kohonen-Netz
SDA_Bitvergleicher_deeep_003.zip -- SDA-Verfahren, getestete Implementierung, Pretraining ausgeschaltet!
SDA_Bitvergleicher_deeep_004.zip -- SDA-Verfahren, getestete Implementierung, Pretraining läuft!
Bestimmung der Gewinnw. bei Tic-Tac-Toe -- berater.mp4
(Teil-) Musterlösung zur Übung
TTT004_Lernpattern_Speichern.zipSDA_Bitvergleicher_deeep_005_TTTlernpattern.zip
Lade Lernpattern aus Datei lernpatternXgewinnt.txt Lernpattern fertig geladen! Verhalten VOR Backpropagation und VOR Pretraining: **** TEST **** FEHLER AKTUELL = 97504.00024508747 Verhalten VOR Backpropagation NACH Pretraining: **** TEST **** FEHLER AKTUELL = 54697.41006160564 Verhalten NACH Backpropagation: **** TEST **** FEHLER AKTUELL = 16126.029159320402
Code 0-4: Ausgabe
**** NEW ****
kramann.info/etest -- Anleitung zum E-Test / Instruction for e-testDonnerstag 14.01.2021
Themen:
|
(Wieder nur) Teillösungen zum Thema Tic Tac Toe
TTT401_Lernpattern_Berater_bilden.zip -- Erstellen der Lernpattern, die alle Antworten des Beraters abbilden.TTT402a_NeurspielerTraining_50trainiert.zip -- Trainieren von 50 Lernpattern aus den möglichen 549946.
TTT402b_NeurspielerTraining_500trainiert.zip -- Trainieren von 500 Lernpattern aus den möglichen 549946.
TTT402c_NeurspielerTraining_5000trainiert.zip -- Trainieren von 5000 Lernpattern aus den möglichen 549946.
Kohonen (SOM)
https://de.wikipedia.org/wiki/Selbstorganisierende_KarteKohonen102.zip -- Beispielimplementierung Kohonen-Netz
Kohonen104_fertiges_Netz_testen.zip -- Vorgabe von Reizen an eine fertig belernte SOM
Prinzip beim bestärkenden Lernen (Reinforced Lernen) realisiert als Kombination von Genetischem Algorithmus und Neuronalem Netz
Im folgenden soll ein NN lernen in einem sehr primitivem Acade Game die richtigen Bewegungen auszuführen, um Blöcke, die von oben herabfallen zu fangen.
Belernt wird mit Hilfe eines genetischen Algorithmus. Das Lernprinzip ist bestärkendes Lernen, da die beste Strategie nicht bekannt ist, sondern Fortschritte belohnt werden, bzw. das Überleben in der nächsten Generation sichern. img neuropong.png Der rote Block fällt herab und soll vom grünen gefangen werden. Der grüne Spieler kann mit jedem Tick ein Feld nach links oder rechts gehen, oder stehen bleiben. Mit jedem Tick fällt ein roter Block ein Feld heiter nach unten.
Neuropong002.zip -- Güte eines Spielverlaufs berechnen
Neuropong003.zip -- NN als Spieler. Belernt wird mit immer gleichen Spielverläufen
Neuropong004.zip -- NN als Spieler. Belernt wird mit wechselnden Spielverläufen
Übung
https://www.youtube.com/watch?v=wL7tSgUpy8w -- Autonomes Fahren (als Simulation) mittels Neurnaler Netze und bestärkendes Lernen.https://www.youtube.com/watch?v=a8Bo2DHrrow -- Details
|
erklaervideo_reinforced_learning.mp4 -- Erläuterungen zur Übung.
Musterlösung zur Übung:
Neuropendel001_Modell.zipNeuropendel002_Fehlerfunktion.zip
Neuropendel003_Neuroregler_zufaellig.zip
Neuropendel004_Genetische_Optimierung.zip
Mögliche Klausurthemen
|