Versuch, ein einfaches Keras-Neuralnetz-Beispiel zu erhalten

8

Ich habe herumalbern versucht, einfache Beispiele zu bekommen, die ich erschaffe, weil ich finde, dass die Beispiele mit großen komplizierten Datensätzen intuitiv schwer zu verstehen sind. Das Programm unten nimmt eine Liste von Gewichten [x_0 x_1 ... x_n] und verwendet sie, um eine zufällige Streuung von Punkten auf einer Ebene mit etwas zufügendem Rauschen zu erzeugen. Ich trainiere dann die einfachen neuronalen Netze auf diesen Daten und überprüfe die Ergebnisse.

Wenn ich das mit den Graph-Modellen mache, funktioniert alles perfekt, der Verlust-Score sinkt vorhersehbar auf Null, da das Modell gegen die gegebenen Gewichte konvergiert. Wenn ich jedoch versuche, ein sequenzielles Modell zu verwenden, passiert nichts. Code unten

Wenn Sie möchten, kann ich mein anderes Skript, das das Diagramm verwendet, anstatt sequenziell posten und anzeigen, dass es die Eingabegewichte perfekt findet.

%Vor%

Die Ausgabe ist wie folgt

%Vor%     
John Allard 28.11.2015, 07:57
quelle

2 Antworten

3

Der Grund für den großen Fehler ist, dass Ihre Beschriftungen nicht binär und sehr groß sind, aber die Ausgabe von softmax ist binär. Wenn das Label beispielsweise 10000 ist, Sie aber nur etwas zwischen 0 und 1 vorhersagen können, wird es unabhängig von Ihrer Prognose einen großen Fehler geben. Meinst du activation='linear' in der letzten Schicht, um eine Regression zu machen? Oder möchtest du deine Labels am Ende von get_data() durch ein softmax setzen?

    
1'' 01.05.2016 19:05
quelle
0

Da Ihr y_train aus 5 Elementen besteht, sollte Ihr Ausgabemodell auch 5 Elemente enthalten,

%Vor%

zum Beispiel versuchen Sie dieses Netzwerk

%Vor%     
Po Stevanus Andrianta 08.01.2017 05:10
quelle