Как стать автором
Обновить

Комментарии 25

Спасибо за глубокий анализ Мамбы - это действительно открывает новые горизонты в области Deep Learning.

Давно ждал разбора SSM на Хабре. Спасибо за статью, но, к сожалению, есть что улучшить. Первая часть, до SSM, это мат. аппарат, которому лет 50-60 уже, знакомый любому, у кого был курс Введение в ТАУ. А начиная с SSM изложение комкается, начинают плыть обозначения. Жаль. Может попробуете дополнить, с фокусом именно на второй части?

Спасибо за обратную связь, подумаю как исправить. Про обозначения не совсем понял.

Например, вы пишите, что A_{log} это матрица d_{in} на N, так? И при этом A = -\exp(A_{log}). Для прямоугольной матрицы экспонента, видимо, должна быть поэлементная, а не матричная? Но в первом разделе экспоненты матричные, лучше явно написать, что обозначение меняется.

Но тогда получается, что A это тоже матрица d_{in} на N, правильно? А в первом разделе это была матрица N на N, квадратная, как и положено матрице состояний. Что я упускаю?

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

После параметризации A - больше не матрица, а тензор параметров, который задают авторы по своему усмотрению. Идея квадратной матрицы заключалась в том, чтобы отображать скрытое состояние \boldsymbol{h}в него же обратно (N,N)@(N,1)=(N,1). Здесь логика сохраняется, но уже с дискретным параметром \overline{A_t}, который при поэлементном умножении в главном цикле Selective scan также сохраняет размерность для \boldsymbol{h}.

Сложнее, например, вопрос обстоит с вычислением \overline{A}, которое происходит так:(b, L, d_{in})(d_{in}, N) \rightarrow (b, L, d_{in}, N), что не является ни поэлементным, ни матричным умножением. Однако загромождать эти моменты пояснениями не стал, так как это вопрос уже технический.

Ну так это и есть поплывшие обозначения. Вы меняете размерность объекта, обозначенного буквой A, явно это не проговаривая. :)

Здесь и далее все экспоненты и логарифмы поэлементные.

А в следующем разделе формула \overline{A}(b, L, d_{in}, N) = e^{\Delta A}. Это точно поэлементная экспонента?

Здесь никакой ошибки нет. Я описал математическую модель в классическом виде, указав дефолтные размерности для понимания. Затем в новой главе обозначил переход к глубокому обучению, вводя уже параметры, действительно, под старыми обозначениями. В этом и смысл аналогии перехода. Это статья по DL, поэтому и контекст соответствующий. Подскажите, где вы в DL видели матричную экспоненту? :)

Я и не говорил, что у вас ошибка. Я сказал, что у вас поплыли обозначения. :)

Обозначения не поплыли, а были явно переинициализированы в новом контексте с указанием новых размерностей. Словами также проговорено.

Здесь логика сохраняется, но уже с дискретным параметром \overline{A_t}

Сложнее, например, вопрос обстоит с вычислением \overline{A}, которое происходит так: (b, L, d_{in})(d_{in}, N) \rightarrow (b, L, d_{in}, N), что не является ни поэлементным, ни матричным умножением.

Как \overline{A_t} получается из \overline{A}? На сколько я понимаю, матрица \overline{A_t} должна быть квадратной N на N?


Как уже сказано здесь, индекс t указывает на индекс элемента тензора вдоль оси L:

В цикле по t вдоль оси L (по каждому токену) пересчет всех скрытых состояний \boldsymbol{h} и соответствующих им выходов \boldsymbol{y}:

Соответственно, \overline{A_t} имеет размерность (b, d_{in}, N).

Тогда я снова теряюсь в обозначениях. Как мне читать h_{t+1} = \overline{A_t} h_t? Это же не тензорное произведение? Недоумение тем сильнее, что у вас точно такое же выражение записано ранее для SSM, только с h_k вместо h_t...

В итоге пришлось идти читать оригинальную статью на ArXiV, чтобы понять, что вы имели в виду. Спасибо за мотивацию! :)

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

Присоединюсь к благодарностям и к просьбам раскрыть тему, если можно, с практическим примером.

Уже в процессе, спасибо!

Действительно, спасибо!

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

Здравствуйте Кирил,

Для того чтобы провести дискретизацию, совсем не обязательно было упражняться в интегрировании и идти окольными путями. Линейное дифференциальное уравнение тем и хорошо, что это прямое указание о том каким будет состояние через бесконечно малый промежуток времени. Интегрировать нужно было бы если дискретизация была бы для НЕ бесконечно малого шага, но вынеся из под знака интеграла "Bx_k" ("что x=const внутри интервала Δ " (C) ) вы уже неявно, но существенно, опираетесь на тот факт что Δ -> 0. А потому, дискретизацию можно провести попроще:

Я думаю так будет понятней более широкому кругу читателей.

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

На сколько я понимаю, в имплементации метода используется именно e^{A \Delta}, а не приближение I + A \Delta.

Это верно для \overline{\boldsymbol{A}}, но для\overline{\boldsymbol{B}} экспонента раскладывается.

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

Неплохая статья. Кому хочется побольше узнать про модель, есть хороший видос на английском на эту тему
https://www.youtube.com/watch?v=8Q_tqwpTpVU

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории