최근 딥러닝 분야에서 LSTM(Long Short-Term Memory)을 공부하며 정말 많은 인사이트를 얻었다. 단순한 이론을 넘어 실제 문제 해결에 적용할 수 있는 중요한 개념들이 많았는데, 정리해보면 다음과 같다.
LSTM의 가장 핵심은 '선택적 기억'이다. 모든 정보를 다 기억하려고 하지 않고, 중요한 것은 오래 기억하고 덜 중요한 것은 빨리 잊는다.
이론적 배경:
Cell State (C_t): 장기 기억을 담당하는 핵심 구조로, 정보가 선형적으로 흐르는 "컨베이어 벨트" 역할
Hidden State (h_t): 단기 기억을 담당하며, 현재 시점의 출력을 결정하는 필터링된 정보
정보 흐름의 수학적 표현: C_t = f_t ⊙ C_{t-1} + i_t ⊙ C̃_t
여기서 핵심은 Cell State가 덧셈과 곱셈만으로 구성되어 있어 역전파 시 그래디언트가 선형적으로 전달된다는 점이다. 이는 기존 RNN의 비선형 활성화 함수를 반복 적용하면서 발생하는 그래디언트 소실 문제를 근본적으로 해결한다.
실제 동작 메커니즘:
중요한 정보는 Forget Gate에서 높은 값(1에 가까운)을 받아 Cell State에 오래 보존
덜 중요한 정보는 낮은 값(0에 가까운)을 받아 빠르게 소거
Hidden State는 Cell State에서 현재 맥락에 필요한 정보만 선별적으로 추출
마치 업무에서 중요한 프로젝트는 오래 기억하고, 일시적인 이슈들은 빨리 정리하고 넘어가는 것과 같다.
LSTM에는 세 개의 게이트가 있는데, 각각의 역할이 명확하고 수학적으로 정의되어 있다:
Forget Gate (f_t) - 망각의 예술:
f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
시그모이드 함수를 통해 0~1 사이의 값으로 정규화
0에 가까우면 완전히 잊고, 1에 가까우면 완전히 기억
새로운 맥락이 시작될 때(예: 새 문장) 이전 정보를 선택적으로 리셋
Input Gate (i_t) - 선별적 수용:
i_t = σ(W_i · [h_{t-1}, x_t] + b_i)
C̃_t = tanh(W_C · [h_{t-1}, x_t] + b_C)
Input Gate는 새로운 후보 정보 중 얼마나 받아들일지 결정
후보 값(C̃_t)은 tanh 함수로 -1~1 사이로 정규화
두 값의 element-wise 곱셈으로 선별적 정보 저장 구현
Output Gate (o_t) - 맥락적 출력:
o_t = σ(W_o · [h_{t-1}, x_t] + b_o)
h_t = o_t ⊙ tanh(C_t)
Cell State의 정보를 현재 맥락에 맞게 필터링
tanh(C_t)는 Cell State를 -1~1로 정규화하여 안정성 확보
Hidden State는 장기 기억에서 현재 필요한 부분만 추출한 결과
기존 RNN은 시간이 길어질수록 정보가 희미해지거나 폭발하는 문제가 있었다. LSTM은 이를 아주 우아하게 해결했다:
문제의 본질: 기존 RNN에서는 그래디언트가 다음과 같이 전파된다:
∂L/∂W = Σ_t (∂L/∂h_t) · (Π_{k=1}^t ∂h_k/∂h_{k-1}) · ∂h_0/∂W
여기서 Π_{k=1}^t ∂h_k/∂h_{k-1} 부분이 문제를 일으킨다. 이 값이 1보다 작으면 지수적으로 감소(vanishing), 1보다 크면 지수적으로 증가(exploding)한다.
LSTM의 해결책: LSTM의 Cell State는 다음과 같이 업데이트된다:
C_t = f_t ⊙ C_{t-1} + i_t ⊙ C̃_t
이때 그래디언트 전파는:
∂C_t/∂C_{t-1} = f_t
핵심은 f_t가 매 시점마다 학습되는 값이라는 점이다. 고정된 가중치를 반복 곱하는 것이 아니라, 상황에 따라 적응적으로 변하는 값을 사용한다. 이는 그래디언트가 0으로 수렴하거나 무한대로 발산하는 것을 방지한다.
LSTM의 정보 처리 순서는 수학적으로 엄격하게 정의되어 있으며, 이 순서가 바뀌면 모델이 제대로 동작하지 않는다:
1단계: 망각 결정 (Forget Gate)
f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
먼저 이전 Cell State에서 무엇을 잊을지 결정한다. 이는 새로운 정보를 받아들이기 전 불필요한 정보를 정리하는 과정이다.
2단계: 저장 결정 (Input Gate + Candidate Values)
i_t = σ(W_i · [h_{t-1}, x_t] + b_i)
C̃_t = tanh(W_C · [h_{t-1}, x_t] + b_C)
새로운 정보 중 무엇을 저장할지 결정하고, 실제 저장할 후보 값들을 생성한다.
3단계: Cell State 업데이트
C_t = f_t ⊙ C_{t-1} + i_t ⊙ C̃_t
망각된 이전 정보와 새롭게 선택된 정보를 결합하여 새로운 Cell State를 만든다.
4단계: 출력 결정 (Output Gate)
o_t = σ(W_o · [h_{t-1}, x_t] + b_o)
h_t = o_t ⊙ tanh(C_t)
최종적으로 업데이트된 Cell State에서 현재 시점에 필요한 정보만 추출한다.
이 순서가 중요한 이유는 각 단계가 이전 단계의 결과에 의존하기 때문이다. 순서를 바꾸면 정보의 일관성이 깨지고 학습이 불안정해진다.
LSTM에서 게이트들은 완전연결층(fully connected layer)이 아닌 element-wise multiplication을 사용한다. 이는 깊은 수학적 의미를 가진다:
수학적 표현:
C_t = f_t ⊙ C_{t-1} + i_t ⊙ C̃_t (⊙: element-wise multiplication)
h_t = o_t ⊙ tanh(C_t)
이론적 장점:
독립성: 각 차원(feature)별로 독립적인 제어가 가능
해석 가능성: 각 게이트 값이 해당 차원의 중요도를 직접적으로 나타냄
계산 효율성: 행렬 곱셈보다 빠른 연산
그래디언트 안정성: 각 차원별로 그래디언트가 독립적으로 전파
실제 의미: 만약 문장 처리에서 문법적 정보가 1번 차원, 의미적 정보가 2번 차원에 저장된다면:
f_t[1] = 0.9, f_t[2] = 0.1: 문법 정보는 유지하고 의미 정보는 대부분 망각
i_t[1] = 0.2, i_t[2] = 0.8: 새로운 문법 정보는 조금만, 의미 정보는 많이 추가
LSTM에서 배울 수 있는 가장 큰 교훈은 '효율적인 정보 관리'인데, 이는 수학적 최적화 이론에서도 뒷받침된다:
정보 이론적 관점:
정보 엔트로피: LSTM은 높은 엔트로피(불확실성)를 가진 정보는 빨리 버리고, 낮은 엔트로피의 구조적 정보는 오래 보존
압축 이론: Cell State는 일종의 손실 압축으로, 중요한 정보는 보존하고 불필요한 정보는 제거
최적화 이론적 관점:
적응적 학습률: 각 게이트는 차원별로 적응적 학습률을 제공하는 것과 유사
정규화 효과: 시그모이드와 tanh 함수의 출력 범위 제한은 자연스러운 정규화 효과
결국 LSTM은 우리가 일상에서 정보를 처리하는 방식을 수학적으로 정교하게 모델링한 것이다. 이 이론을 이해하면 단순히 기술적 지식뿐 아니라, 효과적인 학습과 업무 처리에도 큰 도움이 된다.
앞으로 AI 기술이 더욱 발전하겠지만, LSTM에서 배울 수 있는 이런 근본적인 인사이트들은 여전히 유효할 것이다. 복잡해 보이는 기술도 수학적 기본 원리에 충실하면 이해할 수 있고, 그 속에서 삶의 지혜도 찾을 수 있다.