728x90
반응형

LSTM의 인터페이스

  • LSTM이 기울기 소실을 일으키지 않는다.(일으키기 어렵게 한다.)
  • LSTM은 RNN에 게이트 추가

 

단순화된 도법을 적용한 RNN 계층 

[그림1] 단순화된 도법을 적용한 RNN 계층

  • tanh계산을 노드 하나로 그림

 

RNN 계층과 LSTM 계층 비교

[그림2] RNN 계층과 LSTM 계층 비교

  • c라는 경로가 있다는 차이가 있다.
  • c를 기얽 셀(memory cell(혹은 단순한 '셀'))이라 하며, LSTM의 기억 메커니즘이다.
  • 기억 셀의 특징은 데이터를 자기 자신으로만(LSTM 계층 내에서만) 주고받는다는 점이다.
  • LSTM 계층 내에서만 완결되고, 다른 계층으로는 출력하지 않는다.
  • LSTM의 은닉 상태 h는 RNN 계층과 마찬가지로 다른 계층으로(위쪽으로) 출력된다.

 

LSTM 계층 조립하기

  • 기억셀 ct에는 t에서의 LSTM의 기억이 저장돼 있<는데, 과거로부터 시각 T까지에 필요한 모든 정보가 저장돼 있다고 가정한다.
  • 필요한 정보를 모두 간직한 이 기억을 바탕으로, 외부 계층에 은닉 상태 h를 출력한다.
  • 출력하는 ht는 기억 셀의 값을 tanh 함수로 반환한 값이다.

기억셀 ct를 바탕으로 은닉 상태 ht를 계싼하는 LSTM 계층

[그림3] 기억셀 ct를 바탕으로 ht를 계싼하는 LSTM 계층

 

 

게이트란

  • '문'을 의미하는 단어
  • 게이트는 데이터의 흐름을 제어한다.
  • 물의 흐름을 멈추거나 배출하는 것이 게이트의 역할
  • 다음 단계로 흘려보낼 물의 양을 제어할 수 있다. 

 

output 게이트

  • tanh(ct)의 각 원소에 대해 '그것이 다음 시각의 은닉 상태에 얼마나 중요한가'를 조정한다. 
  • 이 게이트는 다음 은닉 상태 ht의 출력을 담당하는 게이트이므로 output게이트(출력 게이트)라고 한다.
  • 열림 상태(다음 몇 %만 흘려보낼까)는 입력 xt와 이전 상태 ht-1로부터 구한다.
  • 가중치 매개변수와 편향에는 output의 첫 글자인 o를 첨자로 추가한다.

[그림4] output 게이트

 

output 게이트 추가

[그림5] output 게이트 추가

  • '곱'이란 원소별 곱이며, 아다마르 곱(Handamard product)이라고도 한다.

 

forget 게이트

  • ct-1의 기억 중에서 불필요한 기억을 잊게 해주는 게이트가 forget 게이트(망각 게이트)라고 한다.

 

forget 게이트 추가

[그림6] forget 게이트 추가

 

 

forget 게이트가 수행하는 계산

[그림7] forget 게이트

  • 출력 f
  • f와 이전 기억 셀인 ct-1과의 원소별 곱, ct = f⊙ct-1을 계산해 ct를 구한다.

 

 

새로운 기억 셀

  • 새로 기억해야 할 정보를 기억셀에 추가 tanh 노드 추가

 

새로운 기억 셀에 필요한 정보를 추가

[그림8] 새로운 기억 셀에 필요한 정보를 추가

 

  • tanh 노드가 계산한 결과가 이전 시각의 기억 셀 ct-1에 더해진다.

tanh 노드에서 수행하는 계산

[그림9] tanh 노드에서 수행하는 계산

 

input 게이트

  • g에 게이트 추가

 

input 게이트

[그림10] input 게이트

  • input 게이트는 g의 각 원소가 새로 추가되는 정보로써의 가치가 얼마나 큰지를 판단한다.
  • 새 정보를 무비판적으로 수용하는 게 아니라, 적절히 취사선택하는 것이 이 게이트의 역할이다.
  • input 게이트에 의해 가중된 정보가 새로 추가되는 셈이다.

 

input 게이트 수행 계산

[그림11] input 게이트 수행 계산식

 

LSTM의 기울기 흐름

 

 

기억 셀의 역전파

[그림12] 기억 셀의 역전파

 

  • 기억 셀의 역전파에서는 '+'와 'x' 노드만을 지나게 된다.
  • '+'노드는 상류에서 전해지는 기울기를 그대로 흘릴 뿐이다.
  • 'x'노드는 '행렬 곱'이 아닌 '원소별 곱(아마다르 곱)'을 계산한다.
    • 매 시각 다른 게이트 값을 이용해 원소별 곱을 계산한다.
    • 매번 새로운 게이트 값을 이용하므로 곱셈의 효과가 누적되지 않아 기울기 소실이 일어나지 않는(혹은 일어나기 힘든) 것이다.
  • 'x' 노드의 계산은 forget 게이트가 제어한다.
    • forget 게이트가 '잊어야 한다'고 판단한 기억 셀의 원소에 대해서는 그 기울기가 작아진다.
    • '잊어서는 안된다'라고 판단한 원소에 대해서는 기울기가 약화되지 않고 과거 방향으로 전해진다.

 

 

LSTM(Long Short-Term Memory) 단기기억을 긴 시간 지속할 수 있음을 의미

 

 

 

출처 : 밑바닥부터 시작하는 딥러닝2

https://www.hanbit.co.kr/store/books/look.php?p_code=B8950212853

 

밑바닥부터 시작하는 딥러닝 2

이 책은 『밑바닥부터 시작하는 딥러닝』에서 다루지 못했던 순환 신경망(RNN)을 자연어 처리와 시계열 데이터 처리에 사용하는 딥러닝 기술에 초점을 맞춰 살펴본다. 8장 구성으로 전체를 하나

www.hanbit.co.kr

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기