상태 공간 모델이란 무엇인가요?

상태 공간 모델(SSM)이란 무엇인가요?

상태 공간 모델(SSM)은 기계 학습 알고리즘의 한 종류로, 미분 방정식을 통해 시간이 지남에 따라 내부 상태가 어떻게 진화하는지 모델링하여 동적 시스템에 대한 예측을 수행하는 데 사용됩니다. 이전부터 제어 시스템 공학에서 사용된 SSM은 대부분의 시퀀스 모델링 작업에 적용할 수 있는 매우 유연한 수학적 플랫폼입니다. SSM 기반 신경망 아키텍처인Mamba는 언어 모델링 성능 면에서 트랜스포머에 필적합니다.

상태 공간 모델은 1960년대 아폴로 프로그램의 항법 계산에서 중추적인 역할을 한 제어 시스템 공학에서 유래했습니다.1 SSM은 신호 처리, 제어 이론 및 로보틱의 기초가 되는 전기 공학에서도 많이 사용됩니다. 하지만 특히 다중 입력, 다중 아웃풋 시스템에서 SSM의 가장 중요한 품질은 다기능성일 것입니다.

SSM을 뒷받침하는 두 가지 간단한 방정식 중 하나는 직접 관찰할 수 없는 시스템의 내부 역학을 설명하며, 다른 하나는 이러한 내부 역학이 관찰 가능한 결과와 어떻게 관련되는지 설명합니다. 그 간단하고 유연한 공식은 매우 다양한 다변수 시계열 데이터에 적용 가능합니다.

경제학에서 SSM은 추세와 계절성이 주가에 미치는 영향을 모델링할 수 있습니다. 신경과학에서는 측정 가능한 뇌 신호(예: fMRI)와 기본 신경 활동 간의 관계를 매핑할 수 있습니다. 생태학에서 SSM은 개체군 역학, 동물 이동 및 포획-재포획 데이터를 모델링하는 데 도움이 될 수 있습니다.2 SSM은 일기 예보 및 기타 유형의 시계열 분석에도 활용됩니다.

최근 몇 년 동안 상태 공간 모델에 대한 연구는 신경망을 SSM 방정식의 매개 변수로 통합하는 딥 러닝에서의 사용에 중점을 두었습니다. 가장 최근에는 대규모 언어 모델(LLM)을 위한 Mamba 모델 아키텍처가 탄생했습니다. 이 아키텍처는 트랜스포머 기반 모델의 성능 용량에 필적하면서도 뛰어난 속도와 효율성을 제공하는 것으로 입증되었습니다.

상태 공간이란 무엇인가요?

특정 시점의 시스템 상태는 수많은 시스템 변수의 특정 값에 의해 결정됩니다. 효과적인 상태 공간 모델링의 목표는 시스템을 모두 설명하는 데 필요한 시스템 변수의 가장 작은 하위 집합을 식별하는 것입니다. 이러한 시스템 변수의 하위 집합을 상태 변수라고 합니다.상태 공간은 축(차원)이 상태 변수인 n차원 공간으로, 각 n개 상태 변수에 대해 가능한 모든 값을 포함합니다.

이러한 각 상태 변수는 선형적으로 독립적이어야 합니다. 즉, 하나의 상태 변수가 다른 상태 변수의 조합(덧셈 또는 뺄셈)을 구성할 수 없습니다.

주어진 시간에 시스템의 특정 상태는 상태 벡터로 표현될 수 있으며, 여기서 벡터의 각 요소는 해당 상태 변수의 값을 나타냅니다. 상태 벡터는 상태 공간 자체와 동일한 수의 차원을 가집니다. 주어진 상태 벡터는 상태 공간의 특정 "좌표" 집합으로 이해할 수 있습니다.

상태 공간의 직관적인 예

장난감 자동차가 직선 트랙을 따라 등속으로 움직인다고 상상해 보세요. 상태 공간은 자동차의 위치(출발선으로부터의 거리로 측정)와 속도의 2가지 상태 변수로 모델링할 수 있습니다. 따라서 언제든지 시스템의 상태 t는 2차원 상태 벡터[위치t, 속도t]로 표현될 수 있습니다. 이 간단한 시스템에서 주어진 순간에 자동차의 정확한 위치와 속도(현재 상태)를 알면 다음 순간에 자동차가 어디에 있을지 예측할 수 있습니다.

