시퀀스 데이터를 입력으로 받고, 시퀀스 데이터를 출력하는 구조이다. 기본적인 DNN은 전부 은닉층에서 활성화 함수의 출력을 출력층으로만 전달한다. 이와 같은 신경망들을 피드 포워드 신경망(Feed Forward Neural Network)이라고 한다. 그러나 RNN은 은닉층의 활성화 함수의 출력을 출력층과 다음 은닉층 노드의 계산의 입력, 두 방향으로 보낸다.

: 입력 벡터
: 출력 벡터
: 은닉층에서 활성화 함수의 출력을 내보내는 역할, 이전의 값을 기억하는 일종의 "메모리"이므로 메모리 셀이라고 한다.
cell은 각 시점에서 바로 이전 시점의 cell의 출력을 자신의 입력으로 사용한다. 이때 cell의 출력을 은닉 상태(hidden state)라고 한다.
현시점을 t라고 했을 때 t 시점의 메모리 셀은 이전 시점인 t-1 시점의 cell의 출력을 입력으로 사용한다. 그리고, 다음 시점인 t+1 시점의 cell에 자신의 출력을 보낸다.

위 그림을 통해 좀 더 쉽게 이해할 수 있을 것이다.

RNN은 입력과 출력의 길이를 다르게 설계할 수 있고, 다양한 용도로 사용할 수 있다.
일대다 : 하나의 입력을 여러 출력으로 채널링, 단일 키워드로 문장을 생성하여 이미지 캡션과 같은 언어 어플리케이션을 지원
다대다 : 다중 입력을 사용하여 다중 출력을 예측, 문장을 분석하고 다른 언어의 단어를 올바르게 구조화하여 언어 번역기를 만들 수 있음
다대일 : 여러 입력이 출력으로 매핑, 입력된 평가로부터 고객의 감정을 분석하는데 유용

: 은닉 상태값(hidden state)
: 입력층을 위한 가중치
: 이전 시점인 t-1 시점의 은닉 상태값 을 위한 가중치
: 편향
은닉층 :
출력층 :
는 비선형 활성화 함수 중 하나
기울기가 가파를수록 모델의 학습 속도가 빨라지고 기울기가 얕으면 학습 속도가 저하된다.
기울기 폭주는 RNN이 불안정해질 때까지 기울기가 기하급수적으로 증가할 때 발생한다. 기울기가 무한히 커지면 RNN은 비정상적으로 동작하여 과적합과 같은 성능 문제가 발생한다.
기울기 소실은 모델을 훈련시킬 때 기울기가 0에 가까워지는 상태를 말한다. 기울기가 사라지면 훈련 데이터를 효과적으로 학습하지 못해 과소적합을 초래한다. 과소적합 모델은 가중치가 적절하게 조정되지 않았기 때문에 실제로 잘 작동하지 않는다. 길이가 긴 시퀀스 데이터를 처리할 때 기울기 소실 및 폭주가 발생할 위험이 있다.