DL-LSTM
1. LSTM
- Long Short-Term Memory
- 기본 RNN의 치명적인 단점인 장기 의존성(Long-Term Dependency) 문제를 해결하기 위해 고안된 모델
- 쉽게 말하면, 아주 긴 문장이 들어와도 앞부분의 중요한 정보를 끝까지 잊지 않고 전달하는 기억력이 아주 좋은 RNN
- 정보가 흘러가는 통로를 제어하는 Gate 장치를 추가하여, 어떤 정보를 기억하고 어떤 정보를 지울지 스스로 결정
- 특징
Long-term Memory먼 과거의 정보를 보존하는 능력이 탁월함Gating Mechanism3개의 게이트를 통해 정보의 흐름을 정밀하게 제어Gradient Flow셀 상태(Cell State)를 통해 기울기 소실 문제를 획기적으로 완화
2. Cell State (셀 상태)
- LSTM의 핵심 중의 핵심!
- 컨베이어 벨트처럼 전체 체인을 관통하며, 정보가 큰 변함없이 흐를 수 있게 해줌
- 게이트들에 의해 정보가 추가되거나 삭제될 뿐, 메인 스트림(Main Stream) 역할을 수행함
- 덕분에 아주 오래전의 정보도 현재 시점까지 안전하게 전달될 수 있음
3. The Three Gates (3개의 게이트)
① Forget Gate (망각 게이트)
- "과거의 기억 중 무엇을 버릴까?"
- 현재의 입력(
)과 이전의 은닉 상태( )를 보고, 과거의 정보( )에서 버릴 부분을 결정 - 시그모이드(
) 함수를 사용하여 0(전부 삭제)과 1(전부 보존) 사이의 값을 출력
② Input Gate (입력 게이트)
- "새로운 정보 중 무엇을 저장할까?"
- 현재 들어온 정보 중 가치 있는 것을 골라내어 셀 상태에 저장
- 어떤 값을 업데이트할지 정하는 시그모이드 층과 새로운 후보 값들을 만드는
층으로 구성
③ Output Gate (출력 게이트)
- "현재 시점에 어떤 정보를 출력할까?"
- 업데이트된 셀 상태를 바탕으로, 현재 시점의 출력(
)을 결정 - 모든 정보를 다 내보내는 것이 아니라, 필요한 필터링을 거친 '정제된' 정보만 다음 층으로 전달
4. Mathematical Flow
- LSTM의 각 단계는 다음과 같은 수식으로 정의됨 (
는 가중치, 는 편향) - 망각 게이트:
- 입력 게이트:
- 새로운 기억 후보:
- 셀 상태 업데이트:
- 출력 게이트:
- 최종 은닉 상태:
- 망각 게이트:
5. RNN vs LSTM
| 구분 | RNN | LSTM |
|---|---|---|
| 기억 능력 | * 과거 정보를 짧게 기억 | * RNN 보다는 과거 정보를 길게 기억 가능 |
| 구조 | * 현재 상태와 입력값을 받아 Hidden State(현재 상태)를 통해 출력 * tanh 함수로 단순 계산 |
* Cell State(기억 저장소, 장기 상태)와 Gate를 활용하여 상태 출력 * Forget/Input/Output Gate로 정보 조절 * 계산량이 많고, RNN보다 학습 시간이 길어짐 |
| 한계점 | * 어느 정도 과거를 기억하지만, 긴 시퀀스 학습 어려움 (Vanishing Gradient) * 시간 순서 의존 |
* 계산량이 많고, 긴 시퀀스에서 목적을 달성하기 어려움 * 시간 순서 의존 |
| 설명 | * 순간순간 정보를 이어가는 방식 | * 순간순간 정보를 이어가는 방식에 더해 * 중요한 정보를 따로 저장하는 기억 저장소(Cell)를 통해 과거 중요한 정보를 오래 활용할 수 있도록 함 |
6. GRU: LSTM의 라이벌
- Gated Recurrent Unit
- LSTM의 복잡한 구조를 단순화(게이트를 2개로 축소)한 모델
Reset Gate와Update Gate만 사용하며, 셀 상태와 은닉 상태를 하나로 합침- LSTM보다 파라미터가 적어 연산 효율이 좋으면서도 성능은 거의 대등함
7. LSTM 핵심 정리
Forget필요 없는 과거는 지우고Input중요한 현재 정보는 더하고Cell State이 정보를 고속도로에 실어 보내어Output다음 단계에 필요한 맥락만 출력하는 구조