*Mamba 논문 리뷰 시리즈2 입니다! 궁금하신 점은 댓글로 남겨주세요!
시리즈 1: Hippo
시리즈 2: LSSL
시리즈 3: S4
시리즈 4: Mamba
시리즈 5: Vision Mamba
LSSL github: Combining Recurrent, Convolutional, and Continuous-time Models with Linear State-Space Layers | Papers With Code
Contents
2. Background Knowledge: HiPPO
5. Furthermore
Simple Introduction
Mamba 논문리뷰를 위한 첫번째 여정으로 우리는 HiPPO에 대해서 살펴봤었다!
SSM (state-space model)을 모델에 어떻게 넣는지, 그리고 measure을 통해서 A와 B matrix를 정의하고 이산적인 시간에 대해 dynamic linear system을 푸는 방법에 대해서 살펴봤다.
LSSL은 linear state space layers의 약자로,
우리가 앞에서 살펴봤던 state-space representation 수식을 모델에 넣는 것이다.
즉, input 값 u를 output y로 매핑하는 과정을 SSM으로 구현한 것인데 한번 살펴보자!
Background Knowledge: HiPPO
HiPPO 논문 리뷰: https://kyujinpy.tistory.com/146
- Mamba 논문 리뷰 첫번째 시리즈인 HiPPO 입니다! (필수 X)
- HiPPO는 f(t)에 대해서 fixed probability measure를 통해 N개의 basis functions으로 구성된 polynomal g(t)를 생성하고, g(t)를 통해서 coefficients를 생성하는 f -> u 간의 mapping operator 모델입니다!
Method
LSSL의 세가지 관점을 나타낸 이미지이다!
- Continous-time
- Recurrent
- Convolutional
우리는 여기서, recurrent와 convolutional을 집중적으로 보겠습니다!
가장 큰 차이점은, HiPPO 같은 경우에는 Coef.를 계산할 때 A, B, C, D가 fixed state space representation 이었습니다!
다만, LSSL은 fixed하지 않는 A, B, C, D를 동시에 활용합니다!
Recurrent
Recurrence의 아이디어는 매우 simple합니다!
- Input u_k가 들어왔을 때,
-> u_k에 B matrix를 곱하고 (linear)
-> 이전 hidden state cell의 X_k-1에 A matrix를 곱하고 (linear)
- X_k = u_k * B + X_k-1 * A로 정의.
- X_k * C + u_k * D를 통하여서 output y_k를 정의.
*이렇게 총 4개의 layer parameters를 훈련하면 된다!
Convolutional
간단한 상황을 정의하기 위해서 위의 수식에서 t=0일 때, x_(-1)이 0이라고 가정해보자.
그렇다면, equation (6)처럼 output y_k를 정의할 수 있다.
또한, y를 좀더 simple하게 나타내기 위해 Krylov function (7)을 활용한다.
간단하게 정리하면,
input u에 대해서 A, B는 history에 대한 information을 주는 과정에 해당하고,
C, D는 time step에 대한 feature vector를 추출하는 과정이라고 생각할 수 있다.
이는 kenel을 통해서 정보를 뽑고 모두 더해서 window의 정보를 추출하는 convolution (합성곱) 연산과 동치라고 생각할 수 있다!
[참고자료: JunYoung님의 더 자세한 정리]
HiPPO와 LSSL 의미 정리
[HiPPO]
- Continuous한 function을 어떻게 subspace g(t)로 잘 근사시킬 수 있는지가 주요 목표!
- 여기서 중요한 factor는 2가지 정도 있는데
-> 어떤 measure를 활용하여 projection 시킬 것인지,
-> 그리고 time window (step)을 어떻게 설정할 것인지.
- time window에 따른 중요도와 weight를 적절하게 결정하기 위해서, LegS (scaled Legendre)를 제안함.
- 여러 증명들을 통해서, measures를 가지고 state space model을 구성하는 A와 B matrix가 어떤 수식을 갖는지 증명함.
- A와 B를 가지고 Coef.에 대한 dynamic linear system을 품!
[LSSL]
- A, B, C, D를 각각의 linear layer라고 두고 state space model을 디자인 함.
- 또한 time step과 A가 모델의 성능과 데이터셋을 예측하는데 중요한 역할을 한다는 것을 알아냄.
- State space layers를 RNN과 CNN에 적용시킨 형태를 보여줌.
- State matrix A가 학습 가능하도록 설정했을 때, HiPPO에서 제안한 state matrix A보다 성능이 더 잘 나올 수 있음을 보임.
Result
- A를 HiPPO에서 정의한 matrix로 fixed한 것 보다 훈련시킨 것이 약간 더 높은 것을 알 수 있다!
- 그러나 실제로, 연산 메모리 문제 때문에 활용이 어렵다는 단점이 있다..! (S4에서 언급!)
Furthermore
S4 논문리뷰: https://kyujinpy.tistory.com/148
- Mamba 논문 리뷰 세번째 시리즈도 만나러 가시죠!
- 2024.06.26 Kyujinpy 작성.
*광고 수익은 연말에 기부를 할 생각입니다! 감사합니다.