Не могу понять, почему в LSTM очень важно количество разворачиваний, т. Е. Количество шагов времени, рассмотренных сразу во время обучения или прогнозирования. Независимо от того, является ли количество разворачиваний/временных интервалов 1 или 100, состояние LSTM мутируется на каждом временном шаге. Разве это просто разница между стохастическим градиентным спусканием и спусками градиента минибатча в регулярной прямой нервной сети?Неважно, сколько разворачиваний используется в LSTM?
Предположим, что у вас есть 100 000 заказанных примеров обучения. Вы могли бы обучать их одному примеру за раз, по порядку.
Предположим, что во время прогнозирования у вас есть «предложение» (например) с 10 словами, и вы хотите предсказать 11-е слово. Вы можете либо подавать 10 слов в LSTM сразу в развернутой сети, либо вы можете кормить LSTM одним словом за раз, а затем наблюдать за предсказанием, которое следует за 10-м словом. Я подозреваю, что однопоточная сеть будет проблематичной, если мы попытаемся предсказать следующее слово для предложений разной длины (потому что в идеале мы бы сбросили временную память SHORT между предсказаниями для разных предложений), но Я очень туманна по этому поводу и буду благодарна за понимание от ответчика.
Таким образом, преимущество n> 1 разворачивания - это распространение ошибок через несколько временных шагов. Обновления backpropagation легко понять для сети с поддержкой ванили; есть информация об обновлении представлений. Обновления LSTM сложнее понять ... это временная иерархия, и мне нужно прочитать оригинальную бумагу LSTM, чтобы точно увидеть, что обновляется, и каким образом сохраняются временные шаблоны. – foghorn
Да, без разворота у вас возникла проблема с отсутствием «синхронизации», которую вы обновляете с шагом 1, то у вас больше нет одинаковых параметров сети, поэтому вам нужно будет пересчитать все внутренние активации на ** предыдущие ** данные чтобы иметь возможность возвращать ошибку из текущего времени. – lejlot