ML

LSTM과 GRU

꿈꾸는 데이터분석가 2023. 12. 19. 10:17

신경망을 통과하는 각 단계에서 첫번째 입력 정보를 잊어버리지 않기 위해 장단기 메모리가 필요합니다.

LSTM(장단기 메모리셀)은 RNN이 출력 결과가 이전의 계산결과에 의전한다는 한계를 보완해 만들어 졌다.

 

 

 

 

LSTM(Long Short-Term Memory)

는 은닉층의 메모리 셀에 입력게이트,망각게이트,출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 절한다. 요약하면 LSTM은 은닉상태를 계산하는 식이 전통적인 RNN보단 복잡해졌으며 셀 상태라는 값을 추가하였다.

특징은 2개의 벡터 (단기 상태 ht/장기상태Ct) 3개의 게이트를 가지고 있다는 점이다.

 

망각 게이트층 

이 단게예서 셀 상태로부터 어떤 정보를 잊거나 지워버리릴지 결정한다.

여기서 ht-1과 x를 전달하고 가중치와 편향 값으로 선형 변환을 한뒤에 시그모이드함수에 넣습니다.

1은 기억한다는 뜻이고 0은 잊어버린다는 것을 뜻합니다.

입력 게이트층

다음단계는 어떤 새로운 정보를 셀스테이트에 저장할지 결정하는 것입니다.

첫번째 부분은 시그모이드층이고 투번째부분은 tanh층입니다.

시그모이드층은 입력 게이트 층이라고 불립니다.

시그모이드층을 통과하면 0과 1사이에 수많은 값들을 갖습니다.

두번째 부분은 tanh층이고 ht-1을 가져와 선형변환하고 tanh에 통과시켜 t를 출력합니다.

출력 게이트층

출력 게이트는 현재 시점 t의 x값과 이전 시점 t-1의 은닉상태가 시그모이드 함수를 지난 값입니다.

해당 값은 현재 시점t의 은닉 상태를 결정하는 일에 쓰입니다.

하이퍼볼탄젠트 함수를 지나 -1과 1사이의 값이 되고 해당 값은 출력 게이트의 값과 연산되면서, 값이 걸러지는 효과가 발생하여 은닉상태가 됩니다. 은닉상태의 값은 또한 출력층으로도 향합니다.

 

 

GRU

GRU에서는 업데이트 게이트와 리셋 게이트 두가지 게이트가 존재합니다.

GRU와 LSTM 중 어떤 것이 모델의 성능면에서 더 낫다라고 단정지어 말할 수 없으며, 기존에 LSTM을 사용하면서 최적의 하이퍼파라미터를 찾아낸 상황이라면 굳이 GRU로 바꿔서 사용할 필요는 없습니다.

경험적으로 데이터 양이 적을 때는 매개 변수의 양이 적은 GRU가 조금 더 낫고, 데이터 양이 더 많으면 LSTM이 더 낫다고도 합니다. GRU보다 LSTM에 대한 연구나 사용량이 더 많은데, 이는 LSTM이 더 먼저 나온 구조이기 때문입니다

 

 

 

참고

 

https://wikidocs.net/22889