ComeçarComece de graça

Problema de gradiente explosivo

No exercício em vídeo, você aprendeu sobre dois problemas que podem surgir ao trabalhar com modelos RNN: os problemas de gradiente desaparecido e explodido.

Esse exercício mostra o problema do gradiente explosivo, mostrando que a derivada de uma função pode aumentar exponencialmente e como resolver isso com uma técnica simples.

Os dados já estão carregados no ambiente como X_train, X_test, y_train e y_test.

Você vai usar um otimizador de descida gradiente estocástico (SGD) e o erro quadrático médio (MSE) como função de perda.

Na primeira etapa, você vai ver o gradiente explodir ao calcular o MSE nos conjuntos de treinamento e teste. Na etapa 2, você vai trocar o otimizador usando o parâmetro “ clipvalue ” para resolver o problema.

A descida do gradiente estocástico no Keras é carregada como SGD.

Este exercício faz parte do curso

Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Ver curso

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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' % (____, ____))
Editar e executar o código