Verdwijnende en exploderende gradiënten

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

David Cecchini

Data Scientist

RNN-modellen trainen

Uitgerolde RNN: voorwaartse propagatie van woord tot woord tot het einde van de zin, en backpropagatie door de tijd die de gewichten bijwerkt

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Toont de voorwaartse propagatie met de wiskundige definities van de variabelen

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

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

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Toont de backpropagatiefase met de wiskundige definities

Onthoud:

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

$a_T$ hangt ook af van $a_{T-1}$, dat afhangt van $a_{T-2}$ en $W_a$, enz.!

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Vervolg BPTT

Afgeleiden berekenen geeft

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

  • $(W_a)^{t-1}$ kan naar 0 convergeren

  • of divergeren naar $+\infty$!

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Oplossingen voor gradientproblemen

Er zijn bekende oplossingen:

Exploderende gradiënten

  • Gradient clipping / scaling

Verdwijnende gradiënten

  • Matrix W beter initialiseren
  • Regularisatie gebruiken
  • ReLU gebruiken in plaats van tanh / sigmoid / softmax
  • Gebruik LSTM- of GRU-cellen!
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Laten we oefenen!

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Preparing Video For Download...