Начинаем делиться полезным в этом канале с обзорного рассказа о State Space Models (SSM). Предлагаем стартовать с погружения в их устройство, а в следующем посте — посмотрим на разные архитектуры и то, как одну из них применяют в ASR.
Классическая State Space Model — это непрерывная динамическая модель, имеющая вид дифференциального уравнения. Входы модели u проходят через матрицу B и вносят свой вклад в скрытые представления модели x; выходы модели при этом — смесь входов и скрытых представлений:
x’ = Ax + Bu
y = Cx + Du
{}
Поскольку в реальном мире данные дискретные, исходную непрерывную модель нужно тоже сделать дискретной: для этого входной сигнал рассматривают как последовательность, а дифференциальное уравнение — как рекуррентное уравнение, которое позволит пошагово преобразовывать входы в выходы. При этом от необходимости дифференцировать избавляются через метод трапеций: в итоге матрицы состояний дискретной системы выражаются через матрицы состояний непрерывной системы.
Когда получено дискретное представление, по сути, мы имеем обычную рекуррентную нейросеть. Скрытое состояние на каждом шаге преобразуется, используя предыдущее состояние, а входы при этом рассматриваются последовательно. Рекуррентное представление полезно из-за эффективного инференса: не нужно пересчитывать всё заново, потому что state модели обновляется шаг за шагом.
Если же мы хотим распараллелить вычисления во время обучения модели, рекуррентное представление нам не подойдёт — именно поэтому бывает полезно представлять SSM как свёрточную сеть. Если «развернуть» рекуррентное уравнение и расписать все слагаемые, входящие в последний выход модели, окажется, что этот выход можно представить как сумму всех входов, умноженных на некоторый набор матриц. Его и можно считать ядром свёртки. Тем самым мы получили возможность работать со всеми входами сразу, а значит, эффективно тренировать модель. Подробности о ядре свёртки можно почитать тут, а о том, как должна выглядеть матрица А, — здесь.
В следующем посте мы рассмотрим ряд моделей, которые используют именно такой подход к дискретизации, а также разберём применение подобной архитектуры в ASR.
Екатерина Козлова