본문 바로가기

LangChain&LangGraph

LSTM ( long short term memory )

https://programmerk.tistory.com/97

 

RNN

RNN : RNN의 은닉층에 과거 정보를 압축해 저장하는 역할을 하고, 이 정보가 다음 시간 단계로 다시 입력되어 순환되므로 연속된 데이터를 통해 음성, 텍스트, 시계열과 같이 순서가 중요한 데이터

programmerk.tistory.com

 

RNN 의 한계를 극복하기위하여 Cell State, Input Gate, Output Gate, Forget Gate 를 추가한 모델

 

LSTM 구조

기존  RNN 에서 Input, hidden State, Output 구조에서 Cell State, Forget Gate, Input Gate, Output Gate를 추가하여 불필요한 데이터 최소화, 핵심 내용 Cell State에 저장하여 기울기 소실, 증폭 문제를 해결 한 모델

 

Forget Gate

이전 hidden state와 입력값의 시그모이드 함수를 사용하여 불 필요한 정보에는 가중치를 낮게, 필요정보에는 가중치를 높이는  Gate -> 현재 step에서 과거 정보를 얼마나 잊을지 결정

 

How?

필요’와 ‘불필요’의 결정 기준 :

이 결정은 초기에는 무작위지만, 역전파 알고리즘을 통해 훈련 데이터에 맞춰 학습한다는 것이 핵심입니다

훈련 과정에서 자동으로 학습된 가중치에 의해 결정된다

 

 

Input Gate

이전 hidden state와 입력값의 시그모이드 함수, 탄젠트 하이볼릭을 사용하여 셀 상태에 새로 반영할 정보를 결정하는 역할

 

1. 시그모이드 함수를 사용하여 얼마나 반영할지 결정값

2. Tanh을 사용하여 후보 셀 상태 결정

3. 이 두 값을 곱하여 셀 상태에 새롭게 반영할 값을 결정

4. 이후 이전 cell state 와 합하여 cell state 를 업데이트 한다.

 

cell state 후보 목적 :  새로운 정보를 실제 내용 없이 단순히 몇 퍼센트 기억할지만 결정하게 되어, 장기 기억에 들어갈 새로운 정보의 다양성과 표현력이 매우 제한됩니다.

Tanh 사용이유 : 항상 0과 1 사이 값만 나오므로, 셀 상태에 더해질 정보가 항상 양수 위주로 제한되어, 표현할 수 있는 패턴의 다양성이 크게 떨어집니다.

즉 정보의 방향성(긍정/부정, 증가/감소 등)을 충분히 표현할 수 없다.

 

Output Gate

이전 단계의 cell state와 새로운 input 의 정보를 추가한 최종 cell state와 input 값을 사용하여 다음 단계에서 사용한 hidden state 결정

 

Cell State

이전 단계에서 수집된 장기 기억에 새로운 input 에 대한 forget gate 결과, input gate 결과를 update 하여 최종 cell state 사용

 

 


LSTM의 복잡한 구조로인하여 이를 개선한 GRU도 존재함.