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

From Medien Wiki
Line 11: Line 11:
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 [http://processing.org/reference/libraries/ Libraries] verwenden, die man dem Sketchbook beifügt. Als Beispiel wird hier die [http://www.shiffman.net/teaching/nature/nn/ nn-library] von Daniel Shiffman verwendet.
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 [http://processing.org/reference/libraries/ Libraries] verwenden, die man dem Sketchbook beifügt. Als Beispiel wird hier die [http://www.shiffman.net/teaching/nature/nn/ nn-library] von Daniel Shiffman verwendet.


[[Image:neural_network_xor.png|200px|thumb|right|Neural Network XOR]]
[[Image:neural_network_xor.png|200px|thumb|bottom|Neural Network XOR]]
Bei dem Beispiel zur Rechten handelt es sich um eine leicht modifizierte Version eines neuronalen Netzes von Daniel Shiffman [2]. Mittels eines [http://en.wikipedia.org/wiki/Multilayer_perceptron Multilayer Perceptrons] wird hier versucht das nicht-linear trennbare [http://en.wikipedia.org/wiki/Xor XOR Problem] zu lösen.
Bei dem Beispiel zur Rechten handelt es sich um eine leicht modifizierte Version eines neuronalen Netzes von Daniel Shiffman [2]. Mittels eines [http://en.wikipedia.org/wiki/Multilayer_perceptron Multilayer Perceptrons] wird hier versucht das nicht-linear trennbare [http://en.wikipedia.org/wiki/Xor 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.


== Referenzen ==
== Referenzen ==

Revision as of 11:24, 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.

Neural Network XOR

Bei dem Beispiel zur Rechten 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.

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