Einfaches neuronales Netzwerk mit Backpropagation in Swift

8

Ich versuche ein wirklich einfaches neuronales Netzwerk mit Backpropagation zu implementieren. Ich versuche, das Netzwerk mit dem logischen Operator AND zu trainieren. Aber die Vorhersage, es funktioniert nicht für mich gut. :(

%Vor%

Dies sind meine Trainingsdaten. Ich möchte nur, dass mein Netzwerk den einfachen logischen Operator AND lernt.

Meine Eingabedaten:

%Vor%

Das ist mein ganzer Code für das neurale Netzwerk. Der Code ist nicht wirklich swifty, aber ich denke, es ist zuerst wichtiger, die Theorie über neuronale Netze zu verstehen, dann wird der Code geschickter sein.

Das Problem ist, dass meine Ergebnisse völlig falsch sind. Das ist was ich bekomme

%Vor%

Das möchte ich bekommen

%Vor%

Nun zum Vergleich die Java-Implementierung funktioniert gut ..

%Vor%     
BilalReffas 21.03.2017, 23:53
quelle

1 Antwort

4

Sie initialisieren Ihre Gewichte anders. Sie erstellen einen zufälligen Wert und verwenden ihn häufig. Was Sie tun möchten, ist einen zufälligen Wert für jedes Gewicht im Array zu erstellen: Ersetzen Sie

%Vor%

mit

%Vor%

Abgesehen davon: Bitte beachten Sie, dass Sie nur die ersten Elemente Ihrer Eingabe in der Layer.run-Methode überschreiben. Also statt

%Vor%

Sie sollten dies tun:

%Vor%     
Ben 24.03.2017, 15:45
quelle