Этот пост предполагает, что вы уже знакомы с основными идеями:

  • Нейронные сети
  • Обратное распространение
  • Функция активации ReLU

Примечание. Хотя RNN потрясающие, их обычно считают ступенькой к пониманию более сложных вещей, таких как LSTM и Transformers.

вступление

RNN — это один из способов решения проблемы разного количества входных значений. Это нейронная сеть, которая является гибкой с точки зрения того, сколько последовательных данных мы используем для прогнозирования. Например: прогнозирование цен на акции, скажем, компания А находится на рынке 100 дней, а компания Б — 50 дней. Чтобы предсказать их цены сегодня, A будет иметь 100 входных данных, а B — 50. Существует большая разница по сравнению с другими нейронными сетями, такими как ANN и CNN, в отношении входных значений.

Как и другие нейронные сети, RNN имеют веса, смещения, слои и функции активации. Большая разница в том, что RNN также имеют петли обратной связи.

Независимо от того, сколько раз мы разворачиваем RNN, веса и смещения распределяются между всеми входными данными.

Недостатки

  • Чем больше мы разворачиваем RNN, тем сложнее его тренировать. Проблема называется Проблема исчезающего/взрывающегося градиента.

Когда мы оптимизируем нейронные сети с помощью обратного распространения, мы сначала находим производные или градиенты для каждого параметра.

Затем мы подключаем эти градиенты к алгоритму градиентного спуска, чтобы найти значения параметров, которые минимизируют функцию потерь, например, сумму квадратов остатков.

На приведенном выше изображении RNN, если W₂ > 1, ввод умножается на него, что приводит к увеличению и увеличению числа каждый раз, когда мы разворачиваем. И это число найдет свой путь к некоторым градиентам, что приведет к взрывному градиенту, полученный градиент будет очень большим, что затруднит маленькие шаги, чтобы найти оптимальные веса и смещения.

Точно так же, если W₂ ‹ 1, он будет становиться все меньше и меньше каждый раз, когда мы разворачиваем, приближаясь к нулю, и это приводит к исчезновению градиента. При оптимизации параметра мы в конечном итоге делаем слишком маленькие шаги, и в результате мы достигаем максимального количества шагов, которое нам разрешено сделать, прежде чем мы найдем оптимальное значение.

Можем ли мы что-нибудь с ними сделать?

Да, сети с долговременной кратковременной памятью — LSTM.

Вся заслуга принадлежит StatQuest.