Neuronale Netze mit einer Schicht
Um dich mit neuronalen Netzen vertraut zu machen, beginnst du am besten mit einer einfachen Approximation einer Funktion.
Du trainierst ein neuronales Netz, das eine Abbildung zwischen einer Eingabe x und einer Ausgabe y approximiert. Sie hängen über die Quadratwurzel-Funktion zusammen, d. h. \(y = \sqrt{x}\).
Der Eingabevektor x ist vorgegeben. Zuerst berechnest du die Quadratwurzel von x mit Numpys sqrt()-Funktion und erzeugst damit die Ausgabereihe y. Anschließend erstellst du ein einfaches neuronales Netz und trainierst es auf der x-Reihe.
Nach dem Training plottest du sowohl die y-Reihe als auch die Ausgabe des neuronalen Netzes, um zu sehen, wie gut das Netz die Quadratwurzelfunktion approximiert.
Die Objekte Sequential und Dense aus der Keras-Bibliothek sind ebenfalls in deinem Arbeitsbereich verfügbar.
Diese Übung ist Teil des Kurses
Quantitative Risk Management in Python
Anleitung zur Übung
- Erzeuge die Ausgabetrainingswerte mit Numpys
sqrt()-Funktion. - Erstelle das neuronale Netz mit einer versteckten Schicht mit 16 Neuronen, einem Eingabewert und einem Ausgabewert.
- Compiliere und fitte das neuronale Netz auf den Trainingswerten für 100 Epochen.
- Plotte die Trainingswerte (in Blau) gegen die vom neuronalen Netz vorhergesagten Werte.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create the training values from the square root function
y = np.____(x)
# Create the neural network
model = Sequential()
model.____(Dense(16, input_dim=1, activation='relu'))
model.____(____(1))
# Train the network
model.____(loss='mean_squared_error', optimizer='rmsprop')
model.____(x, y, epochs=100)
## Plot the resulting approximation and the training values
plt.plot(x, y, x, model.____(x))
plt.show()