SYDLAB_inha/Machine Learning

ML - RNN(4) / LSTM / cell / forget gate / input gate / output gate

빈그레 2023. 9. 17. 22:50

 

 

 


Long Short-Term Memory(LSTM)

 

 

 

 

 

 

RNN vs LSTM

: RNN은 결국  input이 internal state로 들어가고, self 루프가 있으며 아래 식으로서 stae가 계산된다.

 

 

[Symbol 소개]

 


1) Neural Network Layer : neural network layer 중 하나로서 activation function이 드 ㄹ어

2) pointwise operation : 데이터 요소에 대해 요소별로 연산

3) vector transfer  : 벡터가 이동한다.

4) Concatenate : 벡터가 하나로 합쳐진다.

5) Copy : 벡터가 두개로 나눠진다.


 

 

 

[ RNN vs LSTM 비교 ]

RNN :   다음 time step으로 넘어가는 internal state가 하나이다.

LSTM : 다음 time step으로 넘어가는 internal state가 두개이다.

LSTM

 

: long short term memory의 약자로 RNN의 한 종류이다. 주로 sequence data를 처리하거나 long term dependencies를 모델링하는데 사용된다. LSTM은 시퀀스 데이터에서 장기 의존성을 포착하고 정보를 효과적으로 관리하기 위한 강력한 도구로 자리 잡았으며, RNN의 한계를 극복하고 더 나은 성능을 제공한다.

 

 




1)메모리 셀 (Memory Cell) 
: 정보 전송으로 쓰임
 ( LSTM에는 메모리 셀이라고 불리는 내부 상태가 있습니다. 이 메모리 셀은 정보를 저장하고 장기 의존성을 다루는 데 사용됩니다. )

(LSTM은 다음 step으로 넘어가는 internal state가 2개 그 중 하나가 cell)
->하나의 A에서 다른A로 시간상 이동해서 정보가 흘러가는 것인데, 그 중 하나가 cell이고 다른 하나는 gate이다.       (cell은 sigmoid기반으로 들어온다. sigmoid는 0혹은 양수의 값만을 가질 수 있다는 한계를 보완하기 위해
    -1부터 1까지 표현가능한 tanh 함수를 쓴다. )

2)게이트 (Gates)
: 정보를 추가하거나 지우는 데에 쓰이며 정보의 흐름을 제어한다. 세가지 주요 게이트가 있다.

-  (1)잊기 게이트 (Forget Gate)  //과거 state를 지울지말지 결정
  : 메모리 셀의 정보를 삭제한다.
    -> 효율적으로 새로운 정보를 받기 위해 과거의 정보를 지우려고 하는 뇌의 특성과 비슷하다.
세타는 weight를 의미하며 b는 bias를 의미한다. 위와 같이 연산하여 activation function인 sigmoid를 거쳐 0이 나오면 forget하고 1이 나오면 keep한다.


   여기에서의 연산이 바로 forget gate 연산이다. xt와 ht-1이 각각의 widght와 곱해진 뒤 더해져 sigmoid함수를 지난다.


-  (2)입력 게이트 (Input Gate)  //현재 state를 유지할지말지
: 새로운 정보를 메모리 셀에 추가한다.  //어떤 값이 update될지를 결정한다.
ft와 it의 계산 과정은 동일하나 의미는 다르다.

[ft]
ft의 의미는 ft가 0에서 1사이 값으로 Ct-1과 곱해지며 0인 경우는 지워지고 1인 경우는 그대로 유지되는 것이다.

[it]
아래 그림에서 xt와 ht-1이 각각의 weight와 곱해져 tanh 함수를 거치면 거깃으 internal state가 된다.
따라서 it가 1일 때에는 현재의 0일 때에는 현재의 internal state를 받아주지 않겠다는 것이고, 1일 때에는 현재의 internal state를 그대로 받겠다는 것이다.


input gate와 forget gate의 값들이 모이면 아래와 같은 과정이 일어나며, 다음 step으로 넘길 Ct를 만들어낸다.


결과적으로 Ct라는 값은 previous states와 current state의 조합으로 구성되어 있다.

-  (3)출력 게이트 (Output Gate) 
 : 메모리 셀의 내용을 기반으로 출력을 생성한다. 
   internal state가 출력 ht로 넘어갈 때 얼마나 여과할지를 결정해주는 gate이다.
위에서 계산했던 Ct값이 tanh함수를 거쳐 Ot를 기반으로 0에서 1사이 값으로 응축되어 cell 을 update해주고, 이것이 다시 위 ht output로 올라가도록 넘겨주는 동시에 오른쪽으로도 나간다. 



3) Gradient 폭발 및 Gradient 소실 문제 완화
 : LSTM은 long term denpendency 문제와 gradient 폭발 및 gradient 소실 문제를 완화합니다. 이를 통해 더 긴 시퀀스 데이터를 다루고 학습할 수 있습니다.

4) 시퀀스 모델링: LSTM은 자연어 처리, 음성 인식, 기계 번역, 주식 시계열 예측 등과 같은 다양한 시퀀스 모델링 작업에 널리 사용됩니다.

 

 

 

 

Uninterrupted gradient flow

 

 

최근 time step에서 과거 time step으로 흘러가면 gradient가 소실되기 쉬운데,  그것을 cell state라는 새로운 internal state의 도입 통해 잘 흘러가도록 해주었다.