Почему вес сетей RNN / LSTM распределен по времени?

20

Недавно я заинтересовался LSTM и с удивлением узнал, что веса распределяются по времени.

  • Я знаю, что если вы разделяете веса по времени, то ваши входные временные последовательности могут иметь переменную длину.

  • С общими весами у вас гораздо меньше параметров для тренировки.

Насколько я понимаю, причина, по которой можно обратиться к LSTM по сравнению с другим методом обучения, заключается в том, что вы считаете, что в ваших данных есть какая-то временная / последовательная структура / зависимость, которую вы хотели бы изучить. Если вы пожертвуете переменной «люкс» переменной длины и примете большое время вычислений, разве RNN / LSTM без общих весов (т. Е. Для каждого временного шага у вас разные весы) будут работать лучше или я чего-то упускаю?

beeCwright
источник

Ответы:

17

Принятый ответ сфокусирован на практической стороне вопроса: он потребует много ресурсов, если параметры не будут общими. Однако, решение о параметрах акций в RNN было сделано , когда какой - либо серьезный расчет была проблема (1980 - е годы в соответствии с вики ), поэтому я считаю , что это был не главный аргумент (хотя все еще действует).

Есть чисто теоретические причины для разделения параметров:

  • Это помогает в применении модели к примерам различной длины. При чтении последовательности, если модель RNN использует разные параметры для каждого шага во время обучения, она не будет обобщаться на невидимые последовательности различной длины.

  • Часто последовательности работают в соответствии с одинаковыми правилами для всей последовательности. Например, в НЛП:

                                                     "В понедельник шел снег"

                                                     "В понедельник шел снег"

... эти два предложения означают одно и то же, хотя детали находятся в разных частях последовательности. Совместное использование параметров отражает тот факт, что мы выполняем одну и ту же задачу на каждом шаге, в результате нам не нужно заново изучать правила в каждой точке предложения.

LSTM ничем не отличается в этом смысле, поэтому он также использует общие параметры.

Максим
источник
4
Это, безусловно, более важная причина, чем принятый ответ!
JLH
Я полагаю, что мой ответ был искажен здесь. Я сказал, что без распределения веса потребуются дополнительные вычислительные ресурсы, но это не было главной целью. В частности, я также написал, что модель без общих весов будет гораздо более гибкой и, следовательно, более склонной к переоснащению. Разделение весов во времени - способ преодолеть это. Как правильно указано здесь, эта стратегия соответствует «предыдущему», к которому применяются одинаковые правила на каждом временном шаге. Итак, два ответа не расходятся.
user20160
12

Перспектива «общих весов» исходит из того, что RNN представляют собой сети прямой связи, развернутые во времени. Если бы весы были разными в каждый момент времени, это была бы просто сеть прямой связи. Но я полагаю, что другой способ думать об этом - это RNN, вес которой является функцией, изменяющейся во времени (и это может позволить вам сохранить способность обрабатывать последовательности переменной длины).

Если вы это сделаете, число параметров будет расти линейно с количеством временных шагов. Это было бы большим взрывом параметров для последовательностей любой значительной длины. Это действительно сделало бы сеть более мощной, если бы у вас были огромные вычислительные ресурсы для ее запуска и массивные данные для ее ограничения. Для длинных последовательностей это, вероятно, было бы невозможным в вычислительном отношении, и вы получили бы переоснащение. Фактически, люди обычно идут в противоположном направлении, выполняя усеченное обратное распространение во времени, которое разворачивает сеть только в течение некоторого короткого промежутка времени, а не по всей последовательности. Это сделано для вычислительной осуществимости. Интересно, что RNN все еще могут изучать временную структуру, которая выходит за пределы длины усечения, потому что рекуррентные блоки могут хранить память раньше.

user20160
источник
Если вы не разделяете веса, у вас все еще есть состояние ячейки, которое сохраняется во времени. Развернутый LSTM с уникальными весами времени будет выглядеть как сеть с прямой связью, где каждый «слой» будет представлять временной интервал, но каждый «слой» будет иметь информацию о состоянии входящей ячейки. Это было бы похоже на прямую связь, но с добавлением состояния ячейки.
beeCwright
0

Я думаю, что так как сети RNN со скрытыми и скрытыми рекурсиями (и весами, разделенными по времени) эквивалентны универсальным машинам Тьюринга, то предоставление им разных весов для разных временных шагов не делает их более мощными.

Хоссейн
источник
Не могли бы вы уточнить, что вы подразумеваете под «сильным»? Ссылка на машины Тьюринга предполагает, что то, что вы имеете в виду, может полностью отличаться от того, что подразумевается в статистике.
whuber
RNN используются для обработки последовательности данных. Один из их наиболее распространенных типов получает последовательность в качестве входных данных и создает другую последовательность в качестве выходных данных (например, системы языкового перевода). Я говорю, что семейство M1 моделей RNN является более мощным, чем другое семейство M2 моделей RNN, если для задачи (такой как сопоставление набора входных последовательностей с набором выходных последовательностей) в M1 существует некоторая модель m1, где можно решить эту проблему. но в М2 нет модели, которая могла бы решить эту проблему.
Хоссейн