Grundlegendes neuronales Netzwerk in TensorFlow

8

Ich versuche ein sehr einfaches neuronales Netzwerk in TensorFlow zu implementieren, aber ich habe einige Probleme. Es ist ein sehr einfaches Netzwerk, das als Eingabe für Werte (Stunden oder Schlaf und Stunden des Studiums) dient und das Ergebnis eines Tests vorhersagt (ich habe dieses Beispiel auf you-tube gefunden). Also im Grunde habe ich nur eine versteckte Schicht mit drei Einheiten, jede berechnet eine Aktivierungsfunktion (Sigmoid) und die Kostenfunktion ist die Summe der quadratischen Fehler und ich benutze Gradientenabstieg, um sie zu minimieren. Das Problem ist also, wenn ich das Netz mit den Trainingsdaten trainiere und versuche, einige Vorhersagen unter Verwendung der gleichen Trainingsdaten zu treffen, stimmen die Ergebnisse nicht überein und sie erscheinen auch merkwürdig, weil das Aussehen gleich ist.

%Vor%

Es ergibt:

  

[[0.51873487]    [0.51874501]    [0.51873082]]

und ich glaube, es sollte den Ergebnissen der Trainingsdaten ähnlich sein.

Ich bin ziemlich neu in neuronalen Netzen und maschinellem Lernen, also bitte verzeihen Sie mir für etwaige Fehler, danke im Voraus.

    
Thalles 15.12.2015, 12:19
quelle

1 Antwort

9

Der Hauptgrund dafür, dass Ihr Netzwerk nicht trainiert, ist die folgende Aussage:

%Vor%

... wird nur einmal ausgeführt. In TensorFlow führt das Ausführen von train_op (oder eines von Optimizer.minimize() zurückgegebenen Vorgangs nur dazu, dass das Netzwerk einen einzigen Gradientenabstiegsschritt ausführt. Sie sollten es in einer Schleife ausführen, um iteratives Training durchzuführen, und die Gewichtungen konvergieren schließlich.) / p>

Zwei weitere Tipps: (i) Sie erzielen möglicherweise eine schnellere Konvergenz, wenn Sie eine Teilmenge Ihrer Trainingsdaten in jedem Schritt anstatt des gesamten Datensatzes füttern; und (ii) die Lernrate von 0,5 ist wahrscheinlich zu hoch (obwohl dies von den Daten abhängt).

    
mrry 15.12.2015, 14:57
quelle

Tags und Links