LoslegenKostenlos loslegen

Explodierendes Gradientenproblem

In der Videoübung hast du zwei Probleme kennengelernt, die bei der Arbeit mit RNN-Modellen auftreten können: das Problem des verschwindenden Gradienten und das Problem des explodierenden Gradienten.

Diese Übung beschäftigt sich mit dem Problem explodierender Gradienten und zeigt, dass die Ableitung einer Funktion exponentiell ansteigen kann, und wie man das mit einer einfachen Technik lösen kann.

Die Daten sind schon in der Umgebung als „ X_train “, „ X_test “, „ y_train “ und „ y_test “ geladen.

Du wirst einen Stochastic Gradient Descent (SGD)-Optimierer und den Mean Squared Error (MSE) als Verlustfunktion verwenden.

Im ersten Schritt siehst du, wie der Gradient explodiert, indem du den MSE für die Trainings- und Testdatensätze berechnest. In Schritt 2 änderst du den Optimierer mit dem Parameter „ clipvalue “, um das Problem zu lösen.

Der stochastische Gradientenabstieg in Keras wird als „ SGD “ geladen.

Diese Übung ist Teil des Kurses

Rekursive neuronale Netze (RNNs) für die Sprachmodellierung mit Keras

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Create a Keras model with one hidden Dense layer
model = Sequential()
model.add(Dense(25, input_dim=20, activation='relu', kernel_initializer=he_uniform(seed=42)))
model.add(Dense(1, activation='linear'))

# Compile and fit the model
model.compile(loss='mean_squared_error', optimizer=____(learning_rate=0.01, momentum=0.9))
history = model.fit(X_train, y_train, validation_data=(____, ____), epochs=100, verbose=0)

# See Mean Square Error for train and test data
train_mse = model.____(X_train, y_train, verbose=0)
test_mse = model.evaluate(X_test, y_test, verbose=0)

# Print the values of MSE
print('Train: %.3f, Test: %.3f' % (____, ____))
Code bearbeiten und ausführen