RNN은 Recurrent Neural Network로 반복하는 신경망이라는 의미이다.
순환한다는 의미는 어느 한 지점에서 시작한 것이, 시간을 지나 다시 원래 장소로 반복해서 돌아오는 것이다. 여기에서 주목할 사실은 순환하기 위해 닫힌 경로가 필요하다는 것이다.

출처 : [1]
RNN에 이용되는 RNN 계층은 위 이미지와 같다. 먼저 입력으로 $x_t$ 를 받는다. 이 때 $t$는 시각인 time을 의미한다. 그리고 입력에 대한 출력 $y_t$가 출력 된다. 자 그렇다면 전체적인 순환구조를 알아보자.
RNN의 순환 구조는 지금까지 알아보았던 신경망에는 존재하지 않았던 구조이다. 이를 도식화 한 것은 다음과 같다.

출처 : [1]
위 그림과 같이 RNN은 오른쪽으로 stack 되는 긴 신경망으로 구축이 가능하다.
RNN을 수식으로 나타내면 다음과 같이 표현이 가능하다.
$$ h_t=tanh(h_{t-1}W_h+x_tW_x+b) $$
위 수식에는 2개의 가중치가 존재한다. 하나는 입력 $x$를 출력 $h$로 변환하기 위한 가중치 $W_x$ 이다. 다른 하나는 1개의 RNN 출력을 다음 시각의 출력으로 변환하기 위한 가중치 $W_h$이다. 또한 bias인 $b$ 가 존재한다.
위 식에서는 행렬 곱 연산을 진행하고, tanh 함수를 이용해 결과를 변환한다. 그 결과는 시각 $t$의 출력 $h_t$가 된다. 이 때 $h_t$는 다음 계층을 향해 출력됨과 동시에 자기 자신을 향해서도 출력된다.
식을 자세히 본다면 $h_{t-1}$에 기초해 다음이 계산됨을 확인할 수 있다. 이는 이전 시간대의 정보를 반영하여 계산을 진행한다는 것이고, 따라서 RNN은 상태나 메모리를 가지는 계층이라고 표현할 수 있다.
앞서 확인한 것처럼 RNN은 시간에 따른 구조를 가진다. 따라서, 이에 따른 역전파 방법은 Backpropagation Through Time인 BPTT라고 부른다. 하지만 시계열 데이터가 커짐에 따라 컴퓨팅 메모리 또한 커지기에 이 문제를 해결하는 것이 필요하다.