Comments 25
Спасибо за глубокий анализ Мамбы - это действительно открывает новые горизонты в области Deep Learning.
Давно ждал разбора SSM на Хабре. Спасибо за статью, но, к сожалению, есть что улучшить. Первая часть, до SSM, это мат. аппарат, которому лет 50-60 уже, знакомый любому, у кого был курс Введение в ТАУ. А начиная с SSM изложение комкается, начинают плыть обозначения. Жаль. Может попробуете дополнить, с фокусом именно на второй части?
Спасибо за обратную связь, подумаю как исправить. Про обозначения не совсем понял.
Например, вы пишите, что это матрица на , так? И при этом . Для прямоугольной матрицы экспонента, видимо, должна быть поэлементная, а не матричная? Но в первом разделе экспоненты матричные, лучше явно написать, что обозначение меняется.
Но тогда получается, что это тоже матрица на , правильно? А в первом разделе это была матрица на , квадратная, как и положено матрице состояний. Что я упускаю?
С экспонентой действительно можно запутаться, подправил. Хотя в контексте DL обычно ясно, что логарифмическая форма значений параметра используется для лучшей сходимости при обучении.
После параметризации - больше не матрица, а тензор параметров, который задают авторы по своему усмотрению. Идея квадратной матрицы заключалась в том, чтобы отображать скрытое состояние в него же обратно . Здесь логика сохраняется, но уже с дискретным параметром , который при поэлементном умножении в главном цикле Selective scan также сохраняет размерность для .
Сложнее, например, вопрос обстоит с вычислением , которое происходит так:, что не является ни поэлементным, ни матричным умножением. Однако загромождать эти моменты пояснениями не стал, так как это вопрос уже технический.
Ну так это и есть поплывшие обозначения. Вы меняете размерность объекта, обозначенного буквой , явно это не проговаривая. :)
Здесь и далее все экспоненты и логарифмы поэлементные.
А в следующем разделе формула . Это точно поэлементная экспонента?
Здесь никакой ошибки нет. Я описал математическую модель в классическом виде, указав дефолтные размерности для понимания. Затем в новой главе обозначил переход к глубокому обучению, вводя уже параметры, действительно, под старыми обозначениями. В этом и смысл аналогии перехода. Это статья по DL, поэтому и контекст соответствующий. Подскажите, где вы в DL видели матричную экспоненту? :)
Здесь логика сохраняется, но уже с дискретным параметром
Сложнее, например, вопрос обстоит с вычислением , которое происходит так: , что не является ни поэлементным, ни матричным умножением.
Как получается из ? На сколько я понимаю, матрица должна быть квадратной на ?
Как уже сказано здесь, индекс указывает на индекс элемента тензора вдоль оси :
В цикле по вдоль оси (по каждому токену) пересчет всех скрытых состояний и соответствующих им выходов :
Соответственно, имеет размерность .
Тогда я снова теряюсь в обозначениях. Как мне читать ? Это же не тензорное произведение? Недоумение тем сильнее, что у вас точно такое же выражение записано ранее для SSM, только с вместо ...
В итоге пришлось идти читать оригинальную статью на ArXiV, чтобы понять, что вы имели в виду. Спасибо за мотивацию! :)
Не знаю, при чем тут приложение для знакомств...
Присоединюсь к благодарностям и к просьбам раскрыть тему, если можно, с практическим примером.
ну и ссылочку на код можно вставить https://github.com/state-spaces/mamba
Я тут один такой , который читает и ни фига не понимает. Статья класс , хотя для чего она мне в жизни пригодится не знаю , но все же читаю . Теперь я точно знаю , что мамба это не только змея и сайт знакомств!
Здравствуйте Кирил,
Для того чтобы провести дискретизацию, совсем не обязательно было упражняться в интегрировании и идти окольными путями. Линейное дифференциальное уравнение тем и хорошо, что это прямое указание о том каким будет состояние через бесконечно малый промежуток времени. Интегрировать нужно было бы если дискретизация была бы для НЕ бесконечно малого шага, но вынеся из под знака интеграла "Bx_k" ("что x=const внутри интервала Δ " (C) ) вы уже неявно, но существенно, опираетесь на тот факт что Δ -> 0. А потому, дискретизацию можно провести попроще:
Я думаю так будет понятней более широкому кругу читателей.
Да, спасибо, изначально так и хотел сделать, но общее решение выглядит логичнее с точки
зрения изложения. Имею ввиду, что странно получать общее решение с экспонентами из
приближенного, а затем снова раскладывать экспоненту. Но как альтернативный способ добавил.
На сколько я понимаю, в имплементации метода используется именно , а не приближение .
Неплохая статья. Кому хочется побольше узнать про модель, есть хороший видос на английском на эту тему
https://www.youtube.com/watch?v=8Q_tqwpTpVU
Mamba. От начала до конца