ПочатиПочніть безкоштовно

Проблема вибуху градієнта

У відео ви ознайомилися з двома проблемами, які можуть виникати під час роботи з моделями RNN: зникненням градієнта та вибухом градієнта.

У цій вправі ми розглянемо проблему вибуху градієнта: побачимо, що похідна функції може зростати експоненційно, і як розв'язати це простою технікою.

Дані вже завантажено в середовище як X_train, X_test, y_train і y_test.

Ви використаєте оптимізатор Stochastic Gradient Descent (SGD) і функцію втрат Mean Squared Error (MSE).

На першому кроці ви спостерігатимете вибух градієнта, обчислюючи MSE на тренувальній і тестовій вибірках. На кроці 2 ви зміните оптимізатор, використавши параметр clipvalue, щоб розв'язати проблему.

Stochastic Gradient Descent у Keras доступний як SGD.

Ця вправа є частиною курсу

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Переглянути курс

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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' % (____, ____))
Редагувати та запускати код