속도 자체는 속도와 방향이라는 두 가지 시스템 변수를 결합합니다. 자동차는 직선 트랙을 따라 움직이기 때문에 단순히 후진 이동을 음의 속도로, 전진 이동을 양의 속도로 표현할 수 있습니다. 그러나 비효율적이기는 하지만 속도의 단일 상태 변수를 속도와 방향의 2개 상태 변수로 대체할 수 있습니다.

장난감 자동차가 직선 트랙 대신 넓은 들판을 통해 이동하는 경우, 자동차의 위치와 움직임이 각각 완전히 설명되려면 최소 2차원이 필요하기 때문에 상태 공간은 이제 4차원이 됩니다.

실제로 상태 공간의 "차원"은 물리적 세계의 친숙하고 시각화하기 쉬운 차원과 거의 일치하지 않습니다. 예를 들어, 틱택토 보드를 생각해 보세요. 9개의 개별 사각형 각각을 9차원 상태 공간에서 상태 변수(값이 공백의 경우 "0", X의 경우 "1", O의 경우 "2"가 될 수 있음)로 처리할 수 있습니다. 보드의 모든 구성은 상태 공간 형태로 9차원 상태 벡터로 표현될 수 있습니다.

전문가가 전하는 최신 AI 트렌드

가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

상태 공간 모델은 어떻게 작동하나요?

상태 공간 모델은 시스템에 대한 입력이 아웃풋에 어떻게 반영되는지, 그리고 시간이 지남에 따라 특정 입력에 반응하여 시스템 자체의 상태가 어떻게 진화하는지 예측하는 것을 목표로 합니다.

각 시간 t에서 SSM은 입력 시퀀스 x(t)를 가져와 현재 상태 h(t)와 아웃풋 시퀀스 y(t) 모두에 매핑합니다. 상태 h(t)는 시스템의 아웃풋과 달리 직접 관찰할 수 없는, 즉 잠재된 상태이기 때문에 종종 잠재(숨겨진) 상태라고도 합니다.

시스템의 상태 공간 표현은 2개의 1차 미분 방정식을 사용하여 계산됩니다.

상태 방정식: h(t)=A*h(t)+B*x(t) 
아웃풋 방정식:
y(t)=C*h(t)+D*x(t)


SSM의 주요 매개변수는 A, B, C, D이며, 일반적으로 행렬 형태를 취합니다. 각 행렬의 각 요소는 상태 변수와 다른 변수(예: 외부 입력 변수, 다른 상태 변수 또는 자체) 간의 관계(1차 미분으로 표현)를 나타냅니다. 행렬을 사용하면 복잡한 다중 입력, 다중 출력(MIMO) 시스템을 간결하고 표준화된 형식으로 표현하기 위한 강력하고 확장 가능한 도구로 상태 공간 방법을 사용할 수 있습니다.

제어 이론 및 관련 분야에서 이러한 행렬은 종종 직접 정의됩니다. 이는 확립된 시스템의 역학을 나타내며, SSM은 바람직한 아웃풋 y 또는 최적 상태 h로 이어지는 입력 x를 찾는 데 사용됩니다. SSM에 대한 보다 현대적인 개념에서 이러한 행렬 자체는 기계 학습을 통해 최적화되어 훈련 데이터 세트의 패턴을 가장 잘 반영하는 매개변수입니다. 딥 러닝 모델에서 이 '매개변수화'는 신경망의 학습 가능한 가중치로 표현됩니다.

상태 공간 방정식

상태 공간 방정식(또는 간단히 상태 방정식)은 이름에서 알 수 있듯이 A 행렬과 B 행렬에 의해 매개되는 시스템의 상태를 설명합니다. 이 표기법에서 h(0)은 시스템의 초기 상태로 이해할 수 있고, h(t)는 시간 t에서의 잠재 상태이며, h(t)에 대한 1차 미분 방정식인 h'(t)는 시간 t에서 상태가 변화하는 방식입니다.

SSM의 상태 공간 방정식 다이어그램 상태 방정식. Maarten Grootendorst의 "A Visual Guide to Mamba and State Space Models"에 삽입된 일러스트

