Desaparecimento e explosão de gradientes

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

David Cecchini

Data Scientist

Treinando modelos RNN

Versão desenrolada do modelo RNN, mostrando a fase de propagação direta de uma palavra de entrada à seguinte até o fim da frase, e a fase de retropropagação atualizando os pesos ao longo do tempo

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

Exibe a fase de propagação direta com a definição matemática das variáveis envolvidas

Exemplo: $$a_2 = f(W_a, a_1, x_2)$$

$$= f(W_a, f(W_a, a_0, x_1), x_2)$$

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

Mostra a fase de retropropagação com as definições matemáticas

Lembre que:

$$ a_T = f(W_a, a_{T-1}, x_T) $$

$a_T$ também depende de $a_{T-1}$, que depende de $a_{T-2}$ e de $W_a$, e assim por diante!

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

Continuação de BPTT

Calcular derivadas leva a

$$ \frac{\partial a_t}{\partial W_a} = (W_a)^{t-1}g(X) $$

  • $(W_a)^{t-1}$ pode convergir para 0

  • ou divergir para $+\infty$!

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

Soluções para problemas de gradiente

Algumas soluções conhecidas:

Explosão de gradientes

  • Clipping / escalonamento de gradiente

Desaparecimento de gradientes

  • Melhor inicializar a matriz W
  • Usar regularização
  • Usar ReLU em vez de tanh / sigmoid / softmax
  • Usar células LSTM ou GRU!
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras

Vamos praticar!

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

Preparing Video For Download...