이전 글에서 LSTM의 배경과 구조에 대해 알아보았습니다. 이번 글에서는 LSTM의 핵심 아이디어인 Cell State의 특징 및 원리에 대해서 알아보도록 하겠습니다.
Cell State 기능 및 원리
Cell state를 쉽게 설명하기 위해 비유하자면 일종의 컨베이어 벨트와 같다습니다. 정보가 계속 전달되는 Chain으로 이뤄진 컨베이어 벨트이죠. 전체 Chain을 따라 가다보면, 몇몇은 작은 선형 상호작용이 일어나기도 합니다. 이러한 방식은 원래의 정보는 변하지 않으며서, 그냥 흘러가기가 매우 쉬운 방식이라는 이점이 있습니다. 이는 시계열 데이터의 약점인 오래된 데이터에 대한 '기억 상실'인 정보 전달을 할 수 없는 문제를 개선해 줍니다.

그림에서 볼 수 있듯이 Long Term에 대해 '기울기 소실'의 주범인 활성화 함수를 거치지 않고 정보 전달하게 되어 있습니다. 어떠한 matrix 변환 없이 입력 정보를 다음 time step으로 전달하는 방식이라는 것이죠. 이 방법은 + 연산만 존재하여 backpropagation 시 정보손실이 거의 발생하지 않습니다.
그렇다면 이러한 세심한 정보 전달을 어떻게 가능하게 할까요? LSTM은 Gate라고 불리는 '구조물'에 의해 세세하게 얼마나 전달할지를 조절합니다. 이는 결국 Gate에 의해 Cell State에 정보를 제거 또는 추가하는 기능을 담당하고 있습니다.
요약하면, Cell Sate는 컨베이어 벨트라고 했습니다. 이는 정보를 물 흐르듯 전달하는 방식이죠. 여기서 중요한게 물을 얼마나 보낼가 인데요. 그 정보 전달의 조절은 3개의 Gate에 의해 선택적으로 보내게 됩니다. 참고로 Gate는 Sigmoid Neural Network Layer과 Pointwise Multipliction Operation으로 구성됩니다.
Sigmoid Layer
0과 1 사이의 숫자를 출력하며, 각 구성 요소 중 어느 정도가 통과되어야 하는지 설명합니다. 이는 문(Gate)을 여닫는 것과 비슷합니다.
- 0 : 이전 cell state 값을 0으로 만들어, 미래 결과에 영향을 주지 않음
- 1 : 이전 cell state 값을 그대로 보내, 미래 결과에 영향을 줌
Gate의 역할
앞에서 Gate는 문을 여닫는 것과 비슷하다고 했습니다. Gate는 어떤 시점의 정보를 얼마나 전달할지에 대한 역할을 합니다.
- Input Vector(
) : 벡터와 벡터 : 값을 선형으로 변경해 주는 weight(가중치) = Linear Transformation- 𝜎 : 시그모이드 함수로 0~1 사이의 값으로 매핑 = Mapping transformation output into 0~1 range
: 게이트 결괏값으로 0~1 사이의 원소값들 = Vector with 0~1 elements
다음 Cell state의 수식은

LSTM 처리 절차
이제 간단하게 LSTM의 처리 절차에 대해 요약해 보겠습니다. 더 상세한 3개의 Gate에 대한 기능은 다른 글에서 설명하도록 하겠습니다.

1. 에서 불필요한 정보를 지운다.
- 이 부분은 정보를 지운다고 해서 '잊다'의 의미를 사용하여 Forget Gate라고 합니다.
2. 에 새로운 Input 과 를 보고 중요한 정보를 넣는다.
- 이전 시점의 히든 state의 상태와 현재 시점의 값의 상태를 입력해 준다고 해서 Input Gate라고 합니다.
3. 위 과정을 통해 (Cell state 현재값)를 만든다.
- Forget Gate와 Input Gate를 통해 Cell state를 현행화(update)한다고 해서 Update cell state라고 합니다.
4. 를 적절히 가공해 해당 해당 t(현 시점)에서 를 만든다.
- 최종적인 결과를 낸다고 해서 Output Gate라고 합니다.
5. 와 를 다음 로 전달한다.
'딥러닝' 카테고리의 다른 글
LSTM 모델의 의미와 장단점 (0) | 2024.04.25 |
---|---|
LSTM의 3개의 Gate 특징 및 설명 (0) | 2024.04.23 |
LSTM의 배경 및 구조, 핵심 아이디어 (0) | 2024.04.15 |
순환신경망(RNN) 구현, Time RNN (0) | 2024.04.09 |
순환신경망(RNN) 학습, Truncate BPTT (0) | 2024.04.01 |