65
edits
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. | ||
Bei dem unteren Beispiel handelt es sich um eine leicht modifizierte Version eines neuronalen Netzes von Daniel Shiffman <ref>Daniel Shiffman: [http://www.shiffman.net/teaching/nature/nn/ The Nature of Code - Neural Networks]</ref>. Mittels eines [http://en.wikipedia.org/wiki/Multilayer_perceptron Multilayer Perceptrons] wird hier versucht das nichtlinear 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. | {| class="wikitable" style="text-align: center;border: 1px solid darkgray;float: right;margin: .46em 0 0 .2em;" | ||
|- | |||
! i(1) !! i(2) !! ⊕ | |||
|- | |||
| 0.2 || 0.2 || 0.2 | |||
|- | |||
| 0.2 || 0.2 || 0.8 | |||
|- | |||
| 0.8 || 0.2 || 0.8 | |||
|- | |||
| 0.8 || 0.8 || 0.2 | |||
|} | |||
Bei dem unteren Beispiel handelt es sich um eine leicht modifizierte Version eines neuronalen Netzes von Daniel Shiffman <ref>Daniel Shiffman: [http://www.shiffman.net/teaching/nature/nn/ The Nature of Code - Neural Networks]</ref>. Mittels eines [http://en.wikipedia.org/wiki/Multilayer_perceptron Multilayer Perceptrons] wird hier versucht das nichtlinear 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. Zur Verdeutlichung wurde im Folgenden als mögliches Antwortpaar für das Training via [http://en.wikipedia.org/wiki/Backpropagation Backpropagation] [0.2, 0.8] gewählt (siehe angepasste Wahrheitstabelle rechts). | |||
[[Image:processing_neural_network_xor_1.png|thumb|left|100px|XOR possible state (1)]] | [[Image:processing_neural_network_xor_1.png|thumb|left|100px|XOR possible state (1)]] |
edits