top of page

Programming

more content coming soon ...

Als Kind habe ich schon den Z80 des Schneider CPCs in Basic und Assembler programmiert und war als "Critter" in der damaligen Szene bekannt.

Später habe ich in Weingarten "Angewandte Informatik" studiert und mich dann neben Film- und Musikproduktion auf (K)ünstliche (I)ntelligenz und (B)ilddaten(V)erarbeitung spezialisiert. Mittlerweile habe ich auch Erfahrung im Erstellen von grafischen BenutzerOberflächen und Grundkentnisse in der Spieleentwicklung.

Hans-Peter Radtke

Künstliche Intelligenz

Neuronale Netze

Genetische Alogrithmen

Reinforcement Learning

Hans-Peter Radtke neuronales netz neurons neural net
Hans-Peter Radtke genetische algorithmen genetic code dna dns
Hans-Peter Radtke Reinforcement Learning robot ki

BilddatenVerarbeitung

image processing leopard

Ich experimentiere schon seit dem Studium mit dem Einsatz künstlicher Neuronaler Netze herum, die nach dem biologischen Vorbild vernetzter Nervenzellen (z.B. in Rückenmark und Gehirn) entwickelt wurden.

Folgende Arten habe ich schon selbst programmiert und in Tests untersucht:

  - Mehrschichtige Feed-Forward-Netze (hauptsächlich BackPropagation)

  - Rekurrente Netze

  - Hopfield-Netze

  - Kohonen-Maps

Hierbei handelt es sich um der Evolution nachempfundene Suchalgorithmen, die eine Population von "Individuen" bewerten und nach dem Darwinschen Ausleseprinzip miteinander Kreuzen, verändern oder löschen.

Diese Algorithmen liefern bei hochdimensionalen Suchproblemen sehr schnell gute Lösungen und sind daher gut für viele Optimierungsaufgaben geeignet.

Ich habe durch Experimente und konkrete Anwendung einige Erfahrung mit selbstgeschriebenen Genetischen Algorithmen.

Schon während des Studiums habe ich viel mit Robotik, vor allem in der Simulation experimentiert und verschiedene automatische Lernverfahren (wie "ValueIteration", "Q-Learning" und Explorationsverfahren) selbst geschrieben, getestet und angewendet.

Zusammen mit meinem Freund Michel Tokic habe ich schon viele Robotik- und Lernverfahren entwickelt und getestet, darunter z.B. ein selbstlernender KrabbelRoboter:

Die Bilder einer Kamera digital auszuwerten bietet die Möglichkeit, algorithmisch z.B. Objekte zu erkennen, zu beschreiben und zu klassifizieren oder Texturen zu erkennen bzw. den gesamten Bildinhalt zu klassifizieren.

Hierfür gibt es eine riesige Zahl verschiedener Verfahren zur Bildaufbereitung, Segmentation und Klassifikation (was dann wiederum in den bereich der künstlichen Intelligenz reicht).

Ich habe mittlerweile recht viel Erfahrung auf diesem Gebiet und schon einige Algorithmen selbst geschrieben und in verschiedenen Anwendungen getestet. Aber man lernt nie aus ...

Spielereien

Ich habe schon einige Tests mit Agenten in verschiedenen simulierten Umgebungen gemacht.

Hier ein Beispiel in vier Parameter-Varianten. Die Agenten befinden sich auf einer 2D-Karte, deren Felder Nahrung (z.B. Gras) enthalten, welche kontinuierlich nachwächst. Sie unterscheiden sich durch Sichtweite und Gefraessigkeit. Jeder Agent steuert das Feld mit dem groessten Nahrungsvorkommen innerhalb seines Sichtradius an. Die Nahrungsmenge wird hier als Grauwert-Intensitaet dargestellt:

Multi-Agenten-Systeme

100 Agenten auf 200x100-Karte

500 Agenten auf 300x200-Karte

5000 Agenten auf 500x500-Karte

Bewegungs-Steuerung

Für Robotik-Anwendungen habe ich diverse Tests zur Bewegungs-Steuerung durchgeführt.

Hier eine Variante ohne Sensor-Abhängigkeit, die auf verschachtelten, parametrisierten Sinus-Funktionen basiert. Die Parameter werden an verschiedenen Stellen im Video neu gesetzt:

Tanz-Bewegungen aus Sinus-Funktionen

Hier ein kleines Beispiel, wie ein mehrschichtiges Netz vom User geklickte Punkte interpoliert.

Die grüne Linie ist der vom Netz erzeugte Output.

Kohonen-Maps zählen zu den "Selbstorganisierende Karten", die zum automatischen Clustering von Merkmalsräumen nützlich sind.

Hier noch eine praktische Anwendung. Die PixelDaten eines Kamerabildes werden von einem Neuronalen Netz in zwei Klassen unterschieden. So können z.B. Objekte klassifiziert werden.

Hier wird "on the fly" gelernt, d.h. die  aufgezeichneten Daten werden im Hintergrund trainiert, und gleichzeitig wird das aktuelle Kamerabild klassifiziert.

Nützliche Tools

Hans-Peter Radtke programming movietool tools

Für alle möglichen verschiedenen Zwecke, sei es Videoschnitt, ZufallsEntscheidungen, Game- oder Grafik-Design schreibe ich mit gelegentlich kleine, genau auf die Anwendung zugeschnittene Hilfs-Tools.

Links zu sehen ist z.B. ein Video-Editor, den ich für den NaturalFreeRunner-Kanal geschrieben habe. Damit kann man die Geschwindigkeit dynamisch festlegen. Zwischen gesetzten KeyFrames wird linear interpoliert, was ein gleitendes Schneller- oder Langsam-Werden ermöglicht.

NuetzlicheTools
Hans-Peter Radtke
Hans-Peter Radtke
Hans-Peter Radtke
Hans-Peter Radtke
Hans-Peter Radtke
Hans-Peter Radtke
Hans-Peter Radtke
Hans-Peter Radtke
KI/NeuronaleNetze
KuenstlicheIntelligenz
KI/GenetischeAlgorithmen
KI/ReinforcementLearning
Spielereien
Spielereien/MultiAgentenSysteme
Spielereien/BewegungsSteuerung
BildVerarbeitung
bottom of page