ÎncepețiÎncepe gratuit

Problema gradientului exploziv

În lecția video, ai aflat despre două probleme care pot apărea atunci când lucrezi cu modele RNN: problema gradientului dispărut și cea a gradientului exploziv.

Acest exercițiu explorează problema gradientului exploziv, arătând că derivata unei funcții poate crește exponențial și cum poți rezolva această problemă printr-o tehnică simplă.

Datele sunt deja încărcate în mediu ca X_train, X_test, y_train și y_test.

Vei folosi un optimizer Stochastic Gradient Descent (SGD) și Mean Squared Error (MSE) ca funcție de pierdere.

În primul pas, vei observa explozia gradientului calculând MSE pe seturile de antrenament și de testare. La pasul 2, vei schimba optimizerul folosind parametrul clipvalue pentru a rezolva problema.

Stochastic Gradient Descent în Keras este încărcat ca SGD.

Acest exercițiu face parte din cursul

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Vezi cursul

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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' % (____, ____))
Editează și rulează codul