LSTM
2024. 11. 18. 12:07ㆍLLM/Pre-Process
**LSTM (Long Short-Term Memory)**는 **순환 신경망(Recurrent Neural Network, RNN)**의 한 종류로, **시간 순서가 중요한 데이터(시계열 데이터)**를 처리하고 학습하는 데 사용됩니다. LSTM은 기존 RNN의 장기 의존성(Long-term dependency) 문제를 해결하기 위해 설계되었습니다.
1. RNN과 LSTM의 차이
RNN의 문제: 장기 의존성 문제
- RNN은 순차적인 데이터를 처리하기 위해 설계되었지만, 이전 입력에서 중요한 정보가 멀리 떨어져 있을 경우 해당 정보를 효과적으로 학습하기 어렵습니다.
- 예를 들어, 긴 문장에서 초반에 나온 주어 정보를 끝부분에서 활용해야 하는 경우, RNN은 정보가 점차적으로 사라지는 기울기 소실(Vanishing Gradient) 문제로 인해 학습이 어려워집니다.

LSTM의 해결책: 기억 셀과 게이트 구조
- LSTM은 **기억 셀(Cell)**과 이를 조작하는 게이트(Gate) 구조를 도입하여, 중요한 정보를 장기적으로 유지하거나 필요에 따라 삭제할 수 있도록 설계되었습니다.


2. LSTM의 구성 요소
LSTM은 기본적으로 **셀 상태(Cell State)**와 **게이트(Gates)**라는 두 가지 주요 아이디어를 활용합니다.
(a) 셀 상태 (Ct):

- LSTM의 핵심으로, 장기적인 정보를 저장하는 역할을 합니다.
- 이전 시간 단계에서 전달된 정보가 다음 단계로 전달되며, 게이트를 통해 필요한 정보만 추가하거나 삭제할 수 있습니다.
(b) 게이트(Gates):


게이트는 정보를 추가하거나 삭제하는 정도를 조절하는 역할을 합니다. 각 게이트는 시그모이드(sigmoid) 함수를 사용하여 출력값을 0~1 사이로 조절합니다:
- 0: 정보를 완전히 삭제
- 1: 정보를 완전히 유지
예를 들면 1이면 게이트로 copy하여 파라미터 전달하여 output에서 다시 concat됩니다.
- Forget Gate (ft):
- 셀 상태에서 불필요한 정보를 삭제.
- 계산식: ft 여기서:
- ht−1: 이전 시간 단계의 은닉 상태
- xt: 현재 입력
- Wf: Forget Gate의 가중치와 편향
- Input Gate (i):

- 새로운 정보를 얼마나 추가할지 결정.
- Cell Update (Ct):
- 새로운 정보를 계산하여 셀 상태에 추가.
- Output Gate (o):

- 현재 셀 상태에서 얼마나 많은 정보를 출력으로 보낼지 결정.
3. LSTM의 동작
- Forget Gate (ft): 이전 셀 상태에서 삭제할 정보를 결정.
- Input Gate (it)와 : 현재 입력 정보를 통해 추가할 정보를 계산.
- 셀 상태 업데이트 (Ct):

- 이전 상태(Ct−1C_{t-1})에서 유지할 정보와 새로 추가할 정보를 결합.
- Output Gate (ot)와 출력 (ht):
- 현재 셀 상태의 정보를 기반으로 출력 생성.
4. LSTM의 주요 특징
- 장기 의존성 처리:
- Forget Gate와 Input Gate를 통해, 장기적으로 중요한 정보를 셀 상태에 저장하고 필요할 때 활용합니다.
- 기울기 소실 문제 해결:
- 셀 상태를 통해 정보가 직접 전달되므로, 중요한 정보가 멀리 있는 경우에도 손실되지 않습니다.
- 양방향 LSTM:
- **Bidirectional LSTM (biLSTM)**은 순방향과 역방향의 정보를 결합하여 문맥을 더욱 풍부하게 이해합니다.
5. 요약
- LSTM은 기존 RNN의 기억 상실 문제를 해결하기 위해 설계된 모델로, Forget Gate, Input Gate, Output Gate를 사용하여 정보를 선택적으로 기억하거나 삭제합니다.
- 이를 통해 장기 의존성을 효과적으로 처리하며, 긴 문맥이 중요한 태스크에서 매우 유용합니다.
'LLM > Pre-Process' 카테고리의 다른 글
| LLM 인퍼런스 최적화 (2) | 2025.05.21 |
|---|