Зникання та вибухання градієнтів

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

David Cecchini

Data Scientist

Навчання моделей RNN

Розгорнута RNN: пряма передача від одного слова до наступного до кінця речення і зворотне поширення з оновленням ваг у часі

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Показано фазу прямого проходу з математичними визначеннями змінних

Приклад: $$a_2 = f(W_a, a_1, x_2)$$

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

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Показано фазу зворотного поширення з математичними визначеннями

Пам'ятайте, що:

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

$a_T$ також залежить від $a_{T-1}$, який залежить від $a_{T-2}$ та $W_a$, і так далі!

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Продовження BPTT

Обчислення похідних дає

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

  • $(W_a)^{t-1}$ може збігатися до 0

  • або розбігатися до $+\infty$!

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Рішення проблем із градієнтами

Відомі деякі розв'язання:

Exploding gradients

  • Gradient clipping / scaling

Vanishing gradients

  • Краще ініціалізуйте матрицю W
  • Використовуйте регуляризацію
  • Використовуйте ReLU замість tanh / sigmoid / softmax
  • Використовуйте комірки LSTM або GRU!
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Давайте потренуємось!

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Preparing Video For Download...