CommencerCommencer gratuitement

Problème de gradient explosif

Dans l'exercice vidéo, vous avez découvert deux problèmes pouvant survenir lors de l'utilisation de modèles RNN : les problèmes de gradient disparu et de gradient explosif.

Cet exercice explore le problème de l'explosion du gradient, en montrant que la dérivée d'une fonction peut augmenter de manière exponentielle, et comment le résoudre à l'aide d'une technique simple.

Les données sont déjà chargées dans l'environnement sous les noms X_train, X_test, y_train et y_test.

Vous utiliserez un optimiseur Stochastic Gradient Descent (SGD) et l'erreur quadratique moyenne (MSE) comme fonction de perte.

Dans un premier temps, vous observerez l'explosion du gradient en calculant l'erreur quadratique moyenne (MSE) sur les ensembles d'entraînement et de test. À l'étape 2, vous allez modifier l'optimiseur à l'aide du paramètre « clipvalue » afin de résoudre le problème.

La descente stochastique du gradient dans Keras est chargée sous le nom d'SGD.

Cet exercice fait partie du cours

Réseaux neuronaux récurrents (RNN) pour la modélisation du langage avec Keras

Afficher le cours

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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' % (____, ____))
Modifier et exécuter le code