Установка начального состояния в динамическом RNN - PullRequest
1 голос
/ 15 мая 2019

На основе ссылки:

https://www.tensorflow.org/api_docs/python/tf/nn/dynamic_rnn

В этом примере показано, что «начальное состояние» определено в первом примере , а не во второмпример .Может ли кто-нибудь объяснить, каково назначение начального состояния ?В чем разница 1011 *, если я не установил против, если я установил ?Требуется ли только в одной ячейке RNN и , а не в ячейке с накоплением , как в примере, представленном в ссылке?

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

1 Ответ

1 голос
/ 15 мая 2019

Может ли кто-нибудь объяснить, какова цель начального состояния?

Поскольку мы знаем, что матрица состояний - это веса между скрытыми нейронами на временном шаге 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 создает собственную память и не требует включения питания.

...