RNN은 일반적인 신경망과 달리 순서가 있는 입력 데이터를 처리할 수 있는 순환 신경망입니다.
순차적인 입력 데이터인 Sequence 데이터가 입력으로 주어질 때
각 timestep에서 들어오는 입력벡터와 그 전 timestep의 RNN 모듈에서 계산한 hidden state 벡터를 입력으로 받아 현재 timestep에서의 hidden state 벡터를 출력으로 내어주는 구조입니다.
RNN은 Backpropagation과정에서 tanh의 gradient가 반복되어 곱해지는 구조이기 때문에 gradient vanishing problem이 발생하여 긴 Sequence data를 다루기 어렵다는 한계점이 있습니다.