Может ли кто-нибудь объяснить, какова цель начального состояния?
Поскольку мы знаем, что матрица состояний - это веса между скрытыми нейронами на временном шаге 1 и временном шаге 2. Они объединяют скрытые нейроны обоих временных шагов. Следовательно, они содержат временные данные от слоев в предыдущих временных шагах.
Предоставление изначально обученной матрицы состояний с помощью аргумента initial_state=
дает ячейке RNN обученную память ее предыдущих активаций.
Какая разница, если я не установлю его, если я его установлю?
Если мы устанавливаем начальные веса, которые были обучены на какой-либо другой модели или предыдущей модели, это означает, что мы восстанавливаем память ячейки RNN, чтобы она не начиналась с нуля.
В документах TF они инициализировали initial_state
как матрицу zero_state
.
Если вы не установите initial_state
, он будет обучен с нуля, как и другие весовые матрицы.
Требуется ли это только в одной ячейке RNN, а не в суммированной ячейке, как в примере, представленном в ссылке?
Я точно не знаю, почему они не установили initial_state
в примере Stacked RNN, но initial_state требуется в каждом типе RNN, так как он сохраняет временные характеристики на всех временных шагах.
Может быть, Stacked RNN был интересным документом, а не настройками initial_state
.
Совет:
В большинстве случаев вам не нужно устанавливать initial_state
для RNN. TensorFlow может справиться с этим эффективно для нас. В случае seq2seq RNN это свойство может использоваться.
Ваш RNN может столкнуться с какой-то другой проблемой. Ваш RNN создает собственную память и не требует включения питания.