Machine Learning/RNN

[Machine Learning] LSTM (Long Short Term Memory)

데이터 세상 2021. 3. 8. 09:08
728x90
반응형

LSTM (Long Short Term Memory)

  • RNN의 결과를 더욱 개선하기 위한 모델
  • 한 층 안에서 반복을 많이 해야 하는 RNN의 특성상 일반 신경망보다 기울기 소실 문제가 더 많이 발생
  • 반복하기 직전에 다음 층으로 기억된 값을 넘길지 안 넘길지를 관리하는 단계를 하나 더 추가

  • Gate의 도입으로 입력, 출력을 조절할 수 있게 됨
  • 메모리를 이용하여 Long-range corrlation을 학습할 수 있게 됨
  • Error를 입력에 따라 다른 강도로 전달할 수 있음
  • RNN의 Vanishing Gradient 문제 해결

 

LSTM 핵심 아이디어

  • 이전 단계의 정보를 memory cell에 저장하려 흘려 보냄
  • 현재 시점의 정보를 바탕으로 과거의 내용을 얼마나 잊을지 곱해주고 그 결과에 현재의 정보를 더해서 다음 시점으로 정보 전달

 

Cell State

  • 컨베이어 벨트와 같아서, 작은 linear interaction만을 적용시키면서 전체 체인을 계속 구동
  • cell state에 뭔가를 더하거나 없앨 수 있는 능력이 있는데, 이 능력은 gate라고 불리는 구조에 의해 제어됨
  • Gate는 정보가 전달될 수 있는 추가적인 방법으로, sigmoid layer와 pointwise 곱셈으로 이루어짐

 

Gate

  • 3개의 gate는 sigmoid unit으로 제어 됨

 

Forget Gate

  • cell state로부터 어떤 정보를 버릴 것인지 정하는 단계
  • sigmoid layer에 의해 결정됨
  • 이전 은닉층 값(ht-1)과 현재 데이터에 각가 weight가 곱해져서 sigmoid로 전달
  • sigmoid가 결국 0~1사이 출력이므로
    • 1에 가까울수록 과저 정보(ct)를 많이 기억
    • 0에 가까울수록 과저 정보(ct)를 많이 망각

 

Input Gate & Candidate

  • 앞으로 들어오는 새로운 정보 중 어떤 것을 cell state에 저장할 것인지를 정하는 단계
  • input gate layer(=sigmoid layer)가 어떤 값을 업데이트할지 정함
  • input gate: 현 시점의 정보를 셀에 입력할 크기를 정해주는 입력 게이트
  • candidate: 현 시점의 정보를 계산하는 입력 후보
  • 현 시점이 실제로 갖고 있는 정보(입력후보)가 얼마나 중요한지(입력게이트)를 반영하여 셀에 기록

 

Memory Cell

  • forget gate, input gate, candidate를 이용하여 Memory Cell에 저장
  • 과거의 정보를 forget gate에서 계산된만큼 망각
  • 현 시점의 정보 후보에 input gate의 중요도 곱셈
  • 두 개를 더하여 현 시점 기준 memory cell 계산

 

Output Gate

  • 현 시점의 memory cell을 현 시점의 은닉층 값으로 출력할 양을 결정
Forget Gate Input Gate & Candidate Output Gate
Candidate Memory
Memory Cell

hidden state

Gate 마다 weight들은 독립적인 값으로 학습이 이루어짐

 

Backpropagation

728x90
반응형