본문 바로가기

머신러닝공부

LSTM 개념, 구조, 동작원리 간단 정리(Long Short-Term memory)

728x90
반응형

SimpleRNN의 단점 - 장기 의존성 문제(the problems of long-term dependency)

장기 의존성 문제는 입력 데이터가 많아질수록 SimpleRNN 레이어, 즉 은닉층에서 보관하는 과거의 정보가 마지막 레이어까지 충분히 전달되지 못하는 현상을 의미한 -> tanh출력값 범위는 -1<tanh<1, 보다는 작은 수는 곱할수록 작아지므로 가장 앞의 정보가 마지막 레이어에 전달되지 않는 경우가 발생한다.

이 단점을 보완하고자 LSTM이 등장한다.

LSTM레이어는 시간 t에서의 출력 값 Ht이외에, LSTM레이어 사이에서 공유되는 셀 상태(cell state) Ct라는 변수가 추가적으로 공유되는 특징이 있음 -> LSTM의 셀 상태가 다음 레이어로 전달되면서 기존의 상태를 보관하므로 장기 의존성 문제를 해결할 수 있음

 

LSTM의 핵심은 이전 단계 정보를 memory cell에 저장하여 다음 단계로 전달하는 것이다.

즉, LSTM은 현재 시점의 정보를 바탕으로 과거 내용을 얼마나 잊을지 또는 기억할지 등을 계산하고, 그 결과에 현재 정보를 추가해서 다음 시점으로 정보를 전달한다.

이러한 기능을 구현하기 위해 LSTM은 forget gate, input gate, output gate등으로 구성되며 이러한 gate는 memory cell에 정보를 저장하고 다음 단계로 전달하는 역할을 수행한다.

Forget Gate Ft

forget gate는 과거의 정보를 얼마나 잊을지(또는 기억할지) 결장하는 게이터이며, 현 시점의 데이터 Xt와 과거의 은닉층 값 Ht-1에 각각 가중치를 곱한 후에 그 값들을 더한 후 sigmoid 함수를 적용하는 과정이다.

sigmoid 함수 값은 0~1사이 값을 가지므로, 계산 값이 1에 가깝다면 과거 정보를 많이 활용한다는 의미이고, 만약 sigmoid 값이 0에 가깝다면 과거 정보를 많이 잃게 되는 원리이다.

 

Input Gate C', It

input gate는 현재 시점의 데이터 Xt와 과거의 은닉층 값 Ht-1에 각각의 가중치를 곱한 견과에 sigmoid 함수를 적용하여, 어떤 정보를 업데이트 할 지 결정하고 현재 시점의 데이터 Xt와 과거 은닉층 값 Ht-1에 각각의 가중치를 곱하여 더한 후 tanh 함수를 적용하여 현재 시점의 새로운 정보를 생성한다.

ㅡㄱ 현 시점에서 실제로 갖고 있는 정보가 얼마나 중요한지를 반영하여 cell에 기록한다.

 

Cell State Ct

Cell state는 forget gate 출력 값 Ft, input gate 출력 It, C't값을 이용하여 memory cell에 저장하는 단계이다.

즉, 과거의 정보를 forget gate에서 계산된 만큼 잊고(또는 기억하고), 현 시점의 정보 값에 입력 게이트의 중요도 만큼 곱해준 것을 더해서 현재 시점 기준의 memory cell 값을 계산. * 곱하기 표시는 모두 pointwise operation을 나타냄

 

Output gate Ht, Ot

output gate는 forget gate와 input gate에 의해서 변경된 현재 시점의 memory cell state(Ct)값을, 얼마나 빼내서 다음 레이어로 전달할지 결정하는 단계

이때 현재 시점의 LSTM 출력 값 Ht=Ot*tanh(Ct) 수식에서의 곱하기 표시는 pointwise operation을 나타냄

반응형