들어가기에 앞서 기존 RNN의 문제점
RNN(Recurrent Neural Network)은 순서가 있는 데이터를 처리하는데 특화된 딥러닝 모델이다.
그런데 순서가 길어질수록, 즉 입력 시퀀스가 점점 길어질수록 앞쪽의 정보가 뒤쪽까지 충분히 전달되지 못하는 문제가 있다. 이를 Long-Term Dependency problem 이라고 하며 원인은 Vanishing Gradient problem(그레디언트 소실)에 있다.

위 그림에서 보이듯이, RNN은 이전 단계의 출력값을 현재 단계의 입력값으로 받는 순환 구조를 가진다.
그래서 현재 시간 t 에서 결과 h(t) 는 이전 단계의 은닉 상태 h(t-1)과 현재 입력 x(t)를 받아 계산된다.
그런데 위에서 4번째 시점과 0번째 시점 간의 관계를 학습하려고 하면, 4번째 시점의 오차(Loss)를 0번째 시점의 은닉 상태로 미분한 값을 얻어야 하며 이걸 그레디언트 라고 한다. 역전파에 의해 시간의 깊이만큼 미분한 값이 계속해서 곱해져야 한다. (총 5번 미분값이 곱해질 것이다.)
여기서 미분값은 항상 1보다 작다. 따라서 곱셈이 반복될수록 그레디언트는 0에 가까워지며, 소실될 것이다.
즉 앞쪽에 중요한 정보가 있음에도 뒤쪽에서 최종 출력값에 영향을 미치지 않게 되는 것이다.
LSTM RNN이란?
LSTM RNN은 Long Short Term Memory RNN의 줄임말로, 장기 기억과 단기 기억을 활용하는 방식이며
위에 설명한 장기 의존성 문제를 해결할 수 있다.

위 그림에서 보이듯이 LSTM RNN은 여러 구조로 이루어져 있다.
1. Cell State
2-1. Forget Gate
2-2. Input Gate
2-3. Output Gate
1. 먼저 Forget Gate(망각 게이트)가 동작한다. 이전의 정보 C(t-1)을 얼마나 잊을지 결정하는 것이다.

망각 게이트의 수식을 보면 이전의 은닉 상태 h(t-1)과 현재 입력 x(t)를 이어 붙인다.
여기서 중요한 것은 히든 레이어 차원에 맞춰지도록 W(f) 가중치 행렬이 계산된다는 것이다.
예를들어 히든 레이어가 (1,3)이라면, h(t-1)과 x(t)를 이어붙인 차원이 어떻게 되던 결과는 (1,3) 차원이 되어야 한다.
시그모이드에 의해 0과 1 사이의 값으로 계산된다.
최종적으로 f(t)가 계산되었다면 C(t-1)과 곱연산 되어 얼마나 잊어질지 결정한다.
예를들어 C(t-1) = [15,30,45] 이고 f(t) = [1/3,1/3,1/5] 라면 결과적으로 [5,10,9] 가 되는 것이다.
2. 다음으로 Input Gate(입력 게이트)가 동작한다. 현재 들어온 정보를 얼마나, 어떤 내용으로 Cell State에 저장할지 결정한다.


입력 게이트의 출력값인 i(t)는 망각 게이트에서와 비슷하게 계산된다.
이를 바탕으로 셀 상태에 새로 추가할 후보 메모리 C(t)를 계산하게 된다.

마지막으로 위에서 계산한 두 값을 조합하는데,
1) 망각 게이트를 통과한 과거 정보 2) 입력 게이트를 통과한 새로운 정보 를 합쳐서 최종 정보를 만들어낸다.
3. 출력 게이트를 통과한다. 최종적으로 지금 사용할 단기 기억을 도출해내는 것이다.

앞서 자주 등장했던 h(t) 라는 은닉 상태는 결국 최종 도출된 단기 기억이다.
출력 게이트의 출력값 o(t)를 tanh(C(t)) 값과 곱해준다. tanh(C(t)) 를 해주는 이유는, C(t)는 방대한 값이기 때문에
tanh를 통해 -1과 1 사이의 값으로 정제해주는 것이다.
결과적으로 h(t)라는 단기 결과가 도출되며, 이 값은 다음 단계를 위한 정보가 된다.
'AI LLM' 카테고리의 다른 글
| ANN - GridSearchCV를 활용한 최적의 layer, 뉴런 개수 찾기 (0) | 2025.06.14 |
|---|---|
| Cbow, skipgram (0) | 2025.06.07 |
| Word Embedding, Word2Vec (0) | 2025.06.07 |
| [NLP - 벡터 변환 알고리즘] TF-IDF (0) | 2025.05.25 |
| [NLP - 벡터 변환 알고리즘] Bag of Words, N-Gram (0) | 2025.05.22 |