реализация обратного распространения через слой RNN - PullRequest
0 голосов
/ 09 июля 2020

Я пишу реализацию RNN с нуля, и, несмотря на чтение нескольких руководств , у меня все еще есть пара вещей, которые мне нужно проверить из этой диаграммы, на которую я ссылаюсь ниже , прежде чем я перейти к кодированию:

  1. Потеря, также известная как градиент на выходе, рассчитывается так же, как в обычном нейроне с прямой связью net. Другими словами, функция потерь L = 0.5 * square(target - output) работает, и мне нужно только целевое значение и выходные данные для его вычисления для каждого временного шага;
  2. Чтобы вычислить градиент grad_w для W (см. Диаграмму), он же вес между состояниями S (t-1) и S (t), мы берем градиент для этого веса для временного шага t, который равен grad_s(t) * S(t-1), и добавляем его ко всем прошлым градиентам. Так, для временного шага t = 0, grad_w(0) = 0, для временного шага t = 1, grad_w(1) = 0 + grad_s(1) * S(0), и для временного шага t = 2, grad_w(2)= grad_w(1) + grad_s(2) * S(1) и т. Д.

Верны ли эти предположения?

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