RNN & LSTM

siwoo·2023년 11월 21일
0

Sequential data는 시계열적 특성을 가진 데이터로써 오디오, 영상, 텍스트 등 우리 일상에 가장 흔한 데이터라고 볼 수 있다.

Sequential data의 경우 fully connected layer로 처리를 하기에는 정해진 input의 크기가 명확하지 않기도 하고 시간적 특성을 고려할 수 없기 때문에 적절하지 않다.

RNN

  • Idea

    현 상태로부터의 이전 정보 n개를 요약한 정보를 이용해 현재를 예측한다.

  • architecture

    RNN의 가중치는 U,W,VU, W, V로 분류한다.

    U:U : 입력층 -> 은닉층
    W:W : 시점 t에서의 은닉층 -> 시점 t+1에서의 은닉층
    V:V : 은닉층 -> 출력층

    이때 W는 n of hidden layer -1 만큼 별개로 존재하는 것이 아니라 모든 시점에서 동일하게 공유한다.

    RNN은 Sequential Model과는 다르게 입력과 출력 구조가 자유롭게 형성될 수 있으므로 필요에 따라 위와 같이 다양한 구조로 구성할 수 있다.

  • Shortage

    Long-term memory 가 잘 되지 않는다. 현 시점에서 멀어진 과거의 정보이지만 중요한 정보일 수도 있음에도 반영을 하지 못한다는 문제가 있다.




LSTM

  • background

    RNN의 단점을 보완하고자 나왔다. 오래된 데이터이지만 중요한 정보를 소실하지 않도록 하자는 아이디어이다.

  • architecture

    중요한 정보인지를 어떻게 알고 계산할 것인가가 주요 문제라고 생각한다.
    이를 위해 LSTM은 총 3가지 gate를 이용해 정보를 요약한다.

    • Input Gate

      input으로부터 어떤 정보를 cell state에 저장할 것인지를 뽑는다.
      이렇게 취합한 정보를 바로 cell state에 저장하지는 않고 cell state에 저장할 예비군이 된다.

    • Forget Gate

      input으로부터 어떤 정보를 버릴지 결정한다.

      위 Input, Forget Gate를 지나고 나면 cell state를 업데이트한다.

    • Output Gate

      어떤 값을 다음 시점으로 전달할 지를 결정한다.

0개의 댓글