… d-Bibliothek / Neuronale Netzwerke mit "Neuroph"

Neuronale Netzwerke mit "Neuroph"

Wer sich für neuronale Netzwerke interessiert, der kann mit "Neuroph" sehr schnell eine künstliche Intelligenz realisieren.

Benötigt

Daraus bitte die Datei "neuroph-core-2.98.jar" in das JayMo-Verzeichnis entpacken.

Achtung:
Ungültige Werte können zu einer unendlichen Berechnungs-Zeit führen. Im Test führten teils auch gültige Werte zu einem endlosen Loop.

Namensraum

Alle nachfolgend verwendeten Typen befinden sich im Namensraum "Neuroph".

Entsprechend beginnen alle Typen mit dem Prefix "Neuroph_".

Perceptron

Konstruktor

Neuroph_Perceptron(IntNumber inputs, IntNumber outputs)

Funktionen

.learn(TrainSet set)
Trainiert das neuronale Netzwerk
.calc(Int inputvalues...)
Berechnet ein Ergebnis

Beispiel: OR (Oder)

true || false == true

Dazu werden also 2 Eingänge und ein Ausgang benötigt.

nn = Neuroph_Perceptron( 2, 1 )

Hinweis:
Das Netzwerk arbeitet intern nur mit Dezimalzahlen von 0.0 bis 1.0

Hierfür wird folgende Definition verwendet:

true = 1
false = 0

Zuerst muss das Netzwerk trainiert werden.
Dazu wird ein passendes Trainings-Set erstellt, in dem beschrieben wird was bei einem Eingang ankommt und wie das Ergebnis aussehen soll:

ts = Neuroph_TrainSet( 2, 1 )
ts.add( [0, 0], [0] )
ts.add( [0, 1], [1] )
ts.add( [1, 0], [1] )
ts.add( [1, 1], [1] )

Damit kann das Perceptron trainiert werden:

nn.learn( ts )

Nun ist das neuronale Netzwerk bereit.
Zum Berechnen werden nun 2 Werte (Eingänge) übergeben. Als Ergebnis kommt eine Liste (Ausgang) mit einem Wert zurück:

nn.calc( 0, 0 )[1].print
nn.calc( 0, 1 )[1].print
nn.calc( 1, 0 )[1].print
nn.calc( 1, 1 )[1].print

Hinweis:
XOR lässt sich mit einem Perceptron nicht berechnen, da nur direkte Verbindungen zwischen Ein- und Ausgängen möglich sind.

MultiLayerPerceptron

Ein MultiLayerPerceptron besitzt zwischen Ein- und Ausgängen noch eine oder mehrere verdeckte Ebenen (Layer).

Ansonsten kann dieser Typ wie ein Perceptron verwendet werden.

Konstruktor

Neuroph_MultiLayerPerceptron(IntNumber layers...)

Beispiel: XOR

Hier ein vollständiges Beispiel für XOR:

>prefix = "Neuroph"

mlp = _MultiLayerPerceptron(2, 2, 1)

ts = _TrainSet(2, 1)
ts.add([0, 0], [0])
ts.add([0, 1], [1])
ts.add([1, 0], [1])
ts.add([1, 1], [0])

mlp.learn(ts)

mlp.calc(0,0)[1].round.print
mlp.calc(0,1)[1].round.print
mlp.calc(1,0)[1].round.print
mlp.calc(1,1)[1].round.print
- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €