딥러닝 모델/LSTM for Traffic Prediction

LSTM : 긴 문맥을 놓치지 않는 RNN의 진화 버전

gksyb4235 2025. 9. 30. 16:32

LSTM


 

보통 RNN을 사용한다고 하면 LTM을 떠올리곤 한다.

LSTM은 RNN의 장기 의존성 문제를 극복하기 위한 딥러닝 모델이다.

이를 해결하기 위해 LTM은 기존 RNN보다 조금 더 복잡한 수식을 가진다.

 

 

LSTM의 내부 모습을 구체적으로 표현하면 아래와 같다.

 


 

기존 RNN에는 hidden state가 다음 time step으로도 전달이 되며 out으로 전달되는 형태였다.
LSTM의 핵심은 RNN에 없던 Cell state의 도입이다.
LSTM에서 Output layer로 보내는 건 hidden state 하나뿐인데, 
다음 time step으로 전달할 때는 hidden state 뿐만 아니라 Cell state도 함께 전달한다.

 

 

 

이때 Cell state에 gate라는 구조를 통해서 정보를 더하거나 빼는 등의 통제를 한다.
입력 gate는 현재의 정보를 기억하기 위한 gate이다.
수식을 보면 시그모이드 함수를 지난 i_t(0~1)와 하이퍼볼릭 탄젠트 함수를 지난 g_t(-1~1) 2가지로 나뉜다.
이 두 가지 값을 가지고 Cell state에서 이번에 선택된 기억할 값을 정한다.

 

 

 

반면 삭제 gate는 기억을 삭제하기 위한 gate이다.
시그모이드 함수를 지나 0~1 사이의 값이 나온다.
0에 가까울수록 정보가 많이 삭제된 것이며, 1에 가까울수록 정보를 온전히 기억한 셈이다.

 

 

삭제 gate에서 일부 기억을 소실하고, 입력 gate의 i_t와 g_t를 가지고 elementwise production을 수행한다.
이를 통해 지금 현재 시점의 입력을 얼만큼 기억하고 과거 기억을 얼만큼 삭제할 것인지 조합해,
현재 시점의 Cell state Ct를 만들어내고, 이를 다음 시점의 LSTM의 cell에 전달해준다.
이것이 LSTM의 cell state의 동작방식이다.

 

 


 

ft가 0에 가까워질수록 이전 시점의 Cell state 값은 0이 되어 현재 시점의 입력만이 Cell state에 관여할 수 있다.
이는 곧 삭제 gate는 닫히고 입력 gate만 열린 상태를 의미한다.

 


반대로 입력 gate의 값이 0이 된다면 이전 시점의 Cell state 값만으로 현재 시점의 Cell state를 결정한다.
이는 곧 입력 gate가 닫히고 삭제 gate만 열린 상태를 의미한다.


LSTM이 학습되는 과정에서 이 내부적인 가중치나 bias들이 학습된다.
즉 삭제 gate는 얼마나 반영할지, 입력 gate는 얼마나 반영할지를 결정하는 것이다.

 

 

이때 LSTM은 여전히 hidden state의 개념도 가지고 있다.
그래서 hidden state 값은 오른쪽과 같이 계산하고,
hidden state와 Cell state 두 가지를 다음 시점의 LSTM cell로 전달한다.
즉 Cell state는 오직 cell 내에서 기억력을 돕기 위한 것으로 출력층으로 보낼 때는 hidden state만 사용된다.

 

 

 

 

GRU


LSTM 말고 GRU도 있는데, 이 역시 장기 의존성 문제에 비해 Vanilla RNN에 비해 강하다.
3개의 gate가 있었던 LSTM과 달리 update gate, reset gate 2개로 gate의 수를 줄였다.
LSTM에서 수식을 간소화한 버전이라고 생각하면 된다.
일반적으로는 LSTM이 더 많이 사용되기는 한다.

 

GRU