Long Short - Term Memory , LSTM

2023. 9. 7. 16:49자연어처리

RNN의 출력결과는 이전의 계산결과에 의존한다. 하지만 바닐라 RNN은 비교적 짧은 시퀀스에 대해서만 효과를 보이는 단점이 있는데, 이는 앞의 정보가 뒤로 충분히 전달되지 못하는 현상이 발생한다. 

 

어쩌면 가장 중요한 정보가 앞쪽에 존재할 수도 있는데, RNN이 충분한 기억력을 가지고 있지 않다면 다음 단어를 엉뚱하게 에측할 수 있다.

이를 장기 의존성 문제(the problem of Long-Term Dependencies)라고 한다.

the problem of Long-Term Dependencies

바닐라 RNN을 자세히 보면 다음과 같다.

( 왜 자꾸 바닐라 RNN이라고 하냐면 가장 기본적인 맛이 바닐라 이기에 그렇게 명명한다고 한다..)

위의 그림은 바닐라 RNN의 내부 구조를 보여준다.

그림에서 편향은 생략했다. 바닐라 RNN은 x 이라는 두 개의 입력이 각각의 가중치와 곱해져서 메모리 셀의 입력이 된다.

그리고 이를 하이퍼볼릭탄젠트 함수의 입력으로 사용하고 이 값은 은닉층의 출력인 은닉 상태가 된다.

 

위 사진은 LSTM의 전체적인 내부 모습을 보여준다. RNN의 단점을 보완한 RNN을 일종을 우리는 LSTM이라고 부른다.

LSTM은 은닉층의 메모리 셀에 입력게이트, 망각게이트, 출력게이트를 추가하여 불필요한 기억을 지우고, 기억할 것을 정리한다.

 

LSTM은 은닉 상태를 계산하는 식이 전통적인 RNN 보다 조금 더 복잡해졌으며 셀 상태라는 값을 추가하였다. 

LSTM은 RNN과 비교하여 긴 시퀀스의 입력을 처리하는데 탁월한 성능을 보인다. 

 

윽닉 상태의 값과 셀 상태의 값을 구하기 위해서 새로 추가 된 3개의 게이트를 사용한다.

 

각 게이트는 삭제 게이트, 입력 게이트, 출력 게이트 라고 부르며 이 3개의 게이트에는 공통적으로 시그모이드 함수가 존재한다.

 

-출처 : 자연어처리 위키독스