bptt - как мне усреднить настоящее с будущим? - PullRequest
0 голосов
/ 22 мая 2019

В bptt на каждом временном шаге (кроме последнего временного шага, который обрабатывается первым) у нас есть две вещи, которые мы хотим, чтобы память была на последнем временном шаге: Во-первых, у нас есть вывод, который сеть должна была выводить на этом временном шаге, а во-вторых, у нас есть то, что будущие временные шаги хотят, чтобы память была в этот момент. Итак, мой вопрос: как мне их усреднить?

Ну, простой способ сделать что-то вроде:

shouldWas = futureWantMeToBe * 0.5 + thisTimeStepWantMeToBe * 0.5;

Но проблема в том, что для достаточно длинных серий примеров, должно быть, нас не волнует последний шаг по времени, и это плохо. Итак, другой способ сделать это:

shouldWas = futureWantMeToBe * (1 - 1 / i) + thisTimeStepWantMeToBe * (1 / i);

Где i - количество шагов обратного распространения (для последнего временного шага i = 1, затем 2 ...). Таким образом, ошибка, вероятно, меньше исчезла, так что, возможно, лучше. Но как обычно это сделать?

...