Bắt đầu ngayBắt đầu miễn phí

Vấn đề gradient bùng nổ

Trong bài tập video, bạn đã học về hai vấn đề có thể xảy ra khi làm việc với mô hình RNN: gradient tiêu biến và gradient bùng nổ.

Bài tập này đào sâu vấn đề gradient bùng nổ, cho thấy đạo hàm của một hàm có thể tăng theo cấp số nhân, và cách giải quyết bằng một kỹ thuật đơn giản.

Dữ liệu đã được nạp sẵn trong môi trường dưới các biến X_train, X_test, y_trainy_test.

Bạn sẽ dùng bộ tối ưu hóa Stochastic Gradient Descent (SGD) và Mean Squared Error (MSE) làm hàm mất mát.

Ở bước đầu tiên, bạn sẽ quan sát gradient bùng nổ bằng cách tính MSE trên tập train và test. Ở bước 2, bạn sẽ thay đổi bộ tối ưu hóa bằng cách dùng tham số clipvalue để giải quyết vấn đề.

Stochastic Gradient Descent trong Keras được nạp dưới tên SGD.

Bài tập này là một phần của khóa học

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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' % (____, ____))
Chỉnh sửa và Chạy Mã