본문 바로가기

Dev/AI 인공지능

[AI] RNN (Recurrent Neural Network) | BPTT (Backpropagation Through Time)

728x90
반응형

시계열 데이터란?

  • 시계열 데이터는 데이터가 시간 순서에 따라서 나열된 시퀀스 데이터
  • 시퀀스 데이터는 독립동등분포 가정을 잘 위배 → 데이터 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률 분포도 바뀌게 됨!
  • 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포에는 조건부 확률을 이용 (베이즈법칙)
  • 단, 어느정도까지의 과거를 고려하는데에서 아래 수식의 t의 길이가 조정됨 (필요한 과거만 반영하는 것이 중요)
  • 따라서 이러한 시퀀스 데이터를 다루기 위해서는 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요
    (고정된 길이 r만큼의 시퀀스만 사용하는 경우 Autoregressive Model, 자기 회기모델이라고 부름)
    (혹은 바로 이전 정보를 제외한 나머지 정보를 H_t라는 잠재변수로 인코딩해서 활용하는 잠재 AR모델을 사용할 수 도 있음 → 잠재변수 인코딩에 RNN이 사용됨)

 

 

RNN (Recurrent Neural Network)

일반적인 MLP의 구조 수식
RNN의 구조 수식

 

세 가지 가중치 행렬이 생성됨

  • 입력 데이터에서 선형모델로 인코딩한 잠재변수 WX
  • 이전 시점의 잠재변수를 토대로 생성한 새로운 잠재변수 WH
  • 만든 가중치 행렬을 내보내기 위해서 곱해주는 가중치 행렬 W^(2)

 

 

RNN의 역전파 : BPTT (Backpropagation Through Time)

  • 역전파에서는 다음 잠재변수와 출력으로부터 2가지 입력이 들어옴 - 이를 반복
  • 데이터의 길이가 길어질수록 BPTT를 통한 역전파가 불안정해짐 - 기울기 소실 문제 발생 우려 (과거 문제 유실)
  • 데이터들 중 적당히 길이를 끊고 필요한 것만 추출해서 쓰는 것 : Trumcated BPTT

 

+ 최근에는 RNN의 단점을 해소하기 위해 LSTM, GRU를 더 많이 사용하고, 이 또한 다른 좋은 모델에게 밀려나고 있는 중 ~ ... 

728x90
반응형