LSTM의 Cell state의 특징 및 원리에서 간단하게 Gate가 어떤 역할을 통해 처리되는지 절차를 알아봤습니다. 이번 글에서는 각각의 Gate의 특징과 더 자세한 설명으로 구성했습니다. 먼저 Forget Gate부터 살펴보겠습니다.
Forget Gate
우선 forget gate는 과거에서 넘어온 정보 중에 불필요하다고 여겨지는 데이터들을 제거해 주는 역할을 합니다. LSTM의 첫 단계는 cell state로부터 어떤 정보를 버릴 것인지를 결정하는 것부터 시작합니다. 이 작업은 Sigmoid 함수를 통해 얻어진 0~1 사이의 가중치를 곱하는 방식으로 수행됩니다.
이 단계에서는

1. Forget Gate 수식
수식은
Neural Network를 이용하여 얻어진
2. Forget Gate를 추가한 이유
1997년 논문의 original LSTM에서는 Forget gate가 없었습니다. Cell state가 1, 0 Weight만 주다 보니, Depth가 길어질수록 기울기 폭발하는 현상이 여전히 발생했죠. 그의 대한 보완책으로 후속 논문(1999)에서 Forget Gate를 추가하게 됩니다. 이는 입력 값
Input Gate
forget gate 다음 단계는 앞으로 들어오는 새로운 정보 중 어떤 것을 cell state에 저장할 것인지를 정하는 것입니다. 이 역할을 Input Gate에서 합니다. 역시 이전 hidden state값 + 현재 입력 값(RNN의 기존 입력값)을 사용하여 현재와 바로 직전 정보에 대한 업데이트 비율을 자동 결정합니다.

1. Input Gate 처리 방식
현재 Cell의 Local state를 얻고 sigmoid layer를 이용해 중요도에 따라 얼마나 반영할지 결정합니다. 그 다음에 tanh layer가 새로운 후보 값들인
2. Input Gate 수식
이렇게 두 단계에서 나온 정보를 합쳐서 이를 Global Cell state를 업데이트할 재료를 만들게 됩니다. 수식은 아래와 같습니다.
← Forget과 같은 수식 ← 새로운 후보 추가
Update Cell state
이제 과거 state인
우선 이전 state에
- 수식
- 이전 Cell state와 Forget게이트 곱 + Input게이트 곱

Output Gate
마지막으로, 어떤 출력값을 보낼지 결정하는 역할이 Output Gate입니다. 이 출력(Output)은 Cell State를 기반으로 하지만, 필요한 정보만 선택된 filtered Version이 됩니다. Cell State의 어떤 부분을 출력할 것인지 결정하는 Sigmoid Layer를 실행합니다. 역시 input은 이전 hidden state값 + 현재 입력 값입니다.
그런 다음, 이미 정의된 cell state를 tanh layer에 태워서 -1과 1 사이의 값을 받은 뒤에 방금 전에 계산한 sigmoid gate의 output과 곱합니다. 여기서 곱은 원소별 곱(아다마르 곱)입니다. 원소별 곱은 기울기 소실이 얼어나지 않습니다. 최종적으로 얻어진 cell state값을 얼마나 빼낼지 결정합니다.
← Forget, Input과 같은 수식 ← nolinear 함수 적용

'딥러닝' 카테고리의 다른 글
GRU 성능 분석 및 특장점 (0) | 2024.05.01 |
---|---|
LSTM 모델의 의미와 장단점 (0) | 2024.04.25 |
LSTM의 Cell State 특징 및 원리 (0) | 2024.04.22 |
LSTM의 배경 및 구조, 핵심 아이디어 (0) | 2024.04.15 |
순환신경망(RNN) 구현, Time RNN (0) | 2024.04.09 |