Problème de gradient explosif
Dans la vidéo, vous avez vu deux problèmes qui peuvent survenir avec les modèles RNN : les problèmes de gradient qui disparaît et de gradient explosif.
Cet exercice se concentre sur le gradient explosif. Vous verrez comment la dérivée d'une fonction peut croître de façon exponentielle et comment y remédier avec une technique simple.
Les données sont déjà chargées dans l'environnement sous X_train, X_test, y_train et y_test.
Vous utiliserez l'optimiseur Stochastic Gradient Descent (SGD) et la fonction de perte Mean Squared Error (MSE).
Dans la première étape, vous observerez le gradient explosif en calculant le MSE sur les ensembles d'entraînement et de test. À l'étape 2, vous modifierez l'optimiseur en utilisant le paramètre clipvalue pour corriger le problème.
Dans Keras, l'algorithme Stochastic Gradient Descent est accessible sous SGD.
Cette activité fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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' % (____, ____))