본문 바로가기

AI

LSTM의 Cell State와 Gate별 특징

LSTM Network

RNN와 LSTM의 차이를 그림을 통해 살펴보면,

기본 RNN 표준적인모습

 

 

RNN과 다르게 LSTM은 셀의 값을 얼마나 기억할지 결정하는 것이 가능한 게이트를 가지고 있어서 필요한 정보만 기억할 수 있도록 제어하는 특징을 가지고 있다. 입력 게이트(Input Gate), 망각 게이트 (Forget Gate), 출력 게이트 (Output Gate) 세 가지 게이트로 cell state정보를 변경할 수 있다.

1. cell state

LSTM의 핵심 아이디어로, 모듈 그림에서 수평으로 그어진 윗 선에 해당한다. 이전 상태에서 현재 상태까지 유지되는 정보의 흐름이며, 이를 통해 LSTM은 오래된 정보를 기억하고 새로운 정보를 적절하게 갱신할 수 있다. Cell state는 자기 자신에게 피드백을 하게 되는데, Cell state는 망각 게이트와 입력 게이트에서 두 번의 변화를 거치게 되고 결과가 다음 입력으로 들어간다.

 

2. Gate

Forget gate layer : 어떤 정보를 버릴지 살릴지 

LSTM의 첫 단계로는 cell state로부터 어떤 정보를 버릴 것인지를 정하는 것으로, sigmoid layer에 의해 결정된다. 사진속 노란색은 Sigmoid로 얼마나 정보를 전달해야 하는지에 대한 척도로, 0이면 "아무것도 넘기지 마라"고 1이면 "모든 것을 넘겨라"가 된다. 

 

Input gate layer : 새로운 정보를 얼마나 더할지 말지

 

 입력 게이트는 현재의 Cell state 값에 얼마나 더할지 말지를 정하는 역할로, 이를 통해 LSTM은 기존 정보와 새로운 정보를 적절하게 조합하여, 더 정확한 예측을 수행할 수 있다.

 입력 게이트는 시그모이드 함수와 탄젠트 함수가 있는데, 탄젠트 함수는 RNN에서 사용되는 출력 계산 방법과 동일하며, 시그모이드는 함수는 값을 얼마나 전달할지 결정을 내리는 값이다. 

 

Cell State 업데이트

과거 Cell State를 새로운 State로 업데이트 하는 과정으로, Forget Gate를 통해서 얼마나 버릴지, Input Gate에서 얼마나 더할지를 정했으므로 이 Update과정에서 계산을 해서 Cell State로 업데이트를 해준다.

 

output gate layer : 어떤 출력을 할지

 

어떤 출력값을 출력할지 결정하는 과정으로 최종적으로 얻어진 Cell State 값을 얼마나 빼낼지 결정하는 역할을 한다.