LSTM
LSTM(Long Short-Term Memory) 구조를 알아봅시다.
LSTM
*본 게시글은 유튜브 ‘김성범[ 교수 / 산업경영공학부 ]’ [핵심 머신러닝 RNN, LSTM and GRU] 자료를 참고한 점임을 알립니다.
LSTM에 대해서
1. 기본 컨셉
- 장기 의존성 문제를 완화한 RNN 개선 모델
- 기존 RNN의 ‘Hidden State(\(h_{t}\))’와 더불어 ‘Cell State(\(c_{t}\))’를 제안
- Forget gate (\(f_{t}\)), Input gate (\(i_{t}\)), Output gate (\(o_{t}\)) 세가지 gate를 추가한 구조
- \(h_{t}\)를 다른 방식으로 계산하여 장기 의존성 문제 완화
- 핵심인 \(h_{t}\)를 구하는 데 있어 \(c_{t}\)를 활용
2. 전체 구조
- 최종 목표인 \(t\)시점의 \(y_{t}\)를 구하기 위한 \(h_{t}\)
3. 원리
- 두번째 단계
- \(c_{t}\)(현재 Cell State)를 구하기 위한 \(f_{t}\)(Forget gate), \(c_{t-1}\)(이전 Cell State), \(i_{t}\)(Input gate), \(\tilde{c}_t\)(임시 Cell State)
- 세번째 단계
- \(h_{t}\)(Hidden State)를 구하기 위한 \(o_{t}\)(Output gate), \(c_{t}\)(현재 Cell State)
- 종합
4. Forget / Input / Output Gate
- 과거 Cell State에서 사용하지 않을 데이터에 대한 가중치
- 현재 Input에서 사용할 데이터를 저장하기 위한 가중치
- 출력할 Hidden State에 Cell State를 얼마나 반영할 것인지에 대한 가중치
- Gate는 0~1 사이의 값을 가지는 벡터
5. Cell State
- \(\tilde{c}_t\) (임시 Cell State)
- \({c}_t\) (현재 Cell State)
6. Hidden State
Output Gate \(o_{t}=\sigma(W_{xh_{o}}x_{t}+W_{hh_{o}}h_{t-1}+b_{h_{o}})\)
7. ETC
- LSTM with peephole connections
- Gate에 \(c_{t}\) or \(c_{t-1}\) 정보를 활용
- GRU
- LSTM의 구조를 개선하여 파라미터 개수를 줄임
- Forget Gate, Input Gate를 ‘Update Gate(\(z_{t}\))’로 통합
- Output Gate를 대체할 ‘Reset Gate(\(r_{t}\))’ 정의
- Cell State, Hidden State를 ‘Hidden State’로 통합
참고 자료
This post is licensed under CC BY 4.0 by the author.