Verwendung eines Perceptron-Netzes als TicTacToe-Spieler
(EN google-translate)
(PL google-translate)
In einer Vorstudie wird hier zunächst ein Perceptron-Netz entwickelt, dem ein Spielfeld übergeben wird. Es soll an einem Ausgang mit 9 Neuronen bei jedem freien Feld vom Eingang einen Wert >0.5 ausgeben und bei jedem besetzten Feld einen Wert <0.5. Mit anderen Worten soll das Netz lernen, wo es einen eigenen Zug machen kann.
Der Eingang besteht aus 9 Eingangsneuronen. Für ein freies Feld wird 0.25 gesetzt, für ein X wird 0.5 und für O wird 0.75 gesetzt.
Eine Trainer-Klasse erzeugt zufällige Spielsituationen, die dem Netz präsentiert werden. Zu jeder Spielsituation wird die Sollausgabe des Netzes erzeugt und mit der Ist-Ausgabe verglichen. Um das Natz zu belernen wird diese Differenz mittels der klassischen Backpropagation-Methode zur Verbesserung der Verbindungsgewichte herangezogen. Siehe dazu:
67_Echtzeitsysteme/08_NeuronaleNetze/02_Backpropagation
Die gesamte Programmstruktur wurde objektorientiert aufgebaut. Um die Klassenstruktur und die UML-Klassendiagramme visuell zu erhalten, wurde TicTacToe32_Neuro_strukturiert auch in BlueJ importiert. Jedoch liegt im folgenden das Processing-Projekt zum Download bereit.
Struktur-Prinzip beim nachfolgenden Projekt
  | 
Bild 0-1: Klassenübersicht 1
Bild 0-2: Klassenübersicht 2
Bild 0-3: Interface iLayer
Bild 0-4: Interface iNetz
Bild 0-5: UML-KLassendiagramm von "Gewichte"
TicTacToe32_Neuro_strukturiert.zip -- Dieses Netz lernt, was es lernen soll.
Übung
  |