미분 방정식과 행렬의 추상적인 개념을 맥락화하기 위해 매개변수 A, B, C, D가 이미 알려진 동적 시스템의 단순하고 직관적인 예를 통해 이를 살펴볼 수 있습니다.

우리의 예를 들어, 물고기 개체군과 그 물고기를 먹는 펠리컨 개체군이 서식하는 외딴 섬의 작은 생태계를 상상해 보세요. 이 시스템은 다음 두 가지 상태 변수를 사용하여 나타낼 수 있습니다. F (물고기 수), P  (펠리컨 수). 여기에서 목표는 함수 h(t) 를 정의하는 것인데, 이 함수는 상태 h(t) (다음 상태 벡터로 표현됨: [F(t),P(t)] , 이 시간 t에서 변경됩니다.

A 행렬

전환 행렬이라고도 하는 A 행렬은 이 두 상태 변수로 대표되는 섬의 생태계가 시간이 지남에 따라 어떻게 변화하는지를 설명합니다. 보다 구체적으로, 현재 상태 h가 미래 상태에 어떤 영향을 미치는지 설명합니다.

물고기와 펠리컨 개체 수의 역학 관계가 매우 단순하고 일정하다고 가정해 보겠습니다.

  • 물고기 개체 수는 자연적으로  F 50% 증가합니다.
  • 펠리컨 개체 수는 자연적으로  P 5% 감소합니다.
  • 각 펠리컨은 같은 기간 동안 물고기 4마리를 먹습니다.
  • 물고기 10마리가 추가될 때마다 생태계는 펠리컨 1마리를 추가로 수용할 수 있습니다.

이제 이러한 각 역학을 간단한 방정식으로 표현하고 해당 방정식을 n x n 크기의 행렬로 표현할 수 있습니다. 이때 n  = 상태 변수의 수입니다. 2x2 A 행렬의 각 열은 상태 변수를 나타내며, 각 행은 각 상태 변수에 대한 변화율(1차 도함수)을 나타냅니다. 명확성을 위해 기울임꼴 주석이 추가되었습니다.

 Fish(F)Pelicans(P)ChangestoFish0.5_-4_ChangestoPelicans0.1_-0.05_

단순화된 시나리오에서 개체 수 변화율은 일정하므로, A 행렬의 요소는 단순 상수입니다. 실제 시나리오에는 종종 더 많은 상태 변수 및 이들 사이의 더 복잡한 관계가 수반되지만, 이러한 관계가 해당 전환 행렬 A의 그리드에 표시되는 방식은 동일합니다.

외부 영향이 전혀 없다고 가정하면, h'(t)=A*h(t)는 섬의 생태계 상태가 시간이 지남에 따라 어떻게 변화하는지 설명하기에 충분합니다.

h(t)=A*h(t)

h(t)=[0.5-40.1-0.05]*h(t)

h(t)=[0.5-40.1-0.05]*[F(t)P(t)]  

이 방정식을 분석적으로 풀려면 행렬 A의 고유값과 고유 벡터를 계산해야 하는데, 이는 이 글의 범위를 벗어납니다. 그러나 이 생태계를 그대로 두면 물고기와 펠리컨 개체군은 각각 상호 연관되어 점점 더 극단적인 호황과 불황의 사이클을 경험하고 결국에는 재앙적인 붕괴로 절정에 달하게 될 것이므로 지속 가능하지 않습니다.

B 행렬

생태계에 영향을 미치는 외부 요인도 있다면 어떨까요? 입력 행렬 이라고도 하는 B 행렬은 상태 방정식의 나머지 절반에 정보를 제공하여 주어진 입력이 각 상태 변수에 어떤 영향을 미치는지 설명합니다. n x m 크기의 행렬이며, 여기서 n = 상태 변수의 수이고 m = 외부 입력 변수의 수입니다. 제어 이론의 본질은 전체 시스템에 대해 바람직한 상태 또는 결과를 달성하는 시스템 입력 x(t)를 결정하는 것입니다.

생태계 예제를 더 발전시키기 위해 시간 t에 어류 먹이 x(톤 단위로 측정)를 떨어뜨려 공급하는 경우를 단일 입력 변수로 추가합니다. 공중에서 떨어뜨려 공급한 1톤의 어류 먹이가 물고기 개체 수를 30% 더 증가시킬 수 있고 펠리컨 개체 수에는 영향을 미치지 않는다고 가정합니다.

2개의 상태 변수와 1개의 입력 변수가 있으므로 2x1 입력 행렬로 캡처합니다. B 행렬의 맨 위 행은 A 행렬과 일치하도록 F를 나타냅니다.

 ChangetoFChangetoP   [0.30]

이제 우리는 전체 상태 방정식을 사용하여 시간 t에서의 섬 생태계 상태를 모델링할 수 있습니다.

h(t)=A*h(t)+B*x(t)

h(t)=[0.5-40.1-0.05]h(t)+[0.30]x(t)

이 경우 생태계를 안정화하기 위해 어류 개체수가 감소할 때마다 생태계에 입력값 x(t)를 추가하기 위한 최적의 규칙(일반적으로 요소가 상태 변수의 함수인 또 다른 행렬로 표현됨)을 식별하는 것이 목표입니다.

출력 방정식

앞서 언급했듯이 상태 방정식의 목적은 직접 관찰할 수 없는 "숨겨진 상태" h를 설명하는 것입니다. SSM은 잠재적으로 노이즈가 있거나 불완전하더라도 직접 관찰할 수 있는 실제 상태의 일부 반영이 존재한다고 가정하고 출력 방정식(관측 방정식이라고도 함)을 사용하여 모델링합니다.

SSM의 출력 방정식 다이어그램 출력 방정식. 상태 방정식. Maarten Grootendorst의 "A Visual Guide to Mamba and State Space Models"에 삽입된 일러스트.

우리의 간단한 생태계 예시에서도 마찬가지입니다: 실제로 섬에 있는 모든 개별 물고기와 새를 말 그대로 세는 것은 아마도 불가능할 것입니다. 그 대신 생태계 연구에서는 항공 드론과 수중 카메라를 사용하여 일부 물고기와 펠리컨 개체군을 객관적으로 조사한 다음, 이러한 측정값이 생태계의 실제 상태와 어떤 관련이 있는지에 대한 가설을 세울 수 있습니다.

C 행렬

C 행렬(또는 아웃풋 행렬)은 내부 상태 변수와 아웃풋 y 간의 관계를 결정합니다.아웃풋 자체는 요소가 각 출력 변수에 대한 관측값에 대응되는 벡터로 표현됩니다. 생태계 예시에서 4개의 아웃풋 변수, 즉 물고기 개체 수를 관찰하기 위한 수중 카메라 2대와 펠리컨 개체 수를 관찰하기 위한 공중 드론 2대를 추가해 보겠습니다.

  • 카메라 1은 물이 맑은 좋은 위치에 있으며, 실제 물고기 개체군 F 의 20% 가량을 안정적으로 기록할 수 있습니다(펠리컨은 기록 불가).
  • 카메라 2는 탁한 물 속에 있어 물고기 개체군의 약 5%만 볼 수 있습니다.
  • Drone 1은 새로운 고품질 드론입니다. 실제 펠리컨 개체군 P의 약 25%를 볼 수 있지만, 물고기가 보이지 않을 정도로 높은 곳을 비행합니다.
  • 드론 2는 구형 드론입니다. 펠리컨 개체 중 약 10%만 발견할 수 있습니다.

이러한 아웃풋 변수는 p x n 행렬 C로 나타낼 수 있으며, 여기서 n은 상태 변수의 수이고 p는 측정할 아웃풋 신호의 수입니다. 이전 행렬과 정렬하기 위해 왼쪽 열은 각 아웃풋 변수와 F의 관계에 해당하며,  F 오른쪽 열은 각 아웃풋 변수와 P의 관계에 해당합니다.  P .

Camera1Camera2Drone1Drone2[.20.0500.250.10]

아웃풋과 시스템 상태의 상관 관계

이제는 시간 t의 시스템 아웃풋 y를 다음과 같이 모델링할 수 있습니다.

 y(t)=C*h(t)=[.20.0500.250.10]*[F(t)P(t)]

이론적으로 이를 통해 상태 및 출력 방정식을 참조하여 출력 측정 y에서 실제 상태 h를 도출할 수 있습니다.

실제로 아웃풋 측정과 실제 상태 간의 정확한 관계는 거의 알 수 없으며, 아웃풋 측정 자체는 종종 불완전하고 잡음이 많은 변동이 있을 수 있습니다. 예를 들어, 드론 1호가 섬에 있는 펠리컨의 정확히 25%를 발견할 것이라고 가정하는 것은 비현실적입니다. 칼만 필터는 노이즈가 많은 시스템 아웃풋을 사용하여 최대 가능도로 실제 상태의 추정치를 생성하는 데 사용되는 기술입니다.

D 행렬

D 행렬은 입력이 관찰된 시스템 아웃풋에 직접적인 영향을 미치는 방식을 설명합니다. SSM에 대한 다이어그램과 논의에서 종종 생략되는 이유는 본질적으로 실제 "모델"을 완전히 우회하며 상태 자체와 직접적인 관계가 없기 때문입니다.

예를 들어, 생태계의 예시에서 섬 수역의 해류로 인해 공중에서 떨어뜨린 물고기 먹이가 카메라 2 근처에 가라앉는 경향이 있다고 상상해 보세요. 이로 인해 시스템 입력이 증가할 때마다 카메라 2가 평소보다 더 많은 비율의 실제 물고기 개체 수를 포착할 수 있습니다(그리고 카메라 1에서는 평소보다 더 적은 비율의 F가 포착됩니다). p x m D 행렬은 각 아웃풋 변수에 대한 이러한 효과를 고려합니다.    

일부 경우에는 입력과 아웃풋 사이에 직접적인 연결이 없고 D가 모델에서 완전히 삭제되는 경우도 있습니다.

AI 아카데미

사용 사례에 적합한 AI 모델 선택

AI 모델은 크다고 항상 좋은 것은 아닙니다. 비즈니스 요구 사항에 맞는 적합한 솔루션을 찾는 방법을 알아보세요. 그런 다음 가이드북을 통해 솔루션을 도입하는 데 도움을 받으세요.

SSM 및 머신 러닝

칼만 필터를 사용하여 시스템 아웃풋을 시스템의 실제 상태에 매핑하려면 A 및 B 매개변수를 미리 알아야 합니다. 그러나 많은 경우 상태 공간 시스템의 역학(매개변수 A, B 및 C)은 처음에는 알려지지 않았습니다. SSM 프레임워크를 사용하여 시스템에 대해 의미 있는 예측을 하려면 올바른 매개변수를 파악해야 합니다.

여러 머신 러닝 알고리즘을 사용하여 알려진 입력과 해당 알려진 아웃풋에서 A, B, C의 값을 도출하고, 이들의 상호 작용을 설명하는 두 개의 상호 연관된 방정식을 사용할 수 있습니다. 모델이 선형 시간 불변(LTI)인 경우, 즉 시간이 지남에 따라 역학이 일관되고 아웃풋이 입력에 비례하여 확장되는 경우 N4SID와 같은 기대 최대화 알고리즘 또는 부분 공간 방법을 사용하여 모델 매개변수를 효율적으로 추정할 수 있습니다.

SSM 및 딥 러닝

최근 몇 년 동안 딥 러닝은 점점 더 자주 사용되는 SSM 파라미터를 학습 수단으로 부상하고 있습니다. 이러한 접근 방식은 A, B, C 행렬을 신경망의 가중치로 나타냅니다. 반복 프로세스에서:

  • 모델에는 훈련 데이터의 입력이 제공되며, 시스템의 아웃풋을 예측하는 임무가 부여됩니다.
  • 예측된 아웃풋은 손실 함수를 사용하여 해당 입력에 대한 실제 "실측 정보" 아웃풋과 비교하여 측정됩니다.
  • 역전파(Backpropagation)는 각 모델 매개변수(즉, A, B, C 행렬의 각 요소)가 측정된 오차에 어떻게 기여했는지 확인하는 데 사용됩니다.
  • 경사 하강법은 손실(부정확성)을 줄이는 방식으로 모델 매개변수를 최적화하는 데 사용됩니다.
  • 이 프로세스는 반복되면서 모델의 예측이 허용 가능한 정확도 임계값에 도달할 때까지 SSM 행렬을 업데이트합니다.

모델은 이 지도 학습(또는 자기 지도 학습) 프로세스를 사용하여 상태 공간 시스템의 역학을 암묵적으로 학습합니다. 이는 최적의 SSM 매개변수를 학습하는 강력하고 다양한 수단이지만, 다량의 훈련 데이터가 필요합니다.

기존 SSM과 달리 신경망 기반 SSM은 해석할 수 없습니다. 행렬의 값은 더 이상 이전 예시와 같이 직관적인 방식으로 상태 변수와 다른 모델 매개변수 간의 관계에 대응하지 않습니다. 이는 심층 SSM의 고유한 결함이 아니라 딥 러닝 모델의 일반적인 품질입니다.

이산화된 상태 공간 모델

기존 SSM은 전기 신호나 움직이는 물체의 궤적과 같은 연속 시퀀스를 모델링하도록 설계된 연속 시간 모델입니다. 그러나 텍스트, 분자 구조, 사용자 행동 또는 시계열 데이터와 같이 최신 딥 러닝 모델에서 처리되는 많은 데이터 양식은 일반적으로 불연속 시퀀스입니다. SSM을 사용하여 불연속 시퀀스를 모델링하려면 연속 신호의 일부로 별개의 특정 타임스텝을 표현할 수 있는 수단이 필요합니다.

개념적으로 이산화는 특정 순간에 연속 함수 값의 '스냅샷'을 샘플링하는 것에 해당합니다. 여기에는 각 이산 시간 단계 t에서 스냅샷이 "유지"되는 시간을 결정하는 새로운 매개변수(단계 크기 )의 도입이 수반됩니다. 에 대한 조정은 데이터의 해상도(시계열 데이터의 경우) 또는 프레임 속도(동영상 데이터의 경우)와 같은 품질을 변경하는 것과 유사합니다. 일반적인 이산화 방법에는 이중 선형 방법, 오일러 방법 및 많은 최신 SSM 변형(Mamba 포함)에서 사용되는 단순 0차 유지(ZOH) 방법 등이 있습니다.

SSM과 RNN 간의 연결

연속 시간 SSM은 함수 x(t)를 함 y(t)에 매핑하는 반면, 이산 시간 SSM은 시퀀스 간 시퀀스 모델입니다. 수학적으로 말하면, 이산화된 SSM은 반복 신경망(RNN)과 동등하며, 시스템의 잠재 상태는 RNN의 "숨겨진 상태"와 동일합니다.

SSM 방정식에서 입력과 상태를 나타내는 데 사용되는 구체적인 문자에는 차이가 있으나(일부 경우 전자는 u로 표현되고, 후자는 x로 표현됨), RNN과의 이러한 연관성은 대부분의 머신 러닝 컨텍스트에서 상태를 나타내는 데 h를 사용하는 이유입니다. RNN과의 관계는 Mamba와 같은 최신 SSM 기반 아키텍처의 개발로도 이어졌습니다.

이산화된 SSM의 매개변수와 방정식은 연속 시간 동등성과 구별하기 위해 일반적으로 RNN에 많이 사용되는 아래 첨자 표기법을 사용하여 재작성됩니다. 이 표기법에서 ht는 모델이 생성할 업데이트된 상태 공간을 나타내며, ht-1은 그 이전의 상태, 즉 현재의 상태 공간을 나타냅니다. A, B, C의 표기법도 이산화된 형식을 반영하도록 변경되었습니다.

 ht=A¯ht-1+B¯xt 
 yt=C¯ht


이러한 이산화된 공식에서 시스템 상태는 각 타임스텝 t 후에 (상태 방정식을 사용하여) 업데이트되고, 이를 통해 업데이트된 상태가 다음 타임스텝의 출력 방정식에 반영됩니다.

구조화된 상태 공간 모델

많은 장점에도 불구하고 표준 이산화 SSM은 RNN과 동일한 몇 가지 중요한 단점이 있습니다. 가장 중요한 단점 중 두 가지는 2021년 Albert Gu 등이 구조화된 상태 공간 시퀀스 모델 (또는 "S4 모델")을 도입함으로써 해결되었습니다. 하나는 긴 시퀀스를 처리할 수 없다는 것이었고, 다른 하나는 모델 훈련 중 본질적으로 비효율적이라는 것이었습니다.

전자는 훈련 전에 SSM의 매개변수를 초기화하기 위한 고유한 전략을 통해 해결되었습니다. 후자는 SSM과 컨볼루션 신경망(CNN) 간의 중요한 연결을 발견함으로써 해결되었습니다.

HiPPO 초기화

표준 RNN과 마찬가지로, 기존의 이산화된 SSM은 본질적으로 장거리 종속성을 모델링하는 데 취약합니다. 즉, 단락의 시작과 끝에 있는 단어처럼 멀리 떨어져 있는 시퀀스의 단계 간 관계를 잘 이해하지 못하므로 긴 시퀀스(예: 텍스트 데이터)를 모델링하는 데 약합니다.

이 문제를 해결하기 위해 Gu 등은 A 행렬과 B 행렬의 동작 방식을 정의하기 위해 HiPPO(High-order Polynomial Projection Operators의 약자)라는 기술을 사용할 것을 제안했습니다.

다항식 함수는 하나 이상의 을 결합합니다.각 항은 계수와 일부 변수의 기저 함수로 구성됩니다. 예를 들어 3x2는 계수가 3이고 기저가 x2인 항입니다. 다항식의 '차수'는 포함된 기저의 가장 큰 거듭제곱에 의해 결정됩니다. 즉, 3x2 + 5x는 "2차 다항식"입니다. 다항식의 차수가 높을수록 곡선에서 더 복잡한 세부 정보를 포착할 수 있습니다.

직교 다항식 함수는 여러 차수에 걸쳐 있는 다항식의 특별한 "계열"로, 여기에서 각 다항식은 수학적으로 다른 다항식과 독립적이어서 다항식 간에 중복 겹침이나 정보 종속성이 없습니다. 또한 사소한 반올림 오류에 매우 견고하므로, 더 복잡한 함수를 근사화하는 데 유용합니다. 직교 다항식의 계열은 그 자체로 3항 반복 공식이라는 규칙에 의해 생성됩니다. HiPPO 방법은 이러한 반복 공식을 사용하여 A 및 B 행렬을 구성합니다.

본질적으로 상태 ht가 상태 방정식에 의해 업데이트될 때마다 A¯ht-1+B¯xt , 상태 벡터 ht의 요소는 원래 입력을 근사화하는 다항식 표현식의 계수 역할을 합니다. 이전의 입력은 광범위한 저빈도(장기) 세부 정보를 포착하는 저차 다항식을 통해 근사화되고, 비교적 최근의 입력은 세분화된 고빈도(단기) 세부 정보를 포착하는 고차 다항식을 통해 근사화됩니다. 선택된 다항식은 직교하므로 정보가 반복되지 않습니다. 본질적으로 이 구조는 상태 공간이 전체 입력 기록을 고정 크기의 계수 벡터로 효율적으로 "압축"하여 "기억"하도록 강제합니다.

S4 논문에서는 “SSM을 랜덤 행렬 A에서 [HiPPO 행렬]로 간단히 수정하면 순차 MNIST 벤치마크에 대한 성능이 60% 에서 98%로 향상"되었으며, 이를 통해 SSM의 장기 메모리 문제를 효과적으로 해결할 수 있었다고 밝혔습니다. DSS, S5 및 Mamba와 같은 구조화된 SSM의 최신 변형은 A와 B에 대해 서로 다른(많은 경우 더 간단한) 초기화 체계를 사용하지만, 핵심 HiPPO 원칙은 동일하게 유지합니다.

SSM과 CNN 간의 연결

기존 RNN과 마찬가지로, RNN의 SSM 등가물은 이산화된 SSM 자기회귀 추론이 매우 빠릅니다. 이 동등성의 단점은 RNN의 학습 속도가 매우 느리다는 것입니다.

다행히 이산화된 SSM에는 다른 RNN과 구별되는 한 가지 중요한 속성이 있는데, 바로 선형 종속성만 모델링한다는 것입니다. 즉, 이산화된 SSM은 간단하고 직관적인 곱셈과 덧셈 연산만 사용합니다. S4 논문에서 알 수 있듯이 이러한 단순하고 반복적이며 상호 의존적인 선형 반복은 1차원 컨볼루션 커널로 언롤될 수 있으며, 이 커널은 하나의 단계로 아웃풋 x를 아웃풋 y에 직접 매핑합니다. 이는 빠른 푸리에 변환을 사용하여 매우 효율적으로 계산할 수 있습니다.

유일한 아쉬움은 전체 입력 시퀀스의 모든 단계를 알고 있을 때만 이러한 계산이 가능하다는 것입니다. 하지만 추론 중에는 그렇지 않습니다. 추론의 요점은 시퀀스의 다음 단계가 알려지지 않았기 때문에 모델을 사용하여 이를 반복적으로 예측하는 것입니다. 하지만 훈련 중에 모델에 샘플 시퀀스가 입력되고 예측 정확도를 높이기 위해 최적화되면 전체 시퀀스가 알려지게 됩니다.

따라서 구조화된 SSM은 두 가지 장점을 모두 누릴 수 있습니다. 학습 중에는 CNN으로 매우 효율적으로 운영될 수 있으며, 추론 중에는 RNN으로 매우 효율적으로 운영될 수 있습니다.

Mamba 모델

Mamba는 구조화된 SSM의 특별한 변형인 선택적 상태 공간 모델을 기반으로 구축된 신경망 아키텍처입니다.자기회귀 언어 모델링과 같은 작업에서 Mamba 모델은 대부분의 학술 벤치마크에 대해 트랜스포머 모델의 성능과 일치하거나 이를 능가하는 동시에 학습과 추론 모두에서 훨씬 빠르고 메모리 효율적임이 입증되었습니다.

일반 SSM은 전체 입력 기록을 사용하여 입력을 아웃풋에 매핑하도록 명시적으로 설계되어 있습니다.이는 일부 시퀀스 모델링 작업에서는 허용되거나 심지어 바람직하지만, 대부분의 고급 언어 모델링 작업에서는 상당한 핸디캡으로 작용합니다. 선택적 상태 공간 모델은 이전에는 트랜스포머 아키텍처의 셀프 어텐션 메커니즘만이 제공했던 중요한 능력, 즉 현재의 관련성을 기반으로 과거 입력 기록의 특정 부분에 선택적으로 초점을 맞추거나 이를 무시할 수 있는 능력을 Mamba에 제공합니다.

이전 SSM 설계에서 A, B, C, D 및 ∆ 매개변수는 고정되어서 모델 훈련을 통해 최적화된 후에는 모든 입력에 대해 동일했습니다. 선택적 SSM에서 SSM 매개변수는 입력에 따라 달라지며, 입력 벡터에 모델 가중치 계층을 곱("투영")하여 생성됩니다. 이 계층 자체는 훈련 중 최적화됩니다.

그러나 선택적 SSM은 선형 시간 불변(LTI)이 아니므로 훈련 중에 CNN으로 작동할 수 없습니다. Mamba 작성자들은 그래픽 처리 장치(GPU)가 메모리 계층 구조에서 모델의 계산을 처리하는 방식을 최적화하여 속도와 계산 효율성을 극대화하는 알고리즘인 하드웨어 인식 병렬 스캔으로 이 문제를 해결했습니다.

선택적 상태 공간 모델 다이어그램 GPU에 대한 선택적 SSM 및 RAM 할당. 원본 논문 "Mamba: Linear Time-Sequence Modeling with Selective State Spaces"에서 발췌
관련 솔루션
파운데이션 모델

watsonx 포트폴리오의 IBM 파운데이션 모델 라이브러리에 대해 자세히 알아보고 비즈니스를 위한 생성형 AI를 자신 있게 확장하세요.

watsonx.ai에 대해 알아보기
인공 지능 솔루션

업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.

AI 솔루션 살펴보기
AI 컨설팅 및 서비스

AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.

AI 서비스 살펴보기
다음 단계 안내

IBM watsonx 포트폴리오의 IBM 파운데이션 모델 라이브러리에 대해 자세히 알아보고 비즈니스를 위한 생성형 AI를 자신 있게 확장하세요.

watsonx.ai에 대해 알아보기 IBM Granite AI 모델 살펴보기
각주