GONZO_ML Telegram 1734
Resurrecting Recurrent Neural Networks for Long Sequences
Antonio Orvieto, Samuel L Smith, Albert Gu, Anushan Fernando, Caglar Gulcehre, Razvan Pascanu, Soham De
Статья: https://arxiv.org/abs/2303.06349

Продолжаем про RNN. У нас было про LEM (https://www.tgoop.com/gonzo_ML/857), было про state space models и в частности про S4 (https://www.tgoop.com/gonzo_ML/1424), было про RWKV (https://www.tgoop.com/gonzo_ML/1647). Ещё из сравнительно недавних работ было исследование от DeepMind. Это своего рода возврат к классике.

С RNN долгое время была проблема, что они быстры на инференс, но медленно обучаются в смысле плохо параллелятся, и их сложно обучать на длинных последовательностях. Со свежими state space models (SSM) это в целом уже не так, они и на инференс так же хороши, и обучение их параллелится, и очень длинные последовательности могут обрабатывать. Но они хоть и эквивалентны RNN в режиме инференса, в режиме обучения у них есть важные отличия типа дискретизации непрерывной системы и очень специальной инициализации, про которые, кажется, ещё не до конца ясно, какова механика работы этой кухни.

В текущей работе авторы задаются вопросом, можно ли достичь перформанса глубоких SSM традиционными глубокими RNN (причём ванильными, а не LSTM)? И отвечают, что можно. Достигают этого серией маленьких шагов, и полученную модель называют Linear Recurrent Unit (LRU).

Основные шаги таковы:

0. Vanilla RNN. Пляшем от базовой рекуррентности:

𝑥_𝑘 = 𝜎(𝐴𝑥_{𝑘−1} + 𝐵𝑢_𝑘)
𝑦_𝑘 = 𝐶𝑥_𝑘 + 𝐷𝑢_𝑘

где
(𝑢_1, 𝑢_2, . . . , 𝑢_𝐿) -- входы размерности 𝐻_in,
(𝑦_1, 𝑦_2, . . . , 𝑦_𝐿) -- выходы размерности 𝐻_out,
𝑥_𝑘 -- скрытое состояние размерности N в момент времени k,
A,B,C,D -- матрицы с обучаемыми параметрами

1. Linear Recurrences. Если SSM слои заменить на vanilla RNN, то нелинейности типа tanh или ReLU в рекуррентности приводят к сильной просадке качества. Зато если нелинейности убрать и оставить линейные рекуррентности, то всё существенно улучшается. Рекуррентная формула превращается в

𝑥_𝑘 = 𝐴𝑥_{𝑘−1} + 𝐵𝑢_𝑘.

Это интересный результат, идущий вразрез с массовым пониманием важности нелинейностей. Возможно, это также одна из причин успеха глубоких SSM, где рекуррентность тоже линейная.

Сложные нелинейные отображения при этом можно моделировать соединением линейных RNN слоёв и нелинейных MLP (в этом смысле паттерн аналогичен последовательности слоёв MHSA+MLP в трансформере). В приложении есть отдельный большой интересный раздел вокруг этого.

“any sufficiently regular nonlinear autonomous dynamical system can be made linear under a high-dimensional nonlinear blow-up of the state-space. Sounds familiar? This is exactly what a wide MLP + Linear RNN can do“

2. Complex Diagonal Recurrent Matrices. Линейную рекуррентность уже можно развернуть в легко параллелизуемую сумму. Далее dense linear RNN слои могут быть репараметризованы в комплексную диагональную форму, где матрица A заменяется на:

𝐴 = 𝑃Λ𝑃^{−1},
𝑃 ∈ ℂ^{𝑁×𝑁},
Λ = diag(𝜆1, 𝜆2, . . . , 𝜆𝑁) ∈ ℂ^{𝑁×𝑁}

Комплексные числа нужны для диагонализации несимметричных матриц. Это не ухудшает выразительность, а диагональность позволяет ещё ускорить хорошо параллелизуемые вычисления.

Проверялись на Long Range Arena (LRA). На sCIFAR диагональная линейная RNN обучалась в 8 раз быстрее обычной с ReLU, и сравнялась по скорости с авторской имплементацией S4D (диагональный вариант S4, https://arxiv.org/abs/2203.14343) и S5 (упрощённый вариант S4, https://arxiv.org/abs/2208.04933). Интересно, что это также повышает и качество на некоторых задачах типа sCIFAR и ListOps. Но кое-где понижает стабильность.

3. Stable Exponential Parameterization. Диагональная матрица репараметризуется как:

Λ = diag(exp(−𝜈 + 𝑖𝜃)), где 𝜈 ∈ ℝ^𝑁 и 𝜃 ∈ ℝ^𝑁 обучаемые параметры взамен действительной и мнимой частей Λ.

Это разъединяет магнитуду и частоту осцилляций и делает работу оптимизатора легче, что уже повышает перформанс.

Также в такой формулировке просто заэнфорсить стабильность собственных значений через нелинейность типа экспоненциальной для каждого из значений j:
🔥17👍93😱3



tgoop.com/gonzo_ML/1734
Create:
Last Update:

Resurrecting Recurrent Neural Networks for Long Sequences
Antonio Orvieto, Samuel L Smith, Albert Gu, Anushan Fernando, Caglar Gulcehre, Razvan Pascanu, Soham De
Статья: https://arxiv.org/abs/2303.06349

Продолжаем про RNN. У нас было про LEM (https://www.tgoop.com/gonzo_ML/857), было про state space models и в частности про S4 (https://www.tgoop.com/gonzo_ML/1424), было про RWKV (https://www.tgoop.com/gonzo_ML/1647). Ещё из сравнительно недавних работ было исследование от DeepMind. Это своего рода возврат к классике.

С RNN долгое время была проблема, что они быстры на инференс, но медленно обучаются в смысле плохо параллелятся, и их сложно обучать на длинных последовательностях. Со свежими state space models (SSM) это в целом уже не так, они и на инференс так же хороши, и обучение их параллелится, и очень длинные последовательности могут обрабатывать. Но они хоть и эквивалентны RNN в режиме инференса, в режиме обучения у них есть важные отличия типа дискретизации непрерывной системы и очень специальной инициализации, про которые, кажется, ещё не до конца ясно, какова механика работы этой кухни.

В текущей работе авторы задаются вопросом, можно ли достичь перформанса глубоких SSM традиционными глубокими RNN (причём ванильными, а не LSTM)? И отвечают, что можно. Достигают этого серией маленьких шагов, и полученную модель называют Linear Recurrent Unit (LRU).

Основные шаги таковы:

0. Vanilla RNN. Пляшем от базовой рекуррентности:

𝑥_𝑘 = 𝜎(𝐴𝑥_{𝑘−1} + 𝐵𝑢_𝑘)
𝑦_𝑘 = 𝐶𝑥_𝑘 + 𝐷𝑢_𝑘

где
(𝑢_1, 𝑢_2, . . . , 𝑢_𝐿) -- входы размерности 𝐻_in,
(𝑦_1, 𝑦_2, . . . , 𝑦_𝐿) -- выходы размерности 𝐻_out,
𝑥_𝑘 -- скрытое состояние размерности N в момент времени k,
A,B,C,D -- матрицы с обучаемыми параметрами

1. Linear Recurrences. Если SSM слои заменить на vanilla RNN, то нелинейности типа tanh или ReLU в рекуррентности приводят к сильной просадке качества. Зато если нелинейности убрать и оставить линейные рекуррентности, то всё существенно улучшается. Рекуррентная формула превращается в

𝑥_𝑘 = 𝐴𝑥_{𝑘−1} + 𝐵𝑢_𝑘.

Это интересный результат, идущий вразрез с массовым пониманием важности нелинейностей. Возможно, это также одна из причин успеха глубоких SSM, где рекуррентность тоже линейная.

Сложные нелинейные отображения при этом можно моделировать соединением линейных RNN слоёв и нелинейных MLP (в этом смысле паттерн аналогичен последовательности слоёв MHSA+MLP в трансформере). В приложении есть отдельный большой интересный раздел вокруг этого.

“any sufficiently regular nonlinear autonomous dynamical system can be made linear under a high-dimensional nonlinear blow-up of the state-space. Sounds familiar? This is exactly what a wide MLP + Linear RNN can do“

2. Complex Diagonal Recurrent Matrices. Линейную рекуррентность уже можно развернуть в легко параллелизуемую сумму. Далее dense linear RNN слои могут быть репараметризованы в комплексную диагональную форму, где матрица A заменяется на:

𝐴 = 𝑃Λ𝑃^{−1},
𝑃 ∈ ℂ^{𝑁×𝑁},
Λ = diag(𝜆1, 𝜆2, . . . , 𝜆𝑁) ∈ ℂ^{𝑁×𝑁}

Комплексные числа нужны для диагонализации несимметричных матриц. Это не ухудшает выразительность, а диагональность позволяет ещё ускорить хорошо параллелизуемые вычисления.

Проверялись на Long Range Arena (LRA). На sCIFAR диагональная линейная RNN обучалась в 8 раз быстрее обычной с ReLU, и сравнялась по скорости с авторской имплементацией S4D (диагональный вариант S4, https://arxiv.org/abs/2203.14343) и S5 (упрощённый вариант S4, https://arxiv.org/abs/2208.04933). Интересно, что это также повышает и качество на некоторых задачах типа sCIFAR и ListOps. Но кое-где понижает стабильность.

3. Stable Exponential Parameterization. Диагональная матрица репараметризуется как:

Λ = diag(exp(−𝜈 + 𝑖𝜃)), где 𝜈 ∈ ℝ^𝑁 и 𝜃 ∈ ℝ^𝑁 обучаемые параметры взамен действительной и мнимой частей Λ.

Это разъединяет магнитуду и частоту осцилляций и делает работу оптимизатора легче, что уже повышает перформанс.

Также в такой формулировке просто заэнфорсить стабильность собственных значений через нелинейность типа экспоненциальной для каждого из значений j:

BY gonzo-обзоры ML статей


Share with your friend now:
tgoop.com/gonzo_ML/1734

View MORE
Open in Telegram


Telegram News

Date: |

Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. How to create a business channel on Telegram? (Tutorial) A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." The best encrypted messaging apps
from us


Telegram gonzo-обзоры ML статей
FROM American