RNN 확장 신경망 - LSTM

IngCoding·2022년 6월 23일
1

머신러닝

목록 보기
28/34

장단기 메모리 (Long Short-Term Memory, LSTM)

  • 전통적 RNN은 시점(tiem step)이 길어질수록 앞의 정보가 뒤로 충분히 전달되지 못하는 문제 발생(장기의존성 문제)
  • LSTM은 은닉층의 메모리 셀에 입력, 망각, 출력을 추가해 불필요한 기억을 지우고 기억해야할 것들을 정한다.
  • 이를 통해 기존 RNN에 비해 긴 시퀀스의 입력을 처리하는데 탁월한 성능을 보인다.

1. LSTM 구조

  • LSTM의 전체적인 구조는 아래와 같다.
  • LSTM은 은닉상태 계산식이 기존 RNN보다 조금 더 복잡해졌으며 셀상태(Ct)라는 값이 추가된다.
  • 은닉상태와 셀 상태의 값을 구하기 위해 3개의 게이트가 추가되는데, 각 삭제, 입력, 출력게이트라고 부르며 공통적으로 시그모이드 함수가 존재한다.
  • 시그모이드 함수를 지나면 0과 1사이의 값이 나오게 되는데 이 값들로 게이트를 조절한다.

2. LSTM에서 추가된 게이트

1) 입력 게이트 (출력값 it, gt)


  • 입력게이트는 현재 정보를 기억하기 위한 게이트다.
  • it는 현재 시점의 x값(xt)을 입력게이트 가중치 Wxi를 곱한 값과 이전 시점의 은닉 상태(ht-1)가 입력게이트로 이어지는 가중치 Whi를 곱한 값을 더하여 시그모이드 함수를 지나서 나온 값이다.
  • gt 값도 유사한 과정을 겪지만 적용되는 가중치와 활성화 함수가 다르다.
  • 시그모이드 함수를 지난 0과 1 사이의 값과 하이퍼볼릭탄젠트 함수를 지난 -1과 1사이의 값은 셀 상태 수식을 통해 기억할 정보의 양을 정한다.

2) 삭제 게이트 (출력값 ft)

  • 삭제 게이트는 기억을 삭제하기 위한 게이트다. xt와 ht-1 값이 시그모이드를 지나게 됩니다. ft 값이 0에 가까울 수록 정보가 많이 삭제된 것이고 1에 가까울수록 정보를 온전히 기억한 것이다. 이를 가지고 셀 상태를 구하게 된다.

3) 셀 상태(장기 상태, 출력값 Ct)

  • Ct는 입력 게이트에서 선택된 기억을 삭제게이트의 결과값을 더한 것이다.
  • 셀 상태 Ct를 LSTM에선 장기상태라고 부르기도 한다. 삭제 게이트에서 일부 기억을 잃은 상태다.
  • 입력게이트에서 구한 it, gt 두 개의 값에 대해서 원소별 곱(entrywise product)를 진행해 기억할 값이 결정된다.
  • 원소별 곱은 같은 크기의 두 행렬이 같은 위치의 성분끼리 곱하는 것을 말한다. 수식에선 o 로 표현한다.
  • 만약 삭제게이트 출력값 ft가 0이 되면 이전 시점 셀상태 값의 영향력이 0이 되며, 입력게이트의 결과만이 현재 시점의 셀 상태값를 결정한다. (삭제게이트가 완전히 닫혔다고 표현하며)
  • 반대로 입력 게이트의 it가 0이 되면 셀 상태값은 이전 시점의 상태 값에 의존하게 된다. (입력게이트가 닫혔다고 표현)

4) 출력게이트와 은닉상태 (단기상태)

  • 출력게이트의 출력값 ot는 현재시점의 x값과 이전시점의 은닉상태가 시그모이드 함수를 지난 값이다. 이 값은 현재 시점의 은닉상태(ht)를 결정하는 데 쓰인다.
  • 은닉상태를 단기상태라고도 하며, 장기상태의 값이 하이퍼볼릭탄젠트 함수를 지나 -1과 1사의 값이다.
  • 해당 값은 출력 게이트의 값과 연산되면서, 값이 걸러지는 효과가 발생한다. 단기 상태의 값은 또한 출력층으로도 향한다.

3. LSTM 요약

  • LSTM은 전통적인 RNN이 시점이 길어질수록 앞의 정보를 기억하지 못하는 장기 의존성 문제를 해결해준다.
  • 과거 정보 중 중요도가 높은 것은 남기고 낮은 것은 삭제하여 장단기 메모리를 결정한다.
  • 이를 위해 은닉층의 메모리 셀에 입력, 망각, 출력 게이트를 추가해 조금 더 복잡하게 구성됐으며, 셀상태(장기상태)라는 값을 추가했다.
profile
Data & PM

0개의 댓글