Försvinnande och exploderande gradienter

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

David Cecchini

Data Scientist

Träna RNN-modeller

Upprullad version av RNN-modellen som visar framåtpropageringen från ett inmatningsord till nästa fram till meningens slut, samt bakåtpropageringen som uppdaterar vikterna över tid

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Visar framåtpropa­geringsfasen med matematiska definitioner av de ingående variablerna

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

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

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Visar bakåtpropa­geringsfasen med de matematiska definitionerna

Kom ihåg att:

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

$a_T$ beror också på $a_{T-1}$ som beror på $a_{T-2}$ och $W_a$, och så vidare!

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

BPTT – fortsättning

Beräkning av derivator ger

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

  • $(W_a)^{t-1}$ kan konvergera mot 0

  • eller divergera mot $+\infty$!

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Lösningar på gradientproblemen

Det finns kända lösningar:

Exploderande gradienter

  • Gradientklippning / skalning

Försvinnande gradienter

  • Bättre initialisering av matrisen W
  • Använd regularisering
  • Använd ReLU i stället för tanh / sigmoid / softmax
  • Använd LSTM- eller GRU-celler!
Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Nu kör vi en övning!

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Preparing Video For Download...