GMU:Neuronale Netze - eine Einführung für Künstler/Präsentation/Neuronale Netze in Processing: Difference between revisions

From Medien Wiki
mNo edit summary
Line 19: Line 19:
[[Image:processing_neural_network_xor_5.png|100px|thumb|left|Neural Network XOR]]
[[Image:processing_neural_network_xor_5.png|100px|thumb|left|Neural Network XOR]]
<br clear="all" />
<br clear="all" />
=== Anlegen eines neuronalen Netzes ===
[[Image:neural_network_multilayer_perceptron.png|thumb|right|200px|Multilayer Perceptron]]
Zunächst erzeugt man ein neues Netzwerk, für welches man vorgibt, wieviele input und hidden Neuronen enthalten sein sollen. Zusätzlich wird intern je Ebene ein BIAS Neuron erzeugt (siehe Abbildung rechts).


== Referenzen ==
== Referenzen ==

Revision as of 13:21, 11 July 2010

Processing

Processing IDE

Processing ist eine Programmiersprache und Entwicklungsumgebung, die 2001 am Massachusetts Institute of Technology von den Erfindern Ben Fry und Casey Reas als quelloffenes Projekt ins Leben gerufen wurde. Die Sprache wurde speziell für die Bereiche Simulation und Animation entworfen und richtet sich daher vorwiegend an Personen aus der Gestaltung und Kunst.

Das sogenannte Sketchbook verkörpert das Prinzip einer stark vereinfachten IDE (Integrated Development Environment). Dem Nutzer steht eine simple Toolbar, ein Editor und Textfeld zur Verfügung. Über das Hauptprogramm hinaus erzeugte Klassen werden in eigenen Tabs untergebracht. Jede dieser Sketches ist tatsächlich nur eine Unterklasse der PApplet Java-Klasse, welche fast alle Features der Sprache implementiert. Alle zusätzlich erstellten Klassen werden beim Kompilieren als innere Klassen behandelt. Wenn man in Java programmieren will, muss dies explizit geschehen.

Weitere Informationen bzgl. Processing und dessen Verwendung lassen sich auf der Hauptseite und im Wiki-Eintrag zu Processing finden.

Neuronale Netze

Da man in Processing direkt in Java programmieren kann, sind einem bzgl. der Komplexität der Programme keine Grenzen gesetzt. Für die einfache Erstellung neuronaler Netze kann man zusätzliche Libraries verwenden, die man dem Sketchbook beifügt. Als Beispiel wird hier die nn-library von Daniel Shiffman verwendet.

Bei dem unteren Beispiel handelt es sich um eine leicht modifizierte Version eines neuronalen Netzes von Daniel Shiffman [2]. Mittels eines Multilayer Perceptrons wird hier versucht das nicht-linear trennbare XOR Problem zu lösen. Jede Ecke des Würfels entspricht einer 0 oder 1, wobei sich gleiche Werte je Fläche diagonal spiegeln, d.h. benachbarte Eckpunkte sind nie gleich 0 oder 1. Zwischen 2 Eckpunkten wird entlang der Flächen interpoliert, sodass man für Werte zwischen 0 und 1 eine Annährung erhält.

Neural Network XOR
Neural Network XOR
Neural Network XOR
Neural Network XOR
Neural Network XOR


Anlegen eines neuronalen Netzes

Multilayer Perceptron

Zunächst erzeugt man ein neues Netzwerk, für welches man vorgibt, wieviele input und hidden Neuronen enthalten sein sollen. Zusätzlich wird intern je Ebene ein BIAS Neuron erzeugt (siehe Abbildung rechts).

Referenzen

[1] Peter M. Todd
Neural Networks for Application in the Arts
Annual Symposium on Small Computers in the Arts, 1991

[2] Daniel Shiffman
The Nature of Code - Neural Networks