Exploding gradient-probleem
In de video-oefening heb je twee problemen leren kennen die kunnen optreden bij RNN-modellen: het vanishing en het exploding gradient-probleem.
Deze oefening gaat in op het exploding gradient-probleem. Je ziet hoe de afgeleide van een functie exponentieel kan toenemen en hoe je dit met een eenvoudige techniek oplost.
De data is al ingeladen in de omgeving als X_train, X_test, y_train en y_test.
Je gebruikt een Stochastic Gradient Descent (SGD)-optimizer en Mean Squared Error (MSE) als verliesfunctie.
In de eerste stap observeer je het exploderen van de gradiënten door de MSE op de train- en testsets te berekenen. In stap 2 pas je de optimizer aan met de parameter clipvalue om het probleem op te lossen.
De Stochastic Gradient Descent in Keras is beschikbaar als SGD.
Deze oefening maakt deel uit van de cursus
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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' % (____, ____))