Legendre memory units: Continuous-time representation in recurrent neural networks

Jaekyeong J·2025년 2월 2일
1

sequence data

목록 보기
1/1


1. WHY?

시퀀스 데이터에 대해 이전 정보를 기억하는 RNN, LSTM, GRU는 데이터를 순차적으로 처리해야 해서 병렬화가 어려움

이상적인 모델 구조의 발전 방향은 CNN과 같이 병렬화 연산이 가능한 구조, RNN과 같이 상태 추론 과정을 통한 장기 기억 정보 처리가 가능한 구조여야 함

이전 정보를 기억하면서 병렬로 처리하고 싶다!

2. WHAT?

LMU는 딜레이 구조(Delay network)를 사용해 과거 정보를 효율적으로 유지하려고 함

딜레이 구조는 입력 신호 u(t)u(t)의 과거 값 u(tθ)u(t-\theta)를 활용해 현재와 미래의 연산을 도움

하지만 딜레이 구조를 직접 사용하려면 G(s)=eθsG(s) = e^{-\theta s}처럼 무한 차원의 시스템을 계산해야 하며, 이는 계산이 불가능하거나 너무 비효율적이라 근사가 필요함

LMU는 딜레이 구조를 LTI 시스템으로 근사해서 문제를 해결!

  • LTI 시스템은 유한 차원이라 계산이 효율적
  • 행렬 A, B, C, D로 딜레이 시스템을 표현하면 딥러닝 모델과도 자연스럽게 연동 가능

3. HOW?

1) Memory cell dynamics

  • LMU는 입력 신호 u(t)u(t)의 시간 이력을 기억하고 이를 선형적인 방식으로 다루기 위해 설계된 메모리 셀
  • 입력 신호는 일정한 윈도우 크기 θ\theta로 나누어지고 legendre polynomial을 기반으로 상태 벡터 m(t)m(t)를 계산함

2) 무한차원(딜레이 시스템) → 유한차원(선형 시스템)

  • F(s)=eθsF(s)=e^{−θs}는 시간 지연(delay)을 나타내는 transfer function
  • 시간 영역에서 보면 입력 u(t)u(t)가 출력 y(t)y(t)에 영향을 미치기까지 θ\theta만큼의 지연이 발생한다는 뜻
    (즉, 출력 y(t)y(t)가 현재 입력 u(t)u(t)가 아닌 과거 입력 u(tθ)u(t-\theta)의 영향을 받는다는 뜻)
    - y(t)=u(tθ)y(t)=u(t−θ)
  • 딜레이 시스템은 무한 차원이라 근사가 어려우므로 유한 차원 d-차원의 미분 방정식으로 근사 필요
  • 상태 벡터 m(t)Rdm(t) \in \mathbb{R}^d를 사용해 딜레이 시스템 근사
    • m˙(t)=Am(t)+Bu(t)\dot{m}(t) = A m(t) + B u(t)
    • m(t)m(t): 입력 신호 u(t)u(t)의 시간적 연속성을 직접 저장하는 상태 벡터 … 시간적으로 연속된 특징을 직접 표현하는 주요 메모리 공간
    • A, B: 딜레이 시스템을 유한 차원으로 근사하기 위해 정의된 행렬 … 변환 규칙

3) 상태 벡터 m(t)m(t)

  • Shifted Legendre Polynomial
  • 상태 벡터 m(t)m(t)는 입력 신호 u(t)u(t)의 시간적으로 연속된 상태를 표현하며, 과거 신호의 중요한 특징들을 Legendre 다항식의 직교 기저(orthogonal basis) 계수로 압축
    • u(tθ)i=0d1Pi(θθ)mi(t)u(t - \theta') \approx \sum_{i=0}^{d-1} P_i\left(\frac{\theta'}{\theta}\right) m_i(t)
    • Pi(r)P_i(r)는 i-차 Legendre 다항식
    • mi(t)m_i(t)는 각 Legendre 다항식의 계수로서, 입력 신호의 시간적 패턴을 나타냄

*θ\theta'을 근사하는가!**

y(t)=u(tθ)y(t) = u(t-\theta)를 근사하려고 할때 θ\theta는 고정된 딜레이를 의미

LMU는 θ\theta 길이([tθ,t][t-\theta, t])의 전체 구간에서 입력 신호의 다양한 시점 정보를 처리하려고 함!

θ\theta' 는 고정 된 θ\theta 길이 내에서의 상대적인 딜레이 위치를 나타냄

  • θ\theta' = 0: 현재 시점 t
  • θ\theta' = θ\theta: 가장 오래된 시점 tθt-\theta
  • θ[0,θ]\theta' \in [0, \theta]: 현재에서 과거 사이의 특정 시점을 의미

4) 행렬 A와 B

  • 행렬 A와 B는 입력 신호 u(t)u(t)의 시간적 연속성을 ‘반영’하는 변환 규칙으로 상태 벡터 m(t)m(t)가 시간적으로 어떻게 변화하는지 정의
    • Ai,j={2i+1θ(1)ji+1,if ij2i+1θ,if i<jBi=2i+1θ(1)iA_{i,j} = \begin{cases} \frac{2i + 1}{\theta} (-1)^{j-i+1}, & \text{if } i \geq j \\ \frac{2i + 1}{\theta}, & \text{if } i < j \end{cases}B_i = \frac{2i + 1}{\theta} (-1)^i
    • A: 이전 상태 m(t)m(t)가 다음 상태 m(t+Δt)m(t+\Delta t)로 어떻게 전이되는지 나타냄
    • B: 입력 신호 u(t)u(t)가 상태 m(t)m(t)에 미치는 영향을 나타냄

5) 이산화 (Discretization)

  • 실제 계산에서 연속적인 미분 방정식 대신 이산화(discretized)된 형태 사용
    • mt+1=A~mt+B~utm_{t+1} = \tilde{A} m_t + \tilde{B} u_t
    • A~,B~\tilde{A}, \tilde{B}는 A,B를 이산화한 행렬
profile
Ph.D. candidate in Data Science

0개의 댓글

관련 채용 